diff --git a/.editorconfig b/.editorconfig index ee4e61cb..0e0dc57d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,3 +14,6 @@ trim_trailing_whitespace = true ; [app/public/css/**.styl] ; indent_style = tab ; indent_size = 2 + +[*.md] +indent_size = 4 diff --git a/.eslintignore b/.eslintignore index fa52452d..f6e8cd11 100644 --- a/.eslintignore +++ b/.eslintignore @@ -15,9 +15,6 @@ editor/xdomain-svgedit-config-iife.js editor/jquery.min.js editor/jquery-ui -# Previously minified though exporting -editor/jquerybbq - # Previously minified though exporting editor/js-hotkeys @@ -26,8 +23,14 @@ editor/jspdf/underscore-min.js editor/extensions/mathjax +# Todo: We should at least check `compat/compat` in our other files, however editor/external/* !editor/external/dom-polyfill editor/external/dom-polyfill/* !editor/external/dom-polyfill/dom-polyfill.js !editor/external/dynamic-import-polyfill + +mochawesome-report +releases +!.eslintrc.js +!.ncurc.js diff --git a/.eslintrc.js b/.eslintrc.js index 548e2d62..b4232354 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,57 +1,28 @@ +'use strict'; + module.exports = { - extends: ["ash-nazg/sauron-node"], + extends: ['ash-nazg/sauron-node'], parserOptions: { - sourceType: "module" + sourceType: 'module' }, env: { browser: true }, settings: { polyfills: [ - "Array.isArray", - "Blob", - "console", - "Date.now", - "document.body", - "document.evaluate", - "document.head", - "document.importNode", - "document.querySelector", "document.querySelectorAll", - "DOMParser", - "Error", - "fetch", - "FileReader", - "history.pushState", - "history.replaceState", - "JSON", - "location.href", - "location.origin", - "MutationObserver", - "Object.assign", "Object.defineProperty", "Object.defineProperties", - "Object.getOwnPropertyDescriptor", - "Object.entries", "Object.keys", "Object.values", - "Promise", - "Set", - "Uint8Array", - "URL", - "window.getComputedStyle", - "window.postMessage", - "window.scrollX", "window.scrollY", - "XMLHttpRequest", - "XMLSerializer" ], jsdoc: { additionalTagNames: { // In case we need to extend customTags: [] }, - augmentsExtendsReplacesDocs: true, + augmentsExtendsReplacesDocs: true // Todo: Figure out why this is not working and why seem to have to // disable for all Markdown: /* baseConfig: { rules: { - "no-multi-spaces": "off" + 'no-multi-spaces': 'off' } } */ @@ -61,87 +32,182 @@ module.exports = { // Locales have no need for importing outside of SVG-Edit { files: [ - "editor/locale/lang.*.js", "editor/extensions/ext-locale/**", - "docs/tutorials/ExtensionDocs.md" + 'editor/locale/lang.*.js', 'editor/extensions/ext-locale/**', + 'docs/tutorials/ExtensionDocs.md' ], rules: { - "import/no-anonymous-default-export": ["off"] + 'import/no-anonymous-default-export': ['off'] + } + }, + // These browser files don't do importing or requiring + { + files: [ + 'editor/svgpathseg.js', 'editor/touch.js', 'editor/typedefs.js', + 'editor/redirect-on-no-module-support.js', + 'editor/extensions/imagelib/index.js', + 'editor/external/dom-polyfill/dom-polyfill.js', + 'screencasts/svgopen2010/script.js' + ], + rules: { + 'import/unambiguous': ['off'] + } + }, + { + files: ['**/*.html', 'screencasts/**'], + globals: { + root: 'off' + }, + settings: { + polyfills: [ + 'document.querySelector', + 'history', + 'history.pushState', + 'history.replaceState', + 'Number.parseFloat', + 'Number.parseInt', + 'Number.isNaN' + ] + }, + rules: { + 'import/unambiguous': 'off' + } + }, + { + files: ['.eslintrc.js', '.ncurc.js', 'tools/mochawesome-cli.js'], + extends: [ + 'ash-nazg/sauron-node-script' + ] + }, + // Our Markdown rules (and used for JSDoc examples as well, by way of + // our use of `jsdoc/check-examples` within `ash-nazg`) + { + files: ['**/*.md'], + settings: { + polyfills: [ + // Tutorials + 'console', + 'location.href' + ] + }, + rules: { + // Todo: Figure out why this is not enough to disable warning + // for examples in my environment (but it is in others') + // Used in examples of assert-close.js plugin + 'mocha-cleanup/no-assertions-outside-it': 'off', + 'eslint-comments/no-unused-disable': 'warn', + + 'eol-last': ['off'], + 'no-console': ['off'], + 'no-undef': ['off'], + 'no-unused-vars': ['warn'], + 'padded-blocks': ['off'], + 'import/unambiguous': ['off'], + 'import/no-unresolved': ['off'], + 'node/no-missing-import': ['off'], + 'no-multi-spaces': 'off', + 'sonarjs/no-all-duplicated-branches': 'off', + 'node/no-unpublished-import': ['error', { + allowModules: ['@cypress/fiddle'] + }], + 'no-alert': 'off', + // Disable until may fix https://github.com/gajus/eslint-plugin-jsdoc/issues/211 + indent: 'off' + } + }, + // Dis-apply Node rules mistakenly giving errors with browser files, + // and treating Node global `root` as being present for shadowing + { + files: ['editor/**'], + globals: { + root: 'off' + }, + settings: { + polyfills: [ + // These are the primary polyfills needed by regular users if + // not present, e.g., with core-js-bundle; also those under + // extensions + 'Array.isArray', + 'Blob', + 'console', + 'CustomEvent', + 'document.body', + 'document.createElementNS', + 'document.evaluate', + 'document.head', + 'document.importNode', + 'document.querySelectorAll', + 'DOMParser', + 'Error', + 'FileReader', + 'JSON', + 'KeyboardEvent', + 'location.href', + 'MouseEvent', + 'MutationObserver', + 'Number.isNaN', + 'Number.parseFloat', + 'Number.parseInt', + 'Object.assign', + 'Object.defineProperty', + 'Object.defineProperties', + 'Object.entries', + 'Object.getOwnPropertyDescriptor', + 'Object.keys', + 'Object.values', + 'Promise', + 'Promise.all', + 'Set', + 'Uint8Array', + 'URL', + 'URL.createObjectURL', + 'XMLSerializer', + 'XMLHttpRequest', + 'window.getComputedStyle', + 'window.parent', + 'window.scrollX', + 'window.scrollY' + ] + }, + rules: { + 'node/no-unsupported-features/node-builtins': 'off' } }, // For extensions, `this` is generally assigned to be the more // descriptive `svgEditor`; they also have no need for importing outside // of SVG-Edit { - files: ["editor/extensions/**/ext-*.js"], - rules: { - "consistent-this": ["error", "svgEditor"], - "import/no-anonymous-default-export": ["off"] - } - }, - // These browser files don't do importing or requiring - { - files: [ - "editor/svgpathseg.js", "editor/touch.js", "editor/typedefs.js", - "editor/redirect-on-no-module-support.js", - "editor/extensions/imagelib/index.js", - "editor/external/dom-polyfill/dom-polyfill.js", - "screencasts/svgopen2010/script.js", - "opera-widget/handlers.js", - "firefox-extension/handlers.js", - "firefox-extension/content/svg-edit-overlay.js" - ], - rules: { - "import/unambiguous": ["off"] - } - }, - { - files: ['**/*.html'], - rules: { - 'import/unambiguous': 'off' - } - }, - // Our Markdown rules (and used for JSDoc examples as well, by way of - // our use of `matchingFileName` in conjunction with - // `jsdoc/check-examples` within `ash-nazg`) - { - files: ["**/*.md"], - rules: { - "eol-last": ["off"], - "no-console": ["off"], - "no-undef": ["off"], - "no-unused-vars": ["warn"], - "padded-blocks": ["off"], - "import/unambiguous": ["off"], - "import/no-unresolved": ["off"], - "node/no-missing-import": ["off"], - "no-multi-spaces": "off", - "sonarjs/no-all-duplicated-branches": "off", - 'node/no-unpublished-import': ['error', {allowModules: ['@cypress/fiddle']}], - "no-alert": "off", - // Disable until may fix https://github.com/gajus/eslint-plugin-jsdoc/issues/211 - "indent": "off" - } - }, - // Dis-apply Node rules mistakenly giving errors with browser files, - // and treating Node global `root` as being present for shadowing - { - files: ["editor/**", "screencasts/**"], - globals: { - root: "off" + files: ['editor/extensions/**'], + settings: { + polyfills: [ + 'console', + 'fetch', + 'location.origin', + 'Number.isNaN', + 'Number.parseFloat', + 'Number.parseInt', + 'window.postMessage' + ] }, rules: { - "node/no-unsupported-features/node-builtins": "off" + 'consistent-this': ['error', 'svgEditor'], + 'import/no-anonymous-default-export': ['off'] } }, { // Node files files: [ - "docs/jsdoc-config.js", - "build-html.js", - "rollup.config.js", "rollup-config.config.js" + 'docs/jsdoc-config.js', + 'build/build-html.js', + 'rollup.config.js', 'rollup-config.config.js' ], env: { - node: true, + node: true + }, + settings: { + polyfills: [ + 'console', + 'Promise.resolve' + ] }, globals: { require: true @@ -151,55 +217,169 @@ module.exports = { // and we have too many modules to add to `peerDependencies` // so this rule can know them to be available, so we instead // disable - "node/no-unpublished-import": "off" + 'node/no-unpublished-import': 'off' } }, { // As consumed by jsdoc, cannot be expressed as ESM - files: ["docs/jsdoc-config.js"], + files: ['docs/jsdoc-config.js'], parserOptions: { - sourceType: "script" + sourceType: 'script' }, globals: { - "module": false + module: false }, rules: { - "import/no-commonjs": "off", - "strict": "off" + 'import/no-commonjs': 'off', + strict: 'off' } }, { - extends: ['plugin:node/recommended-script'], - files: ['cypress/support/build-coverage-badge.js'] + // Should probably have as external, but should still check + files: ['canvg/rgbcolor.js'], + settings: { + polyfills: [ + 'Number.isNaN', + 'Number.parseInt', + 'Object.assign', + 'Object.keys' + ] + } }, { - files: ["cypress/**"], - extends: ["plugin:cypress/recommended"], + files: ['cypress/plugins/index.js'], + extends: [ + 'ash-nazg/sauron-node-script' + ] + }, + { + files: ['cypress/**'], + extends: [ + 'plugin:cypress/recommended', + 'plugin:mocha/recommended', + 'plugin:mocha-cleanup/recommended-no-limits', + 'plugin:@fintechstudios/chai-as-promised/recommended', + 'plugin:chai-expect-keywords/recommended', + 'plugin:chai-expect/recommended', + 'plugin:chai-friendly/recommended' + ], env: { node: true }, + settings: { + polyfills: [ + 'console', + 'Date.now', + 'document.body', + 'document.createElementNS', + 'document.head', + 'DOMParser', + 'Number.isNaN', + 'Object.keys', + 'Object.entries', + 'Promise' + ] + }, rules: { + // These errors are caused in Cypress files if user has not + // yet instrumented code; need to reinvestigate why we had to + // instrument separately from nyc mocha + 'import/no-unresolved': 'warn', + 'node/no-missing-import': 'warn', + + 'chai-expect-keywords/no-unsupported-keywords': [ + 'error', { + allowChaiDOM: true + } + ], + // Would be good but seems necessary due to some bugs in Cypress + // in detecting visibility + // 'cypress/no-force': 0, + // Good but would be difficult to enforce (and data-* may not be less + // brittle than IDs/classes anyways) + // 'cypress/require-data-selectors': 0, + 'cypress/assertion-before-screenshot': 2, + + // Conflicts with Cypress `should` + 'mocha-cleanup/invalid-assertions': 0, + + // Might see about working around to avoid the option limitation, + // but convenient + 'mocha-cleanup/no-expressions-in-assertions': ['error', { + replacementsOnly: true + }], + + // Too oppressive when planning to extend a section + 'mocha/no-hooks-for-single-case': 0, + + // Would be good to enable but needs some refactoring + 'mocha/no-setup-in-describe': 0, + 'mocha-cleanup/no-outside-declaration': 0, + + // Useful to ensure allowing `this.timeout()`, etc., but a + // little oppressive + 'mocha/no-mocha-arrows': 0, + // Useful if enabling the regular `prefer-arrow-callback` + // 'mocha/prefer-arrow-callback': 2 + + 'jsdoc/require-jsdoc': 0, 'no-console': 0, - 'import/unambiguous': 0, + 'import/unambiguous': 0 } } ], rules: { + // check-examples is not picking up eslint config properly in some + // environments; see also discussion above + // `mocha-cleanup/no-assertions-outside-it` + 'jsdoc/check-examples': ['warn', { + rejectExampleCodeRegex: '^`' + }], + // https://github.com/sindresorhus/eslint-plugin-unicorn/issues/453 - "unicorn/regex-shorthand": 0, + 'unicorn/regex-shorthand': 0, // The Babel transform seems to have a problem converting these - "prefer-named-capture-group": "off", + 'prefer-named-capture-group': 'off', // Override these `ash-nazg/sauron` rules which are difficult for us // to apply at this time - "unicorn/prefer-string-slice": "off", - "default-case": "off", - "require-unicode-regexp": "off", - "max-len": ["off", { + 'unicorn/prefer-string-slice': 'off', + 'default-case': 'off', + 'require-unicode-regexp': 'off', + 'max-len': 'off', /* , { ignoreUrls: true, ignoreRegExpLiterals: true - }], - "unicorn/prefer-query-selector": "off", - "unicorn/prefer-node-append": "off", - "unicorn/no-zero-fractions": "off" + } */ + 'unicorn/prefer-query-selector': 'off', + 'unicorn/prefer-node-append': 'off', + 'unicorn/no-zero-fractions': 'off', + 'unicorn/prefer-number-properties': 'off', + 'jsdoc/require-file-overview': ['error', { + tags: { + file: { + initialCommentsOnly: true, + preventDuplicates: true + }, + license: { + initialCommentsOnly: true, + preventDuplicates: true + }, + copyright: { + initialCommentsOnly: true, + preventDuplicates: true + }, + author: { + initialCommentsOnly: true, + preventDuplicates: true + }, + module: { + initialCommentsOnly: true, + preventDuplicates: true + }, + exports: { + initialCommentsOnly: true, + preventDuplicates: true + } + } + }] } }; diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..2c9d15d4 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: [brettz9] # May have up to 4 comma-separated user names diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 9005e2d3..49cd8337 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -3,6 +3,7 @@ name: Bug report about: Create a report in case we may be able to help --- +**PLEASE NOTE: This project is not currently being actively developed due to the core developers having moved on, and the only remaining maintainer merely applying occasional minor PRs or tweaks to keep the project alive. While you can file an issue, you should not expect any action, even if we label the issue.** **Describe the bug** A clear and concise description of what the bug is. @@ -36,5 +37,9 @@ A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. +**Log** +If applicable, copy any error logs in your browser console. This can be very +helpful in identifying the problem. + **Additional context** Add any other context about the problem here. diff --git a/.gitignore b/.gitignore index b04fcfdb..3e512014 100644 --- a/.gitignore +++ b/.gitignore @@ -1,16 +1,20 @@ ignore node_modules -build/ - svgedit-custom.css docs/jsdoc +cypress/results cypress/screenshots cypress/videos cypress.env.json -coverage/** -instrumented/** +coverage +instrumented .nyc_output +mochawesome-report +mochawesome.json + +.vscode +.eslintcache diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..e69de29b diff --git a/.ncurc.js b/.ncurc.js new file mode 100644 index 00000000..0509ea19 --- /dev/null +++ b/.ncurc.js @@ -0,0 +1,8 @@ +'use strict'; + +module.exports = { + reject: [ + // Todo: Old copy with jspdf which needs updating: https://github.com/SVG-Edit/svgedit/issues/51 + 'underscore' + ] +}; diff --git a/.npmignore b/.npmignore index 2d18b13c..d9ccf215 100644 --- a/.npmignore +++ b/.npmignore @@ -2,8 +2,10 @@ ignore screencasts .github/ISSUE_TEMPLATE/bug_report.md +gh-disabled-workflows build lgtm.yml +.travis.yml cypress/** cypress.env.json @@ -11,3 +13,10 @@ cypress.env.json coverage/** .nyc_output instrumented/** +mochawesome-report/** +mochawesome.json + +releases + +tools +.eslintcache diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..67fc274b --- /dev/null +++ b/.travis.yml @@ -0,0 +1,4 @@ +language: ruby +rvm: + - 2.3 +script: "bundle exec jekyll build" diff --git a/AUTHORS b/AUTHORS index 9ea98d20..28d0ba8b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,5 +1,5 @@ Narendra Sisodiya -Pavol Rusnak +Pavol Rusnak Jeff Schiller Vidar Hokstad Alexis Deveria @@ -19,5 +19,5 @@ ja: Dong (日本語) nl: Jaap Blom (Nederlands) ro: Christian Tzurcanu (Româneşte) ru: Laurent Dufloux (Русский) -sk: Pavol Rusnak (Slovenčina) +sk: Pavol Rusnak (Slovenčina) zh-TW: 黃瀚生 (Han Sheng Huang) (台灣正體) diff --git a/CHANGES.md b/CHANGES.md index a05b688a..9ad85e26 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,22 +1,109 @@ # SVG-Edit CHANGES -## ? +## 6.0.0 (unreleased) +- Project: Add `FUNDING.yml` to accept contributions +- License: Reflect actual license of library in `package.json` based + not only on licenses of repository as a whole (i.e., "MIT") but + individual component files; see `filesByLicense` in `licenseInfo.json` + for a map of license to these files within the repo with their own + licenses. See the new license badges on the README for a summary of + the licenses including either bundled devDependencies or all + `devDependencies` (we have no direct npm `dependencies` currently). +- License: Add note about unclear provenance of some images - License: Relicense ext-mathjax from Apache-2.0 to MIT per - License: Clarify in `@license` that `ext-server_moinsave.js` is "(MIT OR GPL-2.0-or-later)" per subsequent text - License: Reorder license listing in `jquery.contextMenu.js` so that more permissive is noticeable first +- License: Replace CC-BY-SA-2.0 polygon image (thanks, @mowijo !) +- BREAKING CHANGE: Remove `$.pref` in favor of new `svgEditor.pref` + (avoiding polluting jQuery). (Might be moved to own module in + future.) +- BREAKING CHANGE: `putLocale` (a function called automatically by + `svg-editor.js`) no longer checks `pref`. Should not impact + average consumers. +- BREAKING CHANGE: Move clipboard from `localStorage` to `sessionStorage` + (@NeilFraser) +- Fix: main menu style and text #371 - Fix (Accessibility): Avoid duplicate IDs +- Fix (openclipart browser): Redirect on lacking browser support +- Fix: Misspelling for `dropXMLInternalSubset` method (also fixes + use in imagelib when defaulting to image's title) +- Fix: Redirect paths for imagelib redirect checks +- Fix: Ensure `setupCurPrefs` is run (including when `source` or + `url` is set within the URL) +- Fix: Pressing 'Ctrl+A' causes js error when canvas is empty (@cuixiping) +- Fix: Path element cannot be exported to PDF; export path with + holes to PDF; export path element to PDF, support more path + commands; #269 (@cuixiping) +- Fix: remove "null" attributes in svg source #76 (@cuixiping) +- Fix: A bug of `convertPath` function when converting H and V to + relative (@cuixiping) - Optimization: Remove unused `jquery-ui-1.8.custom.min.js` file +- Optimization: Remove old build/tools closure/yuicompressor code +- Optimization: Remove unmaintained chrome-app, firefox-extension, + opera-widget (an updated WebExtensions replacement (or such) + would be welcome.) +- Localization: Add 'SVG-Edit Home Page' to locale files +- Docs: Remove outdated info on jsdoc linting (now just part of eslint config) +- Docs: Add testing badge +- Docs: Update coverage badge per latest coveradge +- Docs: Add license badges and `licenseInfo.json` (has a + `filesByLicense` map of files to licenses (not yet used programmatically) + and `bundledRootPackages` which is used by `license-badger` to know which + dev. packages are being bundled (added by `npm run copy`) for determining + summary of all licenses including bundled). +- Docs: Reprioritize `docs` in commit lists (prioritize user-facing) +- Docs: Update Pavol's email address (@prusnak) +- Docs: Update license badges to reflect lack of (known) CC-BY-SA-2.0 usage +- Docs: Update Contributing, Testing (renamed to Development), + Linting and ReleaseInstructions +- Update: Cypress code coverage plugin +- Refactoring: Switch from `$.param.querystring` to `URL` +- Refactoring: Ensure file-global jsdoc tags are at beginning of file +- Refactoring: Move `build-html` to `build` directory +- Refactoring: Add favicon no-op to suppress favicon 404s until + loaded dynamically (might make configurable in future) - Linting (ESLint): Simplify regexes - Linting (ESLint): Replace `innerHTML` with `textContent` from old demo +- Linting (ESLint): Update as per latest ash-nazg +- Linting (ESLint): Add rules to check for file-level tags +- Linting (ESLint): Check hidden rc files +- Linting (ESLint): Add linting plugins (mocha, chai-expect, chai-friendly, + cypress) +- Linting (ESLint): Add `@fintechstudieos/eslint-plugin-chai-as-promised`, + `eslint-plugin-chai-expect-keywords`, and `eslint-plugin-mocha-cleanup` + plugins - Testing: Switch to Cypress with code coverage for UI testing; use ESM version for faster debugging - Testing: Add map file for underscore +- Testing: Separate tests into unit/ui; split UI tests by specific domain; + setup browser-bug folder and ui issues folder +- Testing: Create test utilities for selecting English and visiting and + approving storage +- Testing: Produce mochawesome report +- Testing: Cypress with multiple reporters in case we need +- Build: Update underscore and core-js-bundle copies +- npm: Add `underscore` to copy script +- npm: Make `copy`, `compress-images`, `start-embedded`, `build-docs-remove` + scripts cross-platform; add `start-allow-origin` script +- npm: Rename open script to open-tests, and add `open` script for opening + instance of svgedit +- npm: Ensure starting server for open scripts +- npm/Linting: Add `--cache` to speed up subsequent linting +- npm: Fix scripts for Windows development (needed for + building docs and instrumenting) - npm: Update scripts to reflect removal of `all_tests.html`; remove `browser-test` script +- npm: Add `add-release` script +- npm: Add reporting scripts (tests and coverage) +- npm: Add `license-badges`, `build-docs`, and `copy` scripts to `prepublishOnly` script +- npm: Rename `test-prep` to `prep` and other misc. script naming changes +- npm: Update `package-lock.json` +- npm: Update from deprecated `rollup-plugin-babel` to `@rollup/plugin-babel` + (and make `babelHelpers` explicit) - npm: Update devDeps, peerDeps ## 5.1.0 diff --git a/Gemfile b/Gemfile new file mode 100644 index 00000000..da7e0241 --- /dev/null +++ b/Gemfile @@ -0,0 +1 @@ +gem "github-pages", :source => "https://rubygems.org" diff --git a/README.md b/README.md index c57fb7e7..1d449624 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ![alt text](https://svg-edit.github.io/svgedit/images/logo48x48.svg "svg-edit logo of a pencil") SVG-edit +# ![LOGO](editor/images/logo.png) SVG-edit [![npm](https://img.shields.io/npm/v/svgedit.svg)](https://www.npmjs.com/package/svgedit) [![Dependencies](https://img.shields.io/david/SVG-Edit/svgedit.svg)](https://david-dm.org/SVG-Edit/svgedit) @@ -7,19 +7,33 @@ -[![coverage badge](coverage-badge.svg)](coverage-badge.svg) +[![Tests badge](https://raw.githubusercontent.com/SVG-Edit/svgedit/master/badges/tests-badge.svg?sanitize=true)](badges/tests-badge.svg) +[![Coverage badge](https://raw.githubusercontent.com/SVG-Edit/svgedit/master/badges/coverage-badge.svg?sanitize=true)](badges/coverage-badge.svg) [![Known Vulnerabilities](https://snyk.io/test/github/SVG-Edit/svgedit/badge.svg)](https://snyk.io/test/github/SVG-Edit/svgedit) [![Total Alerts](https://img.shields.io/lgtm/alerts/g/SVG-Edit/svgedit.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/SVG-Edit/svgedit/alerts) [![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/SVG-Edit/svgedit.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/SVG-Edit/svgedit/context:javascript) -[![License](https://img.shields.io/npm/l/svgedit.svg)](LICENSE-MIT) +[![Licenses badge](https://raw.githubusercontent.com/SVG-Edit/svgedit/master/badges/licenses-badge.svg?sanitize=true)](badges/licenses-badge.svg) + +(see also [licenses for dev. deps.](https://raw.githubusercontent.com/SVG-Edit/svgedit/master/badges/licenses-badge-dev.svg?sanitize=true)) + +(Note: The license provenance of the images in `/editor/images` may not be +fully clear, even with the origin of some of the images listed as being from . We would like to +replace these images if their provenance cannot be determined or is found to +be under a protective license. If you know of the original terms, or can help +create SVG replacement images, please let us know at: +[#377](https://github.com/SVG-Edit/svgedit/issues/377).) + [![issuehunt-to-marktext](https://issuehunt.io/static/embed/issuehunt-button-v1.svg)](https://issuehunt.io/r/SVG-Edit/svgedit) SVG-edit is a fast, web-based, JavaScript-driven SVG drawing editor that works in any modern browser. +![screenshot](docs/screenshot.png) +[SVG](https://upload.wikimedia.org/wikipedia/commons/f/fd/Ghostscript_Tiger.svg) + ## Help wanted While we have made some recent releases to SVG-edit for bug fixes, @@ -30,29 +44,40 @@ to join the project. ## Demo -### [Try SVG-edit here](https://svg-edit.github.io/svgedit/releases/latest/editor/svg-editor.html) +### [Try SVG-edit here](https://svg-edit.github.io/svgedit/editor/svg-editor.html) -See the [latest release](https://svg-edit.github.io/svgedit/releases/latest/editor/svg-editor.html) + +See a working editor on [`master`](https://svg-edit.github.io/svgedit/editor/svg-editor.html) (or its [ES6-Module](https://svg-edit.github.io/svgedit/editor/svg-editor-es.html) +version, which requires a modern browser). You may also try it at (which redirects to a versioned URL). You may also obtain URLs for specific [releases](https://github.com/SVG-Edit/svgedit/releases). -For testing the latest version in `master`, you may use -. +You may test the [latest version in `master`](https://svg-edit.github.io/svgedit/editor/svg-editor-es.html) +which is the ESM version. (The [non-ESM version](https://svg-edit.github.io/svgedit/editor/svg-editor.html) +on `master` may be updated less frequently.) ## Installation ### Quick install 1. Clone or copy the repository contents (at least the `editor` directory). + Please note that you should not do a recursive Git clone (i.e., with the + `--recursive` or `--recurse-submodules` flags), as you will get assorted + past versions (which are available on the parent as branches anyways). + (The reason these past versions are available as submodules is merely + for convenience in hosting these versions, along with `master`, online + on Github Pages.) 1. If you need programmatic customization, see its section below. 1. Otherwise, just add an iframe to your site, adding any extensions or configuration (see `docs/tutorials/ConfigOptions.md` ([ConfigOptions]{@tutorial ConfigOptions})) within the URL: + ```html @@ -134,6 +159,8 @@ incorporating SVGEdit. You will need to have Node.js/npm installed. ## Recent news +- 2020-02-22 Published 6.0.0 License clarifications/updates, PDF export + improvements, clipboard `sessionStorage`, and other changes. - 2019-11-16 Published 5.1.0 Misc. fixes and refactoring - 2019-05-07 Published 5.0.0 Change from `@babel/polyfill` - 2019-04-03 Published 4.3.0 Fix for double click on gradient diff --git a/badges/coverage-badge.svg b/badges/coverage-badge.svg new file mode 100644 index 00000000..7c290640 --- /dev/null +++ b/badges/coverage-badge.svg @@ -0,0 +1 @@ +Statements 42.5%Statements 42.5%Branches 31.25%Branches 31.25%Lines 43.61%Lines 43.61%Functions 48.57%Functions 48.57% diff --git a/badges/licenses-badge-dev.svg b/badges/licenses-badge-dev.svg new file mode 100644 index 00000000..c4790e4b --- /dev/null +++ b/badges/licenses-badge-dev.svg @@ -0,0 +1 @@ +License typesLicense types(all devDeps)(all devDeps)PublicPublicdomaindomain1. (MIT OR CC0-1.0)1. (MIT OR CC0-1.0)2. CC0-1.02. CC0-1.03. Unlicense3. UnlicensePermissivePermissive1. (AFL-2.1 OR BSD-3-Clause)1. (AFL-2.1 OR BSD-3-Clause)2. (BSD-2-Clause OR (MIT OR Apache-2.0))2. (BSD-2-Clause OR (MIT OR Apache-2.0))3. (GPL-3.0-or-later OR MIT)3. (GPL-3.0-or-later OR MIT)4. (MIT OR Apache-2.0)4. (MIT OR Apache-2.0)5. (MPL-2.0 OR Apache-2.0)5. (MPL-2.0 OR Apache-2.0)6. (WTFPL OR MIT)6. (WTFPL OR MIT)7. Apache7. Apache8. Apache-2.08. Apache-2.09. Artistic-2.09. Artistic-2.010. BSD-2-Clause10. BSD-2-Clause11. BSD-3-Clause11. BSD-3-Clause12. CC-BY-3.012. CC-BY-3.013. CC-BY-4.013. CC-BY-4.014. ISC14. ISC15. MIT15. MIT16. Zlib16. ZlibWeaklyWeaklyprotectiveprotective1. LGPL-3.01. LGPL-3.02. MPL-2.02. MPL-2.0UncategorizedUncategorized1. jsonify (0.0.0)1. jsonify (0.0.0)MissingMissing1. boundary (1.0.1)1. boundary (1.0.1)2. structured-source (3.0.2)2. structured-source (3.0.2)3. taffydb (2.6.2)3. taffydb (2.6.2) \ No newline at end of file diff --git a/badges/licenses-badge.svg b/badges/licenses-badge.svg new file mode 100644 index 00000000..574fc099 --- /dev/null +++ b/badges/licenses-badge.svg @@ -0,0 +1 @@ +License typesLicense types(project, deps, and bundled devDeps)(project, deps, and bundled devDeps)PermissivePermissive1. Apache-2.01. Apache-2.02. ISC2. ISC3. MIT3. MIT4. X114. X11WeaklyWeaklyprotectiveprotective1. LGPL-3.0-or-later1. LGPL-3.0-or-later \ No newline at end of file diff --git a/badges/tests-badge.svg b/badges/tests-badge.svg new file mode 100644 index 00000000..d0660caa --- /dev/null +++ b/badges/tests-badge.svg @@ -0,0 +1 @@ +TestsTests127/128127/128 \ No newline at end of file diff --git a/build-html.js b/build/build-html.js similarity index 96% rename from build-html.js rename to build/build-html.js index c84c32da..393f6db1 100644 --- a/build-html.js +++ b/build/build-html.js @@ -19,7 +19,7 @@ const filesAndReplacements = [ [ '', ` -` +` ], [ '', @@ -47,7 +47,7 @@ const filesAndReplacements = [ [ '', ` -` +` ] ] }, @@ -58,7 +58,7 @@ const filesAndReplacements = [ [ '', ` -` +` ], [ '', @@ -85,7 +85,7 @@ const filesAndReplacements = [ [ '', ` -` +` ], [ '', @@ -108,7 +108,7 @@ const filesAndReplacements = [ [ '', ` -` +` ], [ '', diff --git a/build/tools/COPYING b/build/tools/COPYING deleted file mode 100644 index d6456956..00000000 --- a/build/tools/COPYING +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/build/tools/README b/build/tools/README deleted file mode 100644 index d3c90e78..00000000 --- a/build/tools/README +++ /dev/null @@ -1,289 +0,0 @@ -/* - * Copyright 2009 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// -// Contents -// - -The Closure Compiler performs checking, instrumentation, and -optimizations on JavaScript code. The purpose of this README is to -explain how to build and run the Closure Compiler. - -The Closure Compiler requires Java 6 or higher. -http://www.java.com/ - - -// -// Building The Closure Compiler -// - -There are three ways to get a Closure Compiler executable. - -1) Use one we built for you. - -Pre-built Closure binaries can be found at -http://code.google.com/p/closure-compiler/downloads/list - - -2) Check out the source and build it with Apache Ant. - -First, check out the full source tree of the Closure Compiler. There -are instructions on how to do this at the project site. -http://code.google.com/p/closure-compiler/source/checkout - -Apache Ant is a cross-platform build tool. -http://ant.apache.org/ - -At the root of the source tree, there is an Ant file named -build.xml. To use it, navigate to the same directory and type the -command - -ant jar - -This will produce a jar file called "build/compiler.jar". - - -3) Check out the source and build it with Eclipse. - -Eclipse is a cross-platform IDE. -http://www.eclipse.org/ - -Under Eclipse's File menu, click "New > Project ..." and create a -"Java Project." You will see an options screen. Give the project a -name, select "Create project from existing source," and choose the -root of the checked-out source tree as the existing directory. Verify -that you are using JRE version 6 or higher. - -Eclipse can use the build.xml file to discover rules. When you -navigate to the build.xml file, you will see all the build rules in -the "Outline" pane. Run the "jar" rule to build the compiler in -build/compiler.jar. - - -// -// Running The Closure Compiler -// - -Once you have the jar binary, running the Closure Compiler is straightforward. - -On the command line, type - -java -jar compiler.jar - -This starts the compiler in interactive mode. Type - -var x = 17 + 25; - -then hit "Enter", then hit "Ctrl-Z" (on Windows) or "Ctrl-D" (on Mac or Linux) -and "Enter" again. The Compiler will respond: - -var x=42; - -The Closure Compiler has many options for reading input from a file, -writing output to a file, checking your code, and running -optimizations. To learn more, type - -java -jar compiler.jar --help - -You can read more detailed documentation about the many flags at -http://code.google.com/closure/compiler/docs/gettingstarted_app.html - - -// -// Compiling Multiple Scripts -// - -If you have multiple scripts, you should compile them all together with -one compile command. - -java -jar compiler.jar --js=in1.js --js=in2.js ... --js_output_file=out.js - -The Closure Compiler will concatenate the files in the order they're -passed at the command line. - -If you need to compile many, many scripts together, you may start to -run into problems with managing dependencies between scripts. You -should check out the Closure Library. It contains functions for -enforcing dependencies between scripts, and a tool called calcdeps.py -that knows how to give scripts to the Closure Compiler in the right -order. - -http://code.google.com/p/closure-library/ - -// -// Licensing -// - -Unless otherwise stated, all source files are licensed under -the Apache License, Version 2.0. - - ------ -Code under: -src/com/google/javascript/rhino -test/com/google/javascript/rhino - -URL: http://www.mozilla.org/rhino -Version: 1.5R3, with heavy modifications -License: Netscape Public License and MPL / GPL dual license - -Description: A partial copy of Mozilla Rhino. Mozilla Rhino is an -implementation of JavaScript for the JVM. The JavaScript parser and -the parse tree data structures were extracted and modified -significantly for use by Google's JavaScript compiler. - -Local Modifications: The packages have been renamespaced. All code not -relavant to parsing has been removed. A JSDoc parser and static typing -system have been added. - - ------ -Code in: -lib/libtrunk_rhino_parser_jarjared.jar - -Rhino -URL: http://www.mozilla.org/rhino -Version: Trunk -License: Netscape Public License and MPL / GPL dual license - -Description: Mozilla Rhino is an implementation of JavaScript for the JVM. - -Local Modifications: None. We've used JarJar to renamespace the code -post-compilation. See: -http://code.google.com/p/jarjar/ - - ------ -Code in: -lib/args4j_deploy.jar - -Args4j -URL: https://args4j.dev.java.net/ -Version: 2.0.9 -License: MIT - -Description: -args4j is a small Java class library that makes it easy to parse command line -options/arguments in your CUI application. - -Local Modifications: None. - - ------ -Code in: -lib/guava-r06.jar - -Guava Libraries -URL: http://code.google.com/p/guava-libraries/ -Version: R6 -License: Apache License 2.0 - -Description: Google's core Java libraries. - -Local Modifications: None. - - ------ -Code in: -lib/hamcrest-core-1.1.jar - -Hamcrest -URL: http://code.google.com/p/hamcrest -License: BSD -License File: LICENSE - -Description: -Provides a library of matcher objects (also known as constraints or -predicates) allowing 'match' rules to be defined declaratively, to be used in -other frameworks. Typical scenarios include testing frameworks, mocking -libraries and UI validation rules. - -Local modifications: -The original jars contained both source code and compiled classes. - -hamcrest-core-1.1.jar just contains the compiled classes. - - - ------ -Code in: -lib/jsr305.jar - -Annotations for software defect detection -URL: http://code.google.com/p/jsr-305/ -Version: svn revision 47 -License: BSD License - -Description: Annotations for software defect detection. - -Local Modifications: None. - - ----- -Code in: -lib/junit.jar - -JUnit -URL: http://sourceforge.net/projects/junit/ -Version: 4.5 -License: Common Public License 1.0 - -Description: A framework for writing and running automated tests in Java. - -Local Modifications: None. - - ---- -Code in: -lib/protobuf-java-2.3.0.jar - -Protocol Buffers -URL: http://code.google.com/p/protobuf/ -Version: 2.3.0 -License: New BSD License - -Description: Supporting libraries for protocol buffers, -an encoding of structured data. - -Local Modifications: None - - ---- -Code in: -lib/ant_deploy.jar - -URL: http://ant.apache.org/bindownload.cgi -Version: 1.6.5 -License: Apache License 2.0 -Description: - Ant is a Java based build tool. In theory it is kind of like "make" - without make's wrinkles and with the full portability of pure java code. - -Local Modifications: - Modified apache-ant-1.6.5/bin/ant to look in the ant.runfiles directory - - ---- -Code in: -lib/json.jar -URL: http://json.org/java/index.html -Version: JSON version 2 -License: MIT license -Description: -JSON is a set of java files for use in transmitting data in JSON format. - -Local Modifications: None - diff --git a/build/tools/closure-compiler.jar b/build/tools/closure-compiler.jar deleted file mode 100644 index 4dfa5ad0..00000000 Binary files a/build/tools/closure-compiler.jar and /dev/null differ diff --git a/build/tools/ship.py b/build/tools/ship.py deleted file mode 100755 index 2cb5df6a..00000000 --- a/build/tools/ship.py +++ /dev/null @@ -1,154 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# ship.py -# -# Licensed under the Apache 2 License as is the rest of the project -# Copyright (c) 2011 Jeff Schiller -# -# This script has very little real-world application. It is only used in our pure-client web app -# served on GoogleCode so we can have one HTML file, run a build script and generate a 'release' -# version without having to maintain two separate HTML files. It does this by evaluating -# 'processing comments' that are suspicously similar to IE conditional comments and then outputting -# a new HTML file after evaluating particular variables. -# -# This script takes the following inputs: -# -# * a HTML file (--i=in.html) -# * a series of flag names (--on=Foo --on=Bar) -# -# Example: -# -# in.html: -# -# BAR! -# -# -# $ ship.py --i in.html --on foo -# -# out.html: -# -# FOO! -# -# -# It has the following limitations: -# -# 1) Only if-else-endif are currently supported. -# 2) All processing comments must be on one line with no other non-whitespace characters. -# 3) Comments cannot be nested. - -import optparse -import os - -inside_if = False -last_if_true = False - -_options_parser = optparse.OptionParser( - usage='%prog --i input.html [--on flag1]', - description=('Rewrites an HTML file based on conditional comments and flags')) -_options_parser.add_option('--i', - action='store', dest='input_html_file', help='Input HTML filename') -_options_parser.add_option('--on', - action='append', type='string', dest='enabled_flags', - help='name of flag to enable') - -def parse_args(args=None): - options, rargs = _options_parser.parse_args(args) - return options, (None, None) - -def parseComment(line, line_num, enabled_flags): - global inside_if - global last_if_true - - start = line.find('{') - end = line.find('}') - statement = line[start+1:end].strip() - if statement.startswith('if '): - if inside_if == True: - print 'Fatal Error: Nested {if} found on line ' + str(line_num) - print line - quit() - - # Evaluate whether the expression is true/false. - # only one variable name allowed for now - variable_name = statement[3:].strip() - if variable_name in enabled_flags: - last_if_true = True - line = '' - else: - last_if_true = False - line = '' - - # invert the logic so the endif clause is closed properly - last_if_true = not last_if_true - - # ensure we don't have two else statements in the same if - inside_if = 'else' - - elif statement == 'endif': - if inside_if == False: - print 'Fatal Error: {endif} found without {if} on line ' + str(line_num) - print line - quit() - - if last_if_true: - line = '' - else: - line = '' - - inside_if = False - - return line - -def ship(inFileName, enabled_flags): - # read in HTML file - lines = file(inFileName, 'r').readlines() - out_lines = [] - i = 0 - - # loop for each line of markup - for line in lines: - strline = line.strip() - # if we find a comment, process it and print out - if strline.startswith('');\n break;\n } // switch on node type\n }\n indent--;\n if (!bOneLine) {\n out.push('\\n');\n for (let i = 0; i < indent; i++) { out.push(' '); }\n }\n out.push('');\n } else {\n out.push('/>');\n }\n }\n return out.join('');\n}; // end svgToString()\n\n/**\n * Function to run when image data is found\n * @callback module:svgcanvas.ImageEmbeddedCallback\n * @param {string|false} result Data URL\n * @returns {void}\n */\n/**\n* Converts a given image file to a data URL when possible, then runs a given callback.\n* @function module:svgcanvas.SvgCanvas#embedImage\n* @param {string} src - The path/URL of the image\n* @returns {Promise} Resolves to a Data URL (string|false)\n*/\nthis.embedImage = function (src) {\n // Todo: Remove this Promise in favor of making an async/await `Image.load` utility\n return new Promise(function (resolve, reject) { // eslint-disable-line promise/avoid-new\n // load in the image and once it's loaded, get the dimensions\n $(new Image()).load(function (response, status, xhr) {\n if (status === 'error') {\n reject(new Error('Error loading image: ' + xhr.status + ' ' + xhr.statusText));\n return;\n }\n // create a canvas the same size as the raster image\n const cvs = document.createElement('canvas');\n cvs.width = this.width;\n cvs.height = this.height;\n // load the raster image into the canvas\n cvs.getContext('2d').drawImage(this, 0, 0);\n // retrieve the data: URL\n try {\n let urldata = ';svgedit_url=' + encodeURIComponent(src);\n urldata = cvs.toDataURL().replace(';base64', urldata + ';base64');\n encodableImages[src] = urldata;\n } catch (e) {\n encodableImages[src] = false;\n }\n lastGoodImgUrl = src;\n resolve(encodableImages[src]);\n }).attr('src', src);\n });\n};\n\n/**\n* Sets a given URL to be a \"last good image\" URL.\n* @function module:svgcanvas.SvgCanvas#setGoodImage\n* @param {string} val\n* @returns {void}\n*/\nthis.setGoodImage = function (val) {\n lastGoodImgUrl = val;\n};\n\n/**\n* Does nothing by default, handled by optional widget/extension.\n* @function module:svgcanvas.SvgCanvas#open\n* @returns {void}\n*/\nthis.open = function () {\n /* */\n};\n\n/**\n* Serializes the current drawing into SVG XML text and passes it to the 'saved' handler.\n* This function also includes the XML prolog. Clients of the `SvgCanvas` bind their save\n* function to the 'saved' event.\n* @function module:svgcanvas.SvgCanvas#save\n* @param {module:svgcanvas.SaveOptions} opts\n* @fires module:svgcanvas.SvgCanvas#event:saved\n* @returns {void}\n*/\nthis.save = function (opts) {\n // remove the selected outline before serializing\n clearSelection();\n // Update save options if provided\n if (opts) { $.extend(saveOptions, opts); }\n saveOptions.apply = true;\n\n // no need for doctype, see https://jwatt.org/svg/authoring/#doctype-declaration\n const str = this.svgCanvasToString();\n call('saved', str);\n};\n\n/**\n* @typedef {PlainObject} module:svgcanvas.IssuesAndCodes\n* @property {string[]} issueCodes The locale-independent code names\n* @property {string[]} issues The localized descriptions\n*/\n\n/**\n* Codes only is useful for locale-independent detection.\n* @returns {module:svgcanvas.IssuesAndCodes}\n*/\nfunction getIssues () {\n // remove the selected outline before serializing\n clearSelection();\n\n // Check for known CanVG issues\n const issues = [];\n const issueCodes = [];\n\n // Selector and notice\n const issueList = {\n feGaussianBlur: uiStrings.exportNoBlur,\n foreignObject: uiStrings.exportNoforeignObject,\n '[stroke-dasharray]': uiStrings.exportNoDashArray\n };\n const content = $(svgcontent);\n\n // Add font/text check if Canvas Text API is not implemented\n if (!('font' in $('')[0].getContext('2d'))) {\n issueList.text = uiStrings.exportNoText;\n }\n\n $.each(issueList, function (sel, descr) {\n if (content.find(sel).length) {\n issueCodes.push(sel);\n issues.push(descr);\n }\n });\n return {issues, issueCodes};\n}\n\nlet canvg;\n/**\n* @typedef {\"feGaussianBlur\"|\"foreignObject\"|\"[stroke-dasharray]\"|\"text\"} module:svgcanvas.IssueCode\n*/\n/**\n* @typedef {PlainObject} module:svgcanvas.ImageExportedResults\n* @property {string} datauri Contents as a Data URL\n* @property {string} bloburl May be the empty string\n* @property {string} svg The SVG contents as a string\n* @property {string[]} issues The localization messages of `issueCodes`\n* @property {module:svgcanvas.IssueCode[]} issueCodes CanVG issues found with the SVG\n* @property {\"PNG\"|\"JPEG\"|\"BMP\"|\"WEBP\"|\"ICO\"} type The chosen image type\n* @property {\"image/png\"|\"image/jpeg\"|\"image/bmp\"|\"image/webp\"} mimeType The image MIME type\n* @property {Float} quality A decimal between 0 and 1 (for use with JPEG or WEBP)\n* @property {string} exportWindowName A convenience for passing along a `window.name` to target a window on which the export could be added\n*/\n\n/**\n* Generates a PNG (or JPG, BMP, WEBP) Data URL based on the current image,\n* then calls \"exported\" with an object including the string, image\n* information, and any issues found.\n* @function module:svgcanvas.SvgCanvas#rasterExport\n* @param {\"PNG\"|\"JPEG\"|\"BMP\"|\"WEBP\"|\"ICO\"} [imgType=\"PNG\"]\n* @param {Float} [quality] Between 0 and 1\n* @param {string} [exportWindowName]\n* @param {PlainObject} [opts]\n* @param {boolean} [opts.avoidEvent]\n* @fires module:svgcanvas.SvgCanvas#event:exported\n* @todo Confirm/fix ICO type\n* @returns {Promise} Resolves to {@link module:svgcanvas.ImageExportedResults}\n*/\nthis.rasterExport = async function (imgType, quality, exportWindowName, opts = {}) {\n const type = imgType === 'ICO' ? 'BMP' : (imgType || 'PNG');\n const mimeType = 'image/' + type.toLowerCase();\n const {issues, issueCodes} = getIssues();\n const svg = this.svgCanvasToString();\n\n if (!canvg) {\n // eslint-disable-next-line require-atomic-updates\n ({canvg} = await importSetGlobal(curConfig.canvgPath + 'canvg.js', {\n global: 'canvg'\n }));\n }\n if (!$('#export_canvas').length) {\n $('', {id: 'export_canvas'}).hide().appendTo('body');\n }\n const c = $('#export_canvas')[0];\n c.width = canvas.contentW;\n c.height = canvas.contentH;\n\n await canvg(c, svg);\n // Todo: Make async/await utility in place of `toBlob`, so we can remove this constructor\n return new Promise((resolve, reject) => { // eslint-disable-line promise/avoid-new\n const dataURLType = type.toLowerCase();\n const datauri = quality\n ? c.toDataURL('image/' + dataURLType, quality)\n : c.toDataURL('image/' + dataURLType);\n let bloburl;\n /**\n * Called when `bloburl` is available for export.\n * @returns {void}\n */\n function done () {\n const obj = {\n datauri, bloburl, svg, issues, issueCodes, type: imgType,\n mimeType, quality, exportWindowName\n };\n if (!opts.avoidEvent) {\n call('exported', obj);\n }\n resolve(obj);\n }\n if (c.toBlob) {\n c.toBlob((blob) => {\n bloburl = createObjectURL(blob);\n done();\n }, mimeType, quality);\n return;\n }\n bloburl = dataURLToObjectURL(datauri);\n done();\n });\n};\n/**\n * @external jsPDF\n */\n/**\n * @typedef {void|\"save\"|\"arraybuffer\"|\"blob\"|\"datauristring\"|\"dataurlstring\"|\"dataurlnewwindow\"|\"datauri\"|\"dataurl\"} external:jsPDF.OutputType\n * @todo Newer version to add also allows these `outputType` values \"bloburi\"|\"bloburl\" which return strings, so document here and for `outputType` of `module:svgcanvas.PDFExportedResults` below if added\n*/\n/**\n* @typedef {PlainObject} module:svgcanvas.PDFExportedResults\n* @property {string} svg The SVG PDF output\n* @property {string|ArrayBuffer|Blob|window} output The output based on the `outputType`;\n* if `undefined`, \"datauristring\", \"dataurlstring\", \"datauri\",\n* or \"dataurl\", will be a string (`undefined` gives a document, while the others\n* build as Data URLs; \"datauri\" and \"dataurl\" change the location of the current page); if\n* \"arraybuffer\", will return `ArrayBuffer`; if \"blob\", returns a `Blob`;\n* if \"dataurlnewwindow\", will change the current page's location and return a string\n* if in Safari and no window object is found; otherwise opens in, and returns, a new `window`\n* object; if \"save\", will have the same return as \"dataurlnewwindow\" if\n* `navigator.getUserMedia` support is found without `URL.createObjectURL` support; otherwise\n* returns `undefined` but attempts to save\n* @property {external:jsPDF.OutputType} outputType\n* @property {string[]} issues The human-readable localization messages of corresponding `issueCodes`\n* @property {module:svgcanvas.IssueCode[]} issueCodes\n* @property {string} exportWindowName\n*/\n\n/**\n* Generates a PDF based on the current image, then calls \"exportedPDF\" with\n* an object including the string, the data URL, and any issues found.\n* @function module:svgcanvas.SvgCanvas#exportPDF\n* @param {string} [exportWindowName] Will also be used for the download file name here\n* @param {external:jsPDF.OutputType} [outputType=\"dataurlstring\"]\n* @fires module:svgcanvas.SvgCanvas#event:exportedPDF\n* @returns {Promise} Resolves to {@link module:svgcanvas.PDFExportedResults}\n*/\nthis.exportPDF = async function (\n exportWindowName,\n outputType = isChrome() ? 'save' : undefined\n) {\n if (!window.jsPDF) {\n // Todo: Switch to `import()` when widely supported and available (also allow customization of path)\n await importScript([\n // We do not currently have these paths configurable as they are\n // currently global-only, so not Rolled-up\n 'jspdf/underscore-min.js',\n 'jspdf/jspdf.min.js'\n ]);\n\n const modularVersion = !('svgEditor' in window) ||\n !window.svgEditor ||\n window.svgEditor.modules !== false;\n // Todo: Switch to `import()` when widely supported and available (also allow customization of path)\n await importScript(curConfig.jspdfPath + 'jspdf.plugin.svgToPdf.js', {\n type: modularVersion\n ? 'module'\n : 'text/javascript'\n });\n // await importModule('jspdf/jspdf.plugin.svgToPdf.js');\n }\n\n const res = getResolution();\n const orientation = res.w > res.h ? 'landscape' : 'portrait';\n const unit = 'pt'; // curConfig.baseUnit; // We could use baseUnit, but that is presumably not intended for export purposes\n\n // Todo: Give options to use predefined jsPDF formats like \"a4\", etc. from pull-down (with option to keep customizable)\n const doc = jsPDF({\n orientation,\n unit,\n format: [res.w, res.h]\n // , compressPdf: true\n });\n const docTitle = getDocumentTitle();\n doc.setProperties({\n title: docTitle /* ,\n subject: '',\n author: '',\n keywords: '',\n creator: '' */\n });\n const {issues, issueCodes} = getIssues();\n const svg = this.svgCanvasToString();\n doc.addSVG(svg, 0, 0);\n\n // doc.output('save'); // Works to open in a new\n // window; todo: configure this and other export\n // options to optionally work in this manner as\n // opposed to opening a new tab\n outputType = outputType || 'dataurlstring';\n const obj = {svg, issues, issueCodes, exportWindowName, outputType};\n obj.output = doc.output(outputType, outputType === 'save' ? (exportWindowName || 'svg.pdf') : undefined);\n call('exportedPDF', obj);\n return obj;\n};\n\n/**\n* Returns the current drawing as raw SVG XML text.\n* @function module:svgcanvas.SvgCanvas#getSvgString\n* @returns {string} The current drawing as raw SVG XML text.\n*/\nthis.getSvgString = function () {\n saveOptions.apply = false;\n return this.svgCanvasToString();\n};\n\n/**\n* This function determines whether to use a nonce in the prefix, when\n* generating IDs for future documents in SVG-Edit.\n* If you're controlling SVG-Edit externally, and want randomized IDs, call\n* this BEFORE calling `svgCanvas.setSvgString`.\n* @function module:svgcanvas.SvgCanvas#randomizeIds\n* @param {boolean} [enableRandomization] If true, adds a nonce to the prefix. Thus\n* `svgCanvas.randomizeIds() <==> svgCanvas.randomizeIds(true)`\n* @returns {void}\n*/\nthis.randomizeIds = function (enableRandomization) {\n if (arguments.length > 0 && enableRandomization === false) {\n draw.randomizeIds(false, getCurrentDrawing());\n } else {\n draw.randomizeIds(true, getCurrentDrawing());\n }\n};\n\n/**\n* Ensure each element has a unique ID.\n* @function module:svgcanvas.SvgCanvas#uniquifyElems\n* @param {Element} g - The parent element of the tree to give unique IDs\n* @returns {void}\n*/\nconst uniquifyElems = this.uniquifyElems = function (g) {\n const ids = {};\n // TODO: Handle markers and connectors. These are not yet re-identified properly\n // as their referring elements do not get remapped.\n //\n // \n // \n //\n // Problem #1: if svg_1 gets renamed, we do not update the polyline's se:connector attribute\n // Problem #2: if the polyline svg_7 gets renamed, we do not update the marker id nor the polyline's marker-end attribute\n const refElems = ['filter', 'linearGradient', 'pattern', 'radialGradient', 'symbol', 'textPath', 'use'];\n\n walkTree(g, function (n) {\n // if it's an element node\n if (n.nodeType === 1) {\n // and the element has an ID\n if (n.id) {\n // and we haven't tracked this ID yet\n if (!(n.id in ids)) {\n // add this id to our map\n ids[n.id] = {elem: null, attrs: [], hrefs: []};\n }\n ids[n.id].elem = n;\n }\n\n // now search for all attributes on this element that might refer\n // to other elements\n $.each(refAttrs, function (i, attr) {\n const attrnode = n.getAttributeNode(attr);\n if (attrnode) {\n // the incoming file has been sanitized, so we should be able to safely just strip off the leading #\n const url = getUrlFromAttr(attrnode.value),\n refid = url ? url.substr(1) : null;\n if (refid) {\n if (!(refid in ids)) {\n // add this id to our map\n ids[refid] = {elem: null, attrs: [], hrefs: []};\n }\n ids[refid].attrs.push(attrnode);\n }\n }\n });\n\n // check xlink:href now\n const href = getHref(n);\n // TODO: what if an or element refers to an element internally?\n if (href && refElems.includes(n.nodeName)) {\n const refid = href.substr(1);\n if (refid) {\n if (!(refid in ids)) {\n // add this id to our map\n ids[refid] = {elem: null, attrs: [], hrefs: []};\n }\n ids[refid].hrefs.push(n);\n }\n }\n }\n });\n\n // in ids, we now have a map of ids, elements and attributes, let's re-identify\n for (const oldid in ids) {\n if (!oldid) { continue; }\n const {elem} = ids[oldid];\n if (elem) {\n const newid = getNextId();\n\n // assign element its new id\n elem.id = newid;\n\n // remap all url() attributes\n const {attrs} = ids[oldid];\n let j = attrs.length;\n while (j--) {\n const attr = attrs[j];\n attr.ownerElement.setAttribute(attr.name, 'url(#' + newid + ')');\n }\n\n // remap all href attributes\n const hreffers = ids[oldid].hrefs;\n let k = hreffers.length;\n while (k--) {\n const hreffer = hreffers[k];\n setHref(hreffer, '#' + newid);\n }\n }\n }\n};\n\n/**\n* Assigns reference data for each use element.\n* @function module:svgcanvas.SvgCanvas#setUseData\n* @param {Element} parent\n* @returns {void}\n*/\nconst setUseData = this.setUseData = function (parent) {\n let elems = $(parent);\n\n if (parent.tagName !== 'use') {\n elems = elems.find('use');\n }\n\n elems.each(function () {\n const id = getHref(this).substr(1);\n const refElem = getElem(id);\n if (!refElem) { return; }\n $(this).data('ref', refElem);\n if (refElem.tagName === 'symbol' || refElem.tagName === 'svg') {\n $(this).data('symbol', refElem).data('ref', refElem);\n }\n });\n};\n\n/**\n* Converts gradients from userSpaceOnUse to objectBoundingBox.\n* @function module:svgcanvas.SvgCanvas#convertGradients\n* @param {Element} elem\n* @returns {void}\n*/\nconst convertGradients = this.convertGradients = function (elem) {\n let elems = $(elem).find('linearGradient, radialGradient');\n if (!elems.length && isWebkit()) {\n // Bug in webkit prevents regular *Gradient selector search\n elems = $(elem).find('*').filter(function () {\n return (this.tagName.includes('Gradient'));\n });\n }\n\n elems.each(function () {\n const grad = this; // eslint-disable-line consistent-this\n if ($(grad).attr('gradientUnits') === 'userSpaceOnUse') {\n // TODO: Support more than one element with this ref by duplicating parent grad\n const fillStrokeElems = $(svgcontent).find('[fill=\"url(#' + grad.id + ')\"],[stroke=\"url(#' + grad.id + ')\"]');\n if (!fillStrokeElems.length) { return; }\n\n // get object's bounding box\n const bb = utilsGetBBox(fillStrokeElems[0]);\n\n // This will occur if the element is inside a or a ,\n // in which we shouldn't need to convert anyway.\n if (!bb) { return; }\n\n if (grad.tagName === 'linearGradient') {\n const gCoords = $(grad).attr(['x1', 'y1', 'x2', 'y2']);\n\n // If has transform, convert\n const tlist = grad.gradientTransform.baseVal;\n if (tlist && tlist.numberOfItems > 0) {\n const m = transformListToTransform(tlist).matrix;\n const pt1 = transformPoint(gCoords.x1, gCoords.y1, m);\n const pt2 = transformPoint(gCoords.x2, gCoords.y2, m);\n\n gCoords.x1 = pt1.x;\n gCoords.y1 = pt1.y;\n gCoords.x2 = pt2.x;\n gCoords.y2 = pt2.y;\n grad.removeAttribute('gradientTransform');\n }\n\n $(grad).attr({\n x1: (gCoords.x1 - bb.x) / bb.width,\n y1: (gCoords.y1 - bb.y) / bb.height,\n x2: (gCoords.x2 - bb.x) / bb.width,\n y2: (gCoords.y2 - bb.y) / bb.height\n });\n grad.removeAttribute('gradientUnits');\n }\n // else {\n // Note: radialGradient elements cannot be easily converted\n // because userSpaceOnUse will keep circular gradients, while\n // objectBoundingBox will x/y scale the gradient according to\n // its bbox.\n //\n // For now we'll do nothing, though we should probably have\n // the gradient be updated as the element is moved, as\n // inkscape/illustrator do.\n //\n // const gCoords = $(grad).attr(['cx', 'cy', 'r']);\n //\n // $(grad).attr({\n // cx: (gCoords.cx - bb.x) / bb.width,\n // cy: (gCoords.cy - bb.y) / bb.height,\n // r: gCoords.r\n // });\n //\n // grad.removeAttribute('gradientUnits');\n // }\n }\n });\n};\n\n/**\n* Converts selected/given `` or child SVG element to a group.\n* @function module:svgcanvas.SvgCanvas#convertToGroup\n* @param {Element} elem\n* @fires module:svgcanvas.SvgCanvas#event:selected\n* @returns {void}\n*/\nconst convertToGroup = this.convertToGroup = function (elem) {\n if (!elem) {\n elem = selectedElements[0];\n }\n const $elem = $(elem);\n const batchCmd = new BatchCommand();\n let ts;\n\n if ($elem.data('gsvg')) {\n // Use the gsvg as the new group\n const svg = elem.firstChild;\n const pt = $(svg).attr(['x', 'y']);\n\n $(elem.firstChild.firstChild).unwrap();\n $(elem).removeData('gsvg');\n\n const tlist = getTransformList(elem);\n const xform = svgroot.createSVGTransform();\n xform.setTranslate(pt.x, pt.y);\n tlist.appendItem(xform);\n recalculateDimensions(elem);\n call('selected', [elem]);\n } else if ($elem.data('symbol')) {\n elem = $elem.data('symbol');\n\n ts = $elem.attr('transform');\n const pos = $elem.attr(['x', 'y']);\n\n const vb = elem.getAttribute('viewBox');\n\n if (vb) {\n const nums = vb.split(' ');\n pos.x -= Number(nums[0]);\n pos.y -= Number(nums[1]);\n }\n\n // Not ideal, but works\n ts += ' translate(' + (pos.x || 0) + ',' + (pos.y || 0) + ')';\n\n const prev = $elem.prev();\n\n // Remove element\n batchCmd.addSubCommand(new RemoveElementCommand($elem[0], $elem[0].nextSibling, $elem[0].parentNode));\n $elem.remove();\n\n // See if other elements reference this symbol\n const hasMore = $(svgcontent).find('use:data(symbol)').length;\n\n const g = svgdoc.createElementNS(NS.SVG, 'g');\n const childs = elem.childNodes;\n\n let i;\n for (i = 0; i < childs.length; i++) {\n g.append(childs[i].cloneNode(true));\n }\n\n // Duplicate the gradients for Gecko, since they weren't included in the \n if (isGecko()) {\n const dupeGrads = $(findDefs()).children('linearGradient,radialGradient,pattern').clone();\n $(g).append(dupeGrads);\n }\n\n if (ts) {\n g.setAttribute('transform', ts);\n }\n\n const parent = elem.parentNode;\n\n uniquifyElems(g);\n\n // Put the dupe gradients back into (after uniquifying them)\n if (isGecko()) {\n $(findDefs()).append($(g).find('linearGradient,radialGradient,pattern'));\n }\n\n // now give the g itself a new id\n g.id = getNextId();\n\n prev.after(g);\n\n if (parent) {\n if (!hasMore) {\n // remove symbol/svg element\n const {nextSibling} = elem;\n elem.remove();\n batchCmd.addSubCommand(new RemoveElementCommand(elem, nextSibling, parent));\n }\n batchCmd.addSubCommand(new InsertElementCommand(g));\n }\n\n setUseData(g);\n\n if (isGecko()) {\n convertGradients(findDefs());\n } else {\n convertGradients(g);\n }\n\n // recalculate dimensions on the top-level children so that unnecessary transforms\n // are removed\n walkTreePost(g, function (n) {\n try {\n recalculateDimensions(n);\n } catch (e) {\n console.log(e); // eslint-disable-line no-console\n }\n });\n\n // Give ID for any visible element missing one\n $(g).find(visElems).each(function () {\n if (!this.id) { this.id = getNextId(); }\n });\n\n selectOnly([g]);\n\n const cm = pushGroupProperties(g, true);\n if (cm) {\n batchCmd.addSubCommand(cm);\n }\n\n addCommandToHistory(batchCmd);\n } else {\n console.log('Unexpected element to ungroup:', elem); // eslint-disable-line no-console\n }\n};\n\n/**\n* This function sets the current drawing as the input SVG XML.\n* @function module:svgcanvas.SvgCanvas#setSvgString\n* @param {string} xmlString - The SVG as XML text.\n* @param {boolean} [preventUndo=false] - Indicates if we want to do the\n* changes without adding them to the undo stack - e.g. for initializing a\n* drawing on page load.\n* @fires module:svgcanvas.SvgCanvas#event:setnonce\n* @fires module:svgcanvas.SvgCanvas#event:unsetnonce\n* @fires module:svgcanvas.SvgCanvas#event:changed\n* @returns {boolean} This function returns `false` if the set was\n* unsuccessful, `true` otherwise.\n*/\nthis.setSvgString = function (xmlString, preventUndo) {\n try {\n // convert string into XML document\n const newDoc = text2xml(xmlString);\n if (newDoc.firstElementChild &&\n newDoc.firstElementChild.namespaceURI !== NS.SVG) {\n return false;\n }\n\n this.prepareSvg(newDoc);\n\n const batchCmd = new BatchCommand('Change Source');\n\n // remove old svg document\n const {nextSibling} = svgcontent;\n const oldzoom = svgroot.removeChild(svgcontent);\n batchCmd.addSubCommand(new RemoveElementCommand(oldzoom, nextSibling, svgroot));\n\n // set new svg document\n // If DOM3 adoptNode() available, use it. Otherwise fall back to DOM2 importNode()\n if (svgdoc.adoptNode) {\n svgcontent = svgdoc.adoptNode(newDoc.documentElement);\n } else {\n svgcontent = svgdoc.importNode(newDoc.documentElement, true);\n }\n\n svgroot.append(svgcontent);\n const content = $(svgcontent);\n\n canvas.current_drawing_ = new draw.Drawing(svgcontent, idprefix);\n\n // retrieve or set the nonce\n const nonce = getCurrentDrawing().getNonce();\n if (nonce) {\n call('setnonce', nonce);\n } else {\n call('unsetnonce');\n }\n\n // change image href vals if possible\n content.find('image').each(function () {\n const image = this; // eslint-disable-line consistent-this\n preventClickDefault(image);\n const val = getHref(this);\n if (val) {\n if (val.startsWith('data:')) {\n // Check if an SVG-edit data URI\n const m = val.match(/svgedit_url=(.*?);/);\n // const m = val.match(/svgedit_url=(?.*?);/);\n if (m) {\n const url = decodeURIComponent(m[1]);\n // const url = decodeURIComponent(m.groups.url);\n $(new Image()).load(function () {\n image.setAttributeNS(NS.XLINK, 'xlink:href', url);\n }).attr('src', url);\n }\n }\n // Add to encodableImages if it loads\n canvas.embedImage(val);\n }\n });\n\n // Wrap child SVGs in group elements\n content.find('svg').each(function () {\n // Skip if it's in a \n if ($(this).closest('defs').length) { return; }\n\n uniquifyElems(this);\n\n // Check if it already has a gsvg group\n const pa = this.parentNode;\n if (pa.childNodes.length === 1 && pa.nodeName === 'g') {\n $(pa).data('gsvg', this);\n pa.id = pa.id || getNextId();\n } else {\n groupSvgElem(this);\n }\n });\n\n // For Firefox: Put all paint elems in defs\n if (isGecko()) {\n content.find('linearGradient, radialGradient, pattern').appendTo(findDefs());\n }\n\n // Set ref element for elements\n\n // TODO: This should also be done if the object is re-added through \"redo\"\n setUseData(content);\n\n convertGradients(content[0]);\n\n const attrs = {\n id: 'svgcontent',\n overflow: curConfig.show_outside_canvas ? 'visible' : 'hidden'\n };\n\n let percs = false;\n\n // determine proper size\n if (content.attr('viewBox')) {\n const vb = content.attr('viewBox').split(' ');\n attrs.width = vb[2];\n attrs.height = vb[3];\n // handle content that doesn't have a viewBox\n } else {\n $.each(['width', 'height'], function (i, dim) {\n // Set to 100 if not given\n const val = content.attr(dim) || '100%';\n\n if (String(val).substr(-1) === '%') {\n // Use user units if percentage given\n percs = true;\n } else {\n attrs[dim] = convertToNum(dim, val);\n }\n });\n }\n\n // identify layers\n draw.identifyLayers();\n\n // Give ID for any visible layer children missing one\n content.children().find(visElems).each(function () {\n if (!this.id) { this.id = getNextId(); }\n });\n\n // Percentage width/height, so let's base it on visible elements\n if (percs) {\n const bb = getStrokedBBoxDefaultVisible();\n attrs.width = bb.width + bb.x;\n attrs.height = bb.height + bb.y;\n }\n\n // Just in case negative numbers are given or\n // result from the percs calculation\n if (attrs.width <= 0) { attrs.width = 100; }\n if (attrs.height <= 0) { attrs.height = 100; }\n\n content.attr(attrs);\n this.contentW = attrs.width;\n this.contentH = attrs.height;\n\n batchCmd.addSubCommand(new InsertElementCommand(svgcontent));\n // update root to the correct size\n const changes = content.attr(['width', 'height']);\n batchCmd.addSubCommand(new ChangeElementCommand(svgroot, changes));\n\n // reset zoom\n currentZoom = 1;\n\n // reset transform lists\n resetListMap();\n clearSelection();\n pathModule.clearData();\n svgroot.append(selectorManager.selectorParentGroup);\n\n if (!preventUndo) addCommandToHistory(batchCmd);\n call('changed', [svgcontent]);\n } catch (e) {\n console.log(e); // eslint-disable-line no-console\n return false;\n }\n\n return true;\n};\n\n/**\n* This function imports the input SVG XML as a `` in the ``, then adds a\n* `` to the current layer.\n* @function module:svgcanvas.SvgCanvas#importSvgString\n* @param {string} xmlString - The SVG as XML text.\n* @fires module:svgcanvas.SvgCanvas#event:changed\n* @returns {null|Element} This function returns null if the import was unsuccessful, or the element otherwise.\n* @todo\n* - properly handle if namespace is introduced by imported content (must add to svgcontent\n* and update all prefixes in the imported node)\n* - properly handle recalculating dimensions, `recalculateDimensions()` doesn't handle\n* arbitrary transform lists, but makes some assumptions about how the transform list\n* was obtained\n*/\nthis.importSvgString = function (xmlString) {\n let j, ts, useEl;\n try {\n // Get unique ID\n const uid = encode64(xmlString.length + xmlString).substr(0, 32);\n\n let useExisting = false;\n // Look for symbol and make sure symbol exists in image\n if (importIds[uid]) {\n if ($(importIds[uid].symbol).parents('#svgroot').length) {\n useExisting = true;\n }\n }\n\n const batchCmd = new BatchCommand('Import Image');\n let symbol;\n if (useExisting) {\n ({symbol} = importIds[uid]);\n ts = importIds[uid].xform;\n } else {\n // convert string into XML document\n const newDoc = text2xml(xmlString);\n\n this.prepareSvg(newDoc);\n\n // import new svg document into our document\n let svg;\n // If DOM3 adoptNode() available, use it. Otherwise fall back to DOM2 importNode()\n if (svgdoc.adoptNode) {\n svg = svgdoc.adoptNode(newDoc.documentElement);\n } else {\n svg = svgdoc.importNode(newDoc.documentElement, true);\n }\n\n uniquifyElems(svg);\n\n const innerw = convertToNum('width', svg.getAttribute('width')),\n innerh = convertToNum('height', svg.getAttribute('height')),\n innervb = svg.getAttribute('viewBox'),\n // if no explicit viewbox, create one out of the width and height\n vb = innervb ? innervb.split(' ') : [0, 0, innerw, innerh];\n for (j = 0; j < 4; ++j) {\n vb[j] = Number(vb[j]);\n }\n\n // TODO: properly handle preserveAspectRatio\n const // canvasw = +svgcontent.getAttribute('width'),\n canvash = Number(svgcontent.getAttribute('height'));\n // imported content should be 1/3 of the canvas on its largest dimension\n\n if (innerh > innerw) {\n ts = 'scale(' + (canvash / 3) / vb[3] + ')';\n } else {\n ts = 'scale(' + (canvash / 3) / vb[2] + ')';\n }\n\n // Hack to make recalculateDimensions understand how to scale\n ts = 'translate(0) ' + ts + ' translate(0)';\n\n symbol = svgdoc.createElementNS(NS.SVG, 'symbol');\n const defs = findDefs();\n\n if (isGecko()) {\n // Move all gradients into root for Firefox, workaround for this bug:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=353575\n // TODO: Make this properly undo-able.\n $(svg).find('linearGradient, radialGradient, pattern').appendTo(defs);\n }\n\n while (svg.firstChild) {\n const first = svg.firstChild;\n symbol.append(first);\n }\n const attrs = svg.attributes;\n for (const attr of attrs) { // Ok for `NamedNodeMap`\n symbol.setAttribute(attr.nodeName, attr.value);\n }\n symbol.id = getNextId();\n\n // Store data\n importIds[uid] = {\n symbol,\n xform: ts\n };\n\n findDefs().append(symbol);\n batchCmd.addSubCommand(new InsertElementCommand(symbol));\n }\n\n useEl = svgdoc.createElementNS(NS.SVG, 'use');\n useEl.id = getNextId();\n setHref(useEl, '#' + symbol.id);\n\n (currentGroup || getCurrentDrawing().getCurrentLayer()).append(useEl);\n batchCmd.addSubCommand(new InsertElementCommand(useEl));\n clearSelection();\n\n useEl.setAttribute('transform', ts);\n recalculateDimensions(useEl);\n $(useEl).data('symbol', symbol).data('ref', symbol);\n addToSelection([useEl]);\n\n // TODO: Find way to add this in a recalculateDimensions-parsable way\n // if (vb[0] !== 0 || vb[1] !== 0) {\n // ts = 'translate(' + (-vb[0]) + ',' + (-vb[1]) + ') ' + ts;\n // }\n addCommandToHistory(batchCmd);\n call('changed', [svgcontent]);\n } catch (e) {\n console.log(e); // eslint-disable-line no-console\n return null;\n }\n\n // we want to return the element so we can automatically select it\n return useEl;\n};\n\n// Could deprecate, but besides external uses, their usage makes clear that\n// canvas is a dependency for all of these\nconst dr = {\n identifyLayers, createLayer, cloneLayer, deleteCurrentLayer,\n setCurrentLayer, renameCurrentLayer, setCurrentLayerPosition,\n setLayerVisibility, moveSelectedToLayer, mergeLayer, mergeAllLayers,\n leaveContext, setContext\n};\nObject.entries(dr).forEach(([prop, propVal]) => {\n canvas[prop] = propVal;\n});\ndraw.init(\n /**\n * @implements {module:draw.DrawCanvasInit}\n */\n {\n pathActions,\n getCurrentGroup () {\n return currentGroup;\n },\n setCurrentGroup (cg) {\n currentGroup = cg;\n },\n getSelectedElements,\n getSVGContent,\n undoMgr,\n elData,\n getCurrentDrawing,\n clearSelection,\n call,\n addCommandToHistory,\n /**\n * @fires module:svgcanvas.SvgCanvas#event:changed\n * @returns {void}\n */\n changeSVGContent () {\n call('changed', [svgcontent]);\n }\n }\n);\n\n/**\n* Group: Document functions\n*/\n\n/**\n* Clears the current document. This is not an undoable action.\n* @function module:svgcanvas.SvgCanvas#clear\n* @fires module:svgcanvas.SvgCanvas#event:cleared\n* @returns {void}\n*/\nthis.clear = function () {\n pathActions.clear();\n\n clearSelection();\n\n // clear the svgcontent node\n canvas.clearSvgContentElement();\n\n // create new document\n canvas.current_drawing_ = new draw.Drawing(svgcontent);\n\n // create empty first layer\n canvas.createLayer('Layer 1');\n\n // clear the undo stack\n canvas.undoMgr.resetUndoStack();\n\n // reset the selector manager\n selectorManager.initGroup();\n\n // reset the rubber band box\n rubberBox = selectorManager.getRubberBandBox();\n\n call('cleared');\n};\n\n// Alias function\nthis.linkControlPoints = pathActions.linkControlPoints;\n\n/**\n* @function module:svgcanvas.SvgCanvas#getContentElem\n* @returns {Element} The content DOM element\n*/\nthis.getContentElem = function () { return svgcontent; };\n\n/**\n* @function module:svgcanvas.SvgCanvas#getRootElem\n* @returns {SVGSVGElement} The root DOM element\n*/\nthis.getRootElem = function () { return svgroot; };\n\n/**\n* @typedef {PlainObject} DimensionsAndZoom\n* @property {Float} w Width\n* @property {Float} h Height\n* @property {Float} zoom Zoom\n*/\n\n/**\n* @function module:svgcanvas.SvgCanvas#getResolution\n* @returns {DimensionsAndZoom} The current dimensions and zoom level in an object\n*/\nconst getResolution = this.getResolution = function () {\n// const vb = svgcontent.getAttribute('viewBox').split(' ');\n// return {w:vb[2], h:vb[3], zoom: currentZoom};\n\n const w = svgcontent.getAttribute('width') / currentZoom;\n const h = svgcontent.getAttribute('height') / currentZoom;\n\n return {\n w,\n h,\n zoom: currentZoom\n };\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#getSnapToGrid\n* @returns {boolean} The current snap to grid setting\n*/\nthis.getSnapToGrid = function () { return curConfig.gridSnapping; };\n\n/**\n* @function module:svgcanvas.SvgCanvas#getVersion\n* @returns {string} A string which describes the revision number of SvgCanvas.\n*/\nthis.getVersion = function () {\n return 'svgcanvas.js ($Rev$)';\n};\n\n/**\n* Update interface strings with given values.\n* @function module:svgcanvas.SvgCanvas#setUiStrings\n* @param {module:path.uiStrings} strs - Object with strings (see the [locales API]{@link module:locale.LocaleStrings} and the [tutorial]{@tutorial LocaleDocs})\n* @returns {void}\n*/\nthis.setUiStrings = function (strs) {\n Object.assign(uiStrings, strs.notification);\n $ = jQueryPluginDBox($, strs.common);\n pathModule.setUiStrings(strs);\n};\n\n/**\n* Update configuration options with given values.\n* @function module:svgcanvas.SvgCanvas#setConfig\n* @param {module:SVGEditor.Config} opts - Object with options\n* @returns {void}\n*/\nthis.setConfig = function (opts) {\n Object.assign(curConfig, opts);\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#getTitle\n* @param {Element} [elem]\n* @returns {string|void} the current group/SVG's title contents or\n* `undefined` if no element is passed nd there are no selected elements.\n*/\nthis.getTitle = function (elem) {\n elem = elem || selectedElements[0];\n if (!elem) { return undefined; }\n elem = $(elem).data('gsvg') || $(elem).data('symbol') || elem;\n const childs = elem.childNodes;\n for (const child of childs) {\n if (child.nodeName === 'title') {\n return child.textContent;\n }\n }\n return '';\n};\n\n/**\n* Sets the group/SVG's title content.\n* @function module:svgcanvas.SvgCanvas#setGroupTitle\n* @param {string} val\n* @todo Combine this with `setDocumentTitle`\n* @returns {void}\n*/\nthis.setGroupTitle = function (val) {\n let elem = selectedElements[0];\n elem = $(elem).data('gsvg') || elem;\n\n const ts = $(elem).children('title');\n\n const batchCmd = new BatchCommand('Set Label');\n\n let title;\n if (!val.length) {\n // Remove title element\n const tsNextSibling = ts.nextSibling;\n batchCmd.addSubCommand(new RemoveElementCommand(ts[0], tsNextSibling, elem));\n ts.remove();\n } else if (ts.length) {\n // Change title contents\n title = ts[0];\n batchCmd.addSubCommand(new ChangeElementCommand(title, {'#text': title.textContent}));\n title.textContent = val;\n } else {\n // Add title element\n title = svgdoc.createElementNS(NS.SVG, 'title');\n title.textContent = val;\n $(elem).prepend(title);\n batchCmd.addSubCommand(new InsertElementCommand(title));\n }\n\n addCommandToHistory(batchCmd);\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#getDocumentTitle\n* @returns {string|void} The current document title or an empty string if not found\n*/\nconst getDocumentTitle = this.getDocumentTitle = function () {\n return canvas.getTitle(svgcontent);\n};\n\n/**\n* Adds/updates a title element for the document with the given name.\n* This is an undoable action.\n* @function module:svgcanvas.SvgCanvas#setDocumentTitle\n* @param {string} newTitle - String with the new title\n* @returns {void}\n*/\nthis.setDocumentTitle = function (newTitle) {\n const childs = svgcontent.childNodes;\n let docTitle = false, oldTitle = '';\n\n const batchCmd = new BatchCommand('Change Image Title');\n\n for (const child of childs) {\n if (child.nodeName === 'title') {\n docTitle = child;\n oldTitle = docTitle.textContent;\n break;\n }\n }\n if (!docTitle) {\n docTitle = svgdoc.createElementNS(NS.SVG, 'title');\n svgcontent.insertBefore(docTitle, svgcontent.firstChild);\n // svgcontent.firstChild.before(docTitle); // Ok to replace above with this?\n }\n\n if (newTitle.length) {\n docTitle.textContent = newTitle;\n } else {\n // No title given, so element is not necessary\n docTitle.remove();\n }\n batchCmd.addSubCommand(new ChangeElementCommand(docTitle, {'#text': oldTitle}));\n addCommandToHistory(batchCmd);\n};\n\n/**\n* Returns the editor's namespace URL, optionally adding it to the root element.\n* @function module:svgcanvas.SvgCanvas#getEditorNS\n* @param {boolean} [add] - Indicates whether or not to add the namespace value\n* @returns {string} The editor's namespace URL\n*/\nthis.getEditorNS = function (add) {\n if (add) {\n svgcontent.setAttribute('xmlns:se', NS.SE);\n }\n return NS.SE;\n};\n\n/**\n* Changes the document's dimensions to the given size.\n* @function module:svgcanvas.SvgCanvas#setResolution\n* @param {Float|\"fit\"} x - Number with the width of the new dimensions in user units.\n* Can also be the string \"fit\" to indicate \"fit to content\".\n* @param {Float} y - Number with the height of the new dimensions in user units.\n* @fires module:svgcanvas.SvgCanvas#event:changed\n* @returns {boolean} Indicates if resolution change was successful.\n* It will fail on \"fit to content\" option with no content to fit to.\n*/\nthis.setResolution = function (x, y) {\n const res = getResolution();\n const {w, h} = res;\n let batchCmd;\n\n if (x === 'fit') {\n // Get bounding box\n const bbox = getStrokedBBoxDefaultVisible();\n\n if (bbox) {\n batchCmd = new BatchCommand('Fit Canvas to Content');\n const visEls = getVisibleElements();\n addToSelection(visEls);\n const dx = [], dy = [];\n $.each(visEls, function (i, item) {\n dx.push(bbox.x * -1);\n dy.push(bbox.y * -1);\n });\n\n const cmd = canvas.moveSelectedElements(dx, dy, true);\n batchCmd.addSubCommand(cmd);\n clearSelection();\n\n x = Math.round(bbox.width);\n y = Math.round(bbox.height);\n } else {\n return false;\n }\n }\n if (x !== w || y !== h) {\n if (!batchCmd) {\n batchCmd = new BatchCommand('Change Image Dimensions');\n }\n\n x = convertToNum('width', x);\n y = convertToNum('height', y);\n\n svgcontent.setAttribute('width', x);\n svgcontent.setAttribute('height', y);\n\n this.contentW = x;\n this.contentH = y;\n batchCmd.addSubCommand(new ChangeElementCommand(svgcontent, {width: w, height: h}));\n\n svgcontent.setAttribute('viewBox', [0, 0, x / currentZoom, y / currentZoom].join(' '));\n batchCmd.addSubCommand(new ChangeElementCommand(svgcontent, {viewBox: ['0 0', w, h].join(' ')}));\n\n addCommandToHistory(batchCmd);\n call('changed', [svgcontent]);\n }\n return true;\n};\n\n/**\n* @typedef {module:jQueryAttr.Attributes} module:svgcanvas.ElementPositionInCanvas\n* @property {Float} x\n* @property {Float} y\n*/\n\n/**\n* @function module:svgcanvas.SvgCanvas#getOffset\n* @returns {module:svgcanvas.ElementPositionInCanvas} An object with `x`, `y` values indicating the svgcontent element's\n* position in the editor's canvas.\n*/\nthis.getOffset = function () {\n return $(svgcontent).attr(['x', 'y']);\n};\n\n/**\n * @typedef {PlainObject} module:svgcanvas.ZoomAndBBox\n * @property {Float} zoom\n * @property {module:utilities.BBoxObject} bbox\n */\n/**\n* Sets the zoom level on the canvas-side based on the given value.\n* @function module:svgcanvas.SvgCanvas#setBBoxZoom\n* @param {\"selection\"|\"canvas\"|\"content\"|\"layer\"|module:SVGEditor.BBoxObjectWithFactor} val - Bounding box object to zoom to or string indicating zoom option. Note: the object value type is defined in `svg-editor.js`\n* @param {Integer} editorW - The editor's workarea box's width\n* @param {Integer} editorH - The editor's workarea box's height\n* @returns {module:svgcanvas.ZoomAndBBox|void}\n*/\nthis.setBBoxZoom = function (val, editorW, editorH) {\n let spacer = 0.85;\n let bb;\n const calcZoom = function (bb) { // eslint-disable-line no-shadow\n if (!bb) { return false; }\n const wZoom = Math.round((editorW / bb.width) * 100 * spacer) / 100;\n const hZoom = Math.round((editorH / bb.height) * 100 * spacer) / 100;\n const zoom = Math.min(wZoom, hZoom);\n canvas.setZoom(zoom);\n return {zoom, bbox: bb};\n };\n\n if (typeof val === 'object') {\n bb = val;\n if (bb.width === 0 || bb.height === 0) {\n const newzoom = bb.zoom ? bb.zoom : currentZoom * bb.factor;\n canvas.setZoom(newzoom);\n return {zoom: currentZoom, bbox: bb};\n }\n return calcZoom(bb);\n }\n\n switch (val) {\n case 'selection': {\n if (!selectedElements[0]) { return undefined; }\n const selectedElems = $.map(selectedElements, function (n) {\n if (n) {\n return n;\n }\n return undefined;\n });\n bb = getStrokedBBoxDefaultVisible(selectedElems);\n break;\n } case 'canvas': {\n const res = getResolution();\n spacer = 0.95;\n bb = {width: res.w, height: res.h, x: 0, y: 0};\n break;\n } case 'content':\n bb = getStrokedBBoxDefaultVisible();\n break;\n case 'layer':\n bb = getStrokedBBoxDefaultVisible(getVisibleElements(getCurrentDrawing().getCurrentLayer()));\n break;\n default:\n return undefined;\n }\n return calcZoom(bb);\n};\n\n/**\n* The zoom level has changed. Supplies the new zoom level as a number (not percentage).\n* @event module:svgcanvas.SvgCanvas#event:ext_zoomChanged\n* @type {Float}\n*/\n/**\n* The bottom panel was updated\n* @event module:svgcanvas.SvgCanvas#event:ext_toolButtonStateUpdate\n* @type {PlainObject}\n* @property {boolean} nofill Indicates fill is disabled\n* @property {boolean} nostroke Indicates stroke is disabled\n*/\n/**\n* The element selection has changed (elements were added/removed from selection)\n* @event module:svgcanvas.SvgCanvas#event:ext_selectedChanged\n* @type {PlainObject}\n* @property {Element[]} elems Array of the newly selected elements\n* @property {Element|null} selectedElement The single selected element\n* @property {boolean} multiselected Indicates whether one or more elements were selected\n*/\n/**\n* Called when part of element is in process of changing, generally on\n* mousemove actions like rotate, move, etc.\n* @event module:svgcanvas.SvgCanvas#event:ext_elementTransition\n* @type {PlainObject}\n* @property {Element[]} elems Array of transitioning elements\n*/\n/**\n* One or more elements were changed\n* @event module:svgcanvas.SvgCanvas#event:ext_elementChanged\n* @type {PlainObject}\n* @property {Element[]} elems Array of the affected elements\n*/\n/**\n* Invoked as soon as the locale is ready\n* @event module:svgcanvas.SvgCanvas#event:ext_langReady\n* @type {PlainObject}\n* @property {string} lang The two-letter language code\n* @property {module:SVGEditor.uiStrings} uiStrings\n* @property {module:SVGEditor~ImportLocale} importLocale\n*/\n/**\n* The language was changed. Two-letter code of the new language.\n* @event module:svgcanvas.SvgCanvas#event:ext_langChanged\n* @type {string}\n*/\n/**\n* Means for an extension to add locale data. The two-letter language code.\n* @event module:svgcanvas.SvgCanvas#event:ext_addLangData\n* @type {PlainObject}\n* @property {string} lang\n* @property {module:SVGEditor~ImportLocale} importLocale\n*/\n/**\n * Called when new image is created\n * @event module:svgcanvas.SvgCanvas#event:ext_onNewDocument\n * @type {void}\n */\n/**\n * Called when sidepanel is resized or toggled\n * @event module:svgcanvas.SvgCanvas#event:ext_workareaResized\n * @type {void}\n*/\n/**\n * Called upon addition of the extension, or, if svgicons are set,\n * after the icons are ready when extension SVG icons have loaded.\n * @event module:svgcanvas.SvgCanvas#event:ext_callback\n * @type {void}\n*/\n\n/**\n* Sets the zoom to the given level.\n* @function module:svgcanvas.SvgCanvas#setZoom\n* @param {Float} zoomLevel - Float indicating the zoom level to change to\n* @fires module:svgcanvas.SvgCanvas#event:ext_zoomChanged\n* @returns {void}\n*/\nthis.setZoom = function (zoomLevel) {\n const res = getResolution();\n svgcontent.setAttribute('viewBox', '0 0 ' + res.w / zoomLevel + ' ' + res.h / zoomLevel);\n currentZoom = zoomLevel;\n $.each(selectedElements, function (i, elem) {\n if (!elem) { return; }\n selectorManager.requestSelector(elem).resize();\n });\n pathActions.zoomChange();\n runExtensions('zoomChanged', /** @type {module:svgcanvas.SvgCanvas#event:ext_zoomChanged} */ zoomLevel);\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#getMode\n* @returns {string} The current editor mode string\n*/\nthis.getMode = function () {\n return currentMode;\n};\n\n/**\n* Sets the editor's mode to the given string.\n* @function module:svgcanvas.SvgCanvas#setMode\n* @param {string} name - String with the new mode to change to\n* @returns {void}\n*/\nthis.setMode = function (name) {\n pathActions.clear(true);\n textActions.clear();\n curProperties = (selectedElements[0] && selectedElements[0].nodeName === 'text') ? curText : curShape;\n currentMode = name;\n};\n\n/**\n* Group: Element Styling\n*/\n\n/**\n* @typedef {PlainObject} module:svgcanvas.PaintOptions\n* @property {\"solidColor\"} type\n*/\n\n/**\n* @function module:svgcanvas.SvgCanvas#getColor\n* @param {string} type\n* @returns {string|module:svgcanvas.PaintOptions|Float|module:jGraduate~Paint} The current fill/stroke option\n*/\nthis.getColor = function (type) {\n return curProperties[type];\n};\n\n/**\n* Change the current stroke/fill color/gradient value.\n* @function module:svgcanvas.SvgCanvas#setColor\n* @param {string} type - String indicating fill or stroke\n* @param {string} val - The value to set the stroke attribute to\n* @param {boolean} preventUndo - Boolean indicating whether or not this should be an undoable option\n* @fires module:svgcanvas.SvgCanvas#event:changed\n* @returns {void}\n*/\nthis.setColor = function (type, val, preventUndo) {\n curShape[type] = val;\n curProperties[type + '_paint'] = {type: 'solidColor'};\n const elems = [];\n /**\n *\n * @param {Element} e\n * @returns {void}\n */\n function addNonG (e) {\n if (e.nodeName !== 'g') {\n elems.push(e);\n }\n }\n let i = selectedElements.length;\n while (i--) {\n const elem = selectedElements[i];\n if (elem) {\n if (elem.tagName === 'g') {\n walkTree(elem, addNonG);\n } else if (type === 'fill') {\n if (elem.tagName !== 'polyline' && elem.tagName !== 'line') {\n elems.push(elem);\n }\n } else {\n elems.push(elem);\n }\n }\n }\n if (elems.length > 0) {\n if (!preventUndo) {\n changeSelectedAttribute(type, val, elems);\n call('changed', elems);\n } else {\n changeSelectedAttributeNoUndo(type, val, elems);\n }\n }\n};\n\n/**\n* Apply the current gradient to selected element's fill or stroke.\n* @function module:svgcanvas.SvgCanvas#setGradient\n* @param {\"fill\"|\"stroke\"} type - String indicating \"fill\" or \"stroke\" to apply to an element\n* @returns {void}\n*/\nconst setGradient = this.setGradient = function (type) {\n if (!curProperties[type + '_paint'] || curProperties[type + '_paint'].type === 'solidColor') { return; }\n let grad = canvas[type + 'Grad'];\n // find out if there is a duplicate gradient already in the defs\n const duplicateGrad = findDuplicateGradient(grad);\n const defs = findDefs();\n // no duplicate found, so import gradient into defs\n if (!duplicateGrad) {\n // const origGrad = grad;\n grad = defs.appendChild(svgdoc.importNode(grad, true));\n // get next id and set it on the grad\n grad.id = getNextId();\n } else { // use existing gradient\n grad = duplicateGrad;\n }\n canvas.setColor(type, 'url(#' + grad.id + ')');\n};\n\n/**\n* Check if exact gradient already exists.\n* @function module:svgcanvas~findDuplicateGradient\n* @param {SVGGradientElement} grad - The gradient DOM element to compare to others\n* @returns {SVGGradientElement} The existing gradient if found, `null` if not\n*/\nconst findDuplicateGradient = function (grad) {\n const defs = findDefs();\n const existingGrads = $(defs).find('linearGradient, radialGradient');\n let i = existingGrads.length;\n const radAttrs = ['r', 'cx', 'cy', 'fx', 'fy'];\n while (i--) {\n const og = existingGrads[i];\n if (grad.tagName === 'linearGradient') {\n if (grad.getAttribute('x1') !== og.getAttribute('x1') ||\n grad.getAttribute('y1') !== og.getAttribute('y1') ||\n grad.getAttribute('x2') !== og.getAttribute('x2') ||\n grad.getAttribute('y2') !== og.getAttribute('y2')\n ) {\n continue;\n }\n } else {\n const gradAttrs = $(grad).attr(radAttrs);\n const ogAttrs = $(og).attr(radAttrs);\n\n let diff = false;\n $.each(radAttrs, function (j, attr) {\n if (gradAttrs[attr] !== ogAttrs[attr]) { diff = true; }\n });\n\n if (diff) { continue; }\n }\n\n // else could be a duplicate, iterate through stops\n const stops = grad.getElementsByTagNameNS(NS.SVG, 'stop');\n const ostops = og.getElementsByTagNameNS(NS.SVG, 'stop');\n\n if (stops.length !== ostops.length) {\n continue;\n }\n\n let j = stops.length;\n while (j--) {\n const stop = stops[j];\n const ostop = ostops[j];\n\n if (stop.getAttribute('offset') !== ostop.getAttribute('offset') ||\n stop.getAttribute('stop-opacity') !== ostop.getAttribute('stop-opacity') ||\n stop.getAttribute('stop-color') !== ostop.getAttribute('stop-color')) {\n break;\n }\n }\n\n if (j === -1) {\n return og;\n }\n } // for each gradient in defs\n\n return null;\n};\n\n/**\n* Set a color/gradient to a fill/stroke.\n* @function module:svgcanvas.SvgCanvas#setPaint\n* @param {\"fill\"|\"stroke\"} type - String with \"fill\" or \"stroke\"\n* @param {module:jGraduate.jGraduatePaintOptions} paint - The jGraduate paint object to apply\n* @returns {void}\n*/\nthis.setPaint = function (type, paint) {\n // make a copy\n const p = new $.jGraduate.Paint(paint);\n this.setPaintOpacity(type, p.alpha / 100, true);\n\n // now set the current paint object\n curProperties[type + '_paint'] = p;\n switch (p.type) {\n case 'solidColor':\n this.setColor(type, p.solidColor !== 'none' ? '#' + p.solidColor : 'none');\n break;\n case 'linearGradient':\n case 'radialGradient':\n canvas[type + 'Grad'] = p[p.type];\n setGradient(type);\n break;\n }\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#setStrokePaint\n* @param {module:jGraduate~Paint} paint\n* @returns {void}\n*/\nthis.setStrokePaint = function (paint) {\n this.setPaint('stroke', paint);\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#setFillPaint\n* @param {module:jGraduate~Paint} paint\n* @returns {void}\n*/\nthis.setFillPaint = function (paint) {\n this.setPaint('fill', paint);\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#getStrokeWidth\n* @returns {Float|string} The current stroke-width value\n*/\nthis.getStrokeWidth = function () {\n return curProperties.stroke_width;\n};\n\n/**\n* Sets the stroke width for the current selected elements.\n* When attempting to set a line's width to 0, this changes it to 1 instead.\n* @function module:svgcanvas.SvgCanvas#setStrokeWidth\n* @param {Float} val - A Float indicating the new stroke width value\n* @fires module:svgcanvas.SvgCanvas#event:changed\n* @returns {void}\n*/\nthis.setStrokeWidth = function (val) {\n if (val === 0 && ['line', 'path'].includes(currentMode)) {\n canvas.setStrokeWidth(1);\n return;\n }\n curProperties.stroke_width = val;\n\n const elems = [];\n /**\n *\n * @param {Element} e\n * @returns {void}\n */\n function addNonG (e) {\n if (e.nodeName !== 'g') {\n elems.push(e);\n }\n }\n let i = selectedElements.length;\n while (i--) {\n const elem = selectedElements[i];\n if (elem) {\n if (elem.tagName === 'g') {\n walkTree(elem, addNonG);\n } else {\n elems.push(elem);\n }\n }\n }\n if (elems.length > 0) {\n changeSelectedAttribute('stroke-width', val, elems);\n call('changed', selectedElements);\n }\n};\n\n/**\n* Set the given stroke-related attribute the given value for selected elements.\n* @function module:svgcanvas.SvgCanvas#setStrokeAttr\n* @param {string} attr - String with the attribute name\n* @param {string|Float} val - String or number with the attribute value\n* @fires module:svgcanvas.SvgCanvas#event:changed\n* @returns {void}\n*/\nthis.setStrokeAttr = function (attr, val) {\n curShape[attr.replace('-', '_')] = val;\n const elems = [];\n\n let i = selectedElements.length;\n while (i--) {\n const elem = selectedElements[i];\n if (elem) {\n if (elem.tagName === 'g') {\n walkTree(elem, function (e) { if (e.nodeName !== 'g') { elems.push(e); } });\n } else {\n elems.push(elem);\n }\n }\n }\n if (elems.length > 0) {\n changeSelectedAttribute(attr, val, elems);\n call('changed', selectedElements);\n }\n};\n\n/**\n* @typedef {PlainObject} module:svgcanvas.StyleOptions\n* @property {string} fill\n* @property {Float} fill_opacity\n* @property {string} stroke\n* @property {Float} stroke_width\n* @property {string} stroke_dasharray\n* @property {string} stroke_linejoin\n* @property {string} stroke_linecap\n* @property {Float} stroke_opacity\n* @property {Float} opacity\n*/\n\n/**\n* @function module:svgcanvas.SvgCanvas#getStyle\n* @returns {module:svgcanvas.StyleOptions} current style options\n*/\nthis.getStyle = function () {\n return curShape;\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#getOpacity\n* @returns {Float} the current opacity\n*/\nthis.getOpacity = getOpacity;\n\n/**\n* Sets the given opacity on the current selected elements.\n* @function module:svgcanvas.SvgCanvas#setOpacity\n* @param {string} val\n* @returns {void}\n*/\nthis.setOpacity = function (val) {\n curShape.opacity = val;\n changeSelectedAttribute('opacity', val);\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#getFillOpacity\n* @returns {Float} the current fill opacity\n*/\nthis.getFillOpacity = function () {\n return curShape.fill_opacity;\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#getStrokeOpacity\n* @returns {string} the current stroke opacity\n*/\nthis.getStrokeOpacity = function () {\n return curShape.stroke_opacity;\n};\n\n/**\n* Sets the current fill/stroke opacity.\n* @function module:svgcanvas.SvgCanvas#setPaintOpacity\n* @param {string} type - String with \"fill\" or \"stroke\"\n* @param {Float} val - Float with the new opacity value\n* @param {boolean} preventUndo - Indicates whether or not this should be an undoable action\n* @returns {void}\n*/\nthis.setPaintOpacity = function (type, val, preventUndo) {\n curShape[type + '_opacity'] = val;\n if (!preventUndo) {\n changeSelectedAttribute(type + '-opacity', val);\n } else {\n changeSelectedAttributeNoUndo(type + '-opacity', val);\n }\n};\n\n/**\n* Gets the current fill/stroke opacity.\n* @function module:svgcanvas.SvgCanvas#getPaintOpacity\n* @param {\"fill\"|\"stroke\"} type - String with \"fill\" or \"stroke\"\n* @returns {Float} Fill/stroke opacity\n*/\nthis.getPaintOpacity = function (type) {\n return type === 'fill' ? this.getFillOpacity() : this.getStrokeOpacity();\n};\n\n/**\n* Gets the `stdDeviation` blur value of the given element.\n* @function module:svgcanvas.SvgCanvas#getBlur\n* @param {Element} elem - The element to check the blur value for\n* @returns {string} stdDeviation blur attribute value\n*/\nthis.getBlur = function (elem) {\n let val = 0;\n // const elem = selectedElements[0];\n\n if (elem) {\n const filterUrl = elem.getAttribute('filter');\n if (filterUrl) {\n const blur = getElem(elem.id + '_blur');\n if (blur) {\n val = blur.firstChild.getAttribute('stdDeviation');\n }\n }\n }\n return val;\n};\n\n(function () {\nlet curCommand = null;\nlet filter = null;\nlet filterHidden = false;\n\n/**\n* Sets the `stdDeviation` blur value on the selected element without being undoable.\n* @function module:svgcanvas.SvgCanvas#setBlurNoUndo\n* @param {Float} val - The new `stdDeviation` value\n* @returns {void}\n*/\ncanvas.setBlurNoUndo = function (val) {\n if (!filter) {\n canvas.setBlur(val);\n return;\n }\n if (val === 0) {\n // Don't change the StdDev, as that will hide the element.\n // Instead, just remove the value for \"filter\"\n changeSelectedAttributeNoUndo('filter', '');\n filterHidden = true;\n } else {\n const elem = selectedElements[0];\n if (filterHidden) {\n changeSelectedAttributeNoUndo('filter', 'url(#' + elem.id + '_blur)');\n }\n if (isWebkit()) {\n // console.log('e', elem); // eslint-disable-line no-console\n elem.removeAttribute('filter');\n elem.setAttribute('filter', 'url(#' + elem.id + '_blur)');\n }\n changeSelectedAttributeNoUndo('stdDeviation', val, [filter.firstChild]);\n canvas.setBlurOffsets(filter, val);\n }\n};\n\n/**\n *\n * @returns {void}\n */\nfunction finishChange () {\n const bCmd = canvas.undoMgr.finishUndoableChange();\n curCommand.addSubCommand(bCmd);\n addCommandToHistory(curCommand);\n curCommand = null;\n filter = null;\n}\n\n/**\n* Sets the `x`, `y`, `width`, `height` values of the filter element in order to\n* make the blur not be clipped. Removes them if not neeeded.\n* @function module:svgcanvas.SvgCanvas#setBlurOffsets\n* @param {Element} filterElem - The filter DOM element to update\n* @param {Float} stdDev - The standard deviation value on which to base the offset size\n* @returns {void}\n*/\ncanvas.setBlurOffsets = function (filterElem, stdDev) {\n if (stdDev > 3) {\n // TODO: Create algorithm here where size is based on expected blur\n assignAttributes(filterElem, {\n x: '-50%',\n y: '-50%',\n width: '200%',\n height: '200%'\n }, 100);\n // Removing these attributes hides text in Chrome (see Issue 579)\n } else if (!isWebkit()) {\n filterElem.removeAttribute('x');\n filterElem.removeAttribute('y');\n filterElem.removeAttribute('width');\n filterElem.removeAttribute('height');\n }\n};\n\n/**\n* Adds/updates the blur filter to the selected element.\n* @function module:svgcanvas.SvgCanvas#setBlur\n* @param {Float} val - Float with the new `stdDeviation` blur value\n* @param {boolean} complete - Whether or not the action should be completed (to add to the undo manager)\n* @returns {void}\n*/\ncanvas.setBlur = function (val, complete) {\n if (curCommand) {\n finishChange();\n return;\n }\n\n // Looks for associated blur, creates one if not found\n const elem = selectedElements[0];\n const elemId = elem.id;\n filter = getElem(elemId + '_blur');\n\n val -= 0;\n\n const batchCmd = new BatchCommand();\n\n // Blur found!\n if (filter) {\n if (val === 0) {\n filter = null;\n }\n } else {\n // Not found, so create\n const newblur = addSVGElementFromJson({element: 'feGaussianBlur',\n attr: {\n in: 'SourceGraphic',\n stdDeviation: val\n }\n });\n\n filter = addSVGElementFromJson({element: 'filter',\n attr: {\n id: elemId + '_blur'\n }\n });\n\n filter.append(newblur);\n findDefs().append(filter);\n\n batchCmd.addSubCommand(new InsertElementCommand(filter));\n }\n\n const changes = {filter: elem.getAttribute('filter')};\n\n if (val === 0) {\n elem.removeAttribute('filter');\n batchCmd.addSubCommand(new ChangeElementCommand(elem, changes));\n return;\n }\n\n changeSelectedAttribute('filter', 'url(#' + elemId + '_blur)');\n batchCmd.addSubCommand(new ChangeElementCommand(elem, changes));\n canvas.setBlurOffsets(filter, val);\n\n curCommand = batchCmd;\n canvas.undoMgr.beginUndoableChange('stdDeviation', [filter ? filter.firstChild : null]);\n if (complete) {\n canvas.setBlurNoUndo(val);\n finishChange();\n }\n};\n}());\n\n/**\n* Check whether selected element is bold or not.\n* @function module:svgcanvas.SvgCanvas#getBold\n* @returns {boolean} Indicates whether or not element is bold\n*/\nthis.getBold = function () {\n // should only have one element selected\n const selected = selectedElements[0];\n if (!isNullish(selected) && selected.tagName === 'text' &&\n isNullish(selectedElements[1])) {\n return (selected.getAttribute('font-weight') === 'bold');\n }\n return false;\n};\n\n/**\n* Make the selected element bold or normal.\n* @function module:svgcanvas.SvgCanvas#setBold\n* @param {boolean} b - Indicates bold (`true`) or normal (`false`)\n* @returns {void}\n*/\nthis.setBold = function (b) {\n const selected = selectedElements[0];\n if (!isNullish(selected) && selected.tagName === 'text' &&\n isNullish(selectedElements[1])) {\n changeSelectedAttribute('font-weight', b ? 'bold' : 'normal');\n }\n if (!selectedElements[0].textContent) {\n textActions.setCursor();\n }\n};\n\n/**\n* Check whether selected element is in italics or not.\n* @function module:svgcanvas.SvgCanvas#getItalic\n* @returns {boolean} Indicates whether or not element is italic\n*/\nthis.getItalic = function () {\n const selected = selectedElements[0];\n if (!isNullish(selected) && selected.tagName === 'text' &&\n isNullish(selectedElements[1])) {\n return (selected.getAttribute('font-style') === 'italic');\n }\n return false;\n};\n\n/**\n* Make the selected element italic or normal.\n* @function module:svgcanvas.SvgCanvas#setItalic\n* @param {boolean} i - Indicates italic (`true`) or normal (`false`)\n* @returns {void}\n*/\nthis.setItalic = function (i) {\n const selected = selectedElements[0];\n if (!isNullish(selected) && selected.tagName === 'text' &&\n isNullish(selectedElements[1])) {\n changeSelectedAttribute('font-style', i ? 'italic' : 'normal');\n }\n if (!selectedElements[0].textContent) {\n textActions.setCursor();\n }\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#getFontFamily\n* @returns {string} The current font family\n*/\nthis.getFontFamily = function () {\n return curText.font_family;\n};\n\n/**\n* Set the new font family.\n* @function module:svgcanvas.SvgCanvas#setFontFamily\n* @param {string} val - String with the new font family\n* @returns {void}\n*/\nthis.setFontFamily = function (val) {\n curText.font_family = val;\n changeSelectedAttribute('font-family', val);\n if (selectedElements[0] && !selectedElements[0].textContent) {\n textActions.setCursor();\n }\n};\n\n/**\n* Set the new font color.\n* @function module:svgcanvas.SvgCanvas#setFontColor\n* @param {string} val - String with the new font color\n* @returns {void}\n*/\nthis.setFontColor = function (val) {\n curText.fill = val;\n changeSelectedAttribute('fill', val);\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#getFontColor\n* @returns {string} The current font color\n*/\nthis.getFontColor = function () {\n return curText.fill;\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#getFontSize\n* @returns {Float} The current font size\n*/\nthis.getFontSize = function () {\n return curText.font_size;\n};\n\n/**\n* Applies the given font size to the selected element.\n* @function module:svgcanvas.SvgCanvas#setFontSize\n* @param {Float} val - Float with the new font size\n* @returns {void}\n*/\nthis.setFontSize = function (val) {\n curText.font_size = val;\n changeSelectedAttribute('font-size', val);\n if (!selectedElements[0].textContent) {\n textActions.setCursor();\n }\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#getText\n* @returns {string} The current text (`textContent`) of the selected element\n*/\nthis.getText = function () {\n const selected = selectedElements[0];\n if (isNullish(selected)) { return ''; }\n return selected.textContent;\n};\n\n/**\n* Updates the text element with the given string.\n* @function module:svgcanvas.SvgCanvas#setTextContent\n* @param {string} val - String with the new text\n* @returns {void}\n*/\nthis.setTextContent = function (val) {\n changeSelectedAttribute('#text', val);\n textActions.init(val);\n textActions.setCursor();\n};\n\n/**\n* Sets the new image URL for the selected image element. Updates its size if\n* a new URL is given.\n* @function module:svgcanvas.SvgCanvas#setImageURL\n* @param {string} val - String with the image URL/path\n* @fires module:svgcanvas.SvgCanvas#event:changed\n* @returns {void}\n*/\nthis.setImageURL = function (val) {\n const elem = selectedElements[0];\n if (!elem) { return; }\n\n const attrs = $(elem).attr(['width', 'height']);\n const setsize = (!attrs.width || !attrs.height);\n\n const curHref = getHref(elem);\n\n // Do nothing if no URL change or size change\n if (curHref === val && !setsize) {\n return;\n }\n\n const batchCmd = new BatchCommand('Change Image URL');\n\n setHref(elem, val);\n batchCmd.addSubCommand(new ChangeElementCommand(elem, {\n '#href': curHref\n }));\n\n $(new Image()).load(function () {\n const changes = $(elem).attr(['width', 'height']);\n\n $(elem).attr({\n width: this.width,\n height: this.height\n });\n\n selectorManager.requestSelector(elem).resize();\n\n batchCmd.addSubCommand(new ChangeElementCommand(elem, changes));\n addCommandToHistory(batchCmd);\n call('changed', [elem]);\n }).attr('src', val);\n};\n\n/**\n* Sets the new link URL for the selected anchor element.\n* @function module:svgcanvas.SvgCanvas#setLinkURL\n* @param {string} val - String with the link URL/path\n* @returns {void}\n*/\nthis.setLinkURL = function (val) {\n let elem = selectedElements[0];\n if (!elem) { return; }\n if (elem.tagName !== 'a') {\n // See if parent is an anchor\n const parentsA = $(elem).parents('a');\n if (parentsA.length) {\n elem = parentsA[0];\n } else {\n return;\n }\n }\n\n const curHref = getHref(elem);\n\n if (curHref === val) { return; }\n\n const batchCmd = new BatchCommand('Change Link URL');\n\n setHref(elem, val);\n batchCmd.addSubCommand(new ChangeElementCommand(elem, {\n '#href': curHref\n }));\n\n addCommandToHistory(batchCmd);\n};\n\n/**\n* Sets the `rx` and `ry` values to the selected `rect` element\n* to change its corner radius.\n* @function module:svgcanvas.SvgCanvas#setRectRadius\n* @param {string|Float} val - The new radius\n* @fires module:svgcanvas.SvgCanvas#event:changed\n* @returns {void}\n*/\nthis.setRectRadius = function (val) {\n const selected = selectedElements[0];\n if (!isNullish(selected) && selected.tagName === 'rect') {\n const r = selected.getAttribute('rx');\n if (r !== String(val)) {\n selected.setAttribute('rx', val);\n selected.setAttribute('ry', val);\n addCommandToHistory(new ChangeElementCommand(selected, {rx: r, ry: r}, 'Radius'));\n call('changed', [selected]);\n }\n }\n};\n\n/**\n* Wraps the selected element(s) in an anchor element or converts group to one.\n* @function module:svgcanvas.SvgCanvas#makeHyperlink\n* @param {string} url\n* @returns {void}\n*/\nthis.makeHyperlink = function (url) {\n canvas.groupSelectedElements('a', url);\n\n // TODO: If element is a single \"g\", convert to \"a\"\n // if (selectedElements.length > 1 && selectedElements[1]) {\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#removeHyperlink\n* @returns {void}\n*/\nthis.removeHyperlink = function () {\n canvas.ungroupSelectedElement();\n};\n\n/**\n* Group: Element manipulation\n*/\n\n/**\n* Sets the new segment type to the selected segment(s).\n* @function module:svgcanvas.SvgCanvas#setSegType\n* @param {Integer} newType - New segment type. See {@link https://www.w3.org/TR/SVG/paths.html#InterfaceSVGPathSeg} for list\n* @returns {void}\n*/\nthis.setSegType = function (newType) {\n pathActions.setSegType(newType);\n};\n\n/**\n* Convert selected element to a path, or get the BBox of an element-as-path.\n* @function module:svgcanvas.SvgCanvas#convertToPath\n* @todo (codedread): Remove the getBBox argument and split this function into two.\n* @param {Element} elem - The DOM element to be converted\n* @param {boolean} getBBox - Boolean on whether or not to only return the path's BBox\n* @returns {void|DOMRect|false|SVGPathElement|null} If the getBBox flag is true, the resulting path's bounding box object.\n* Otherwise the resulting path element is returned.\n*/\nthis.convertToPath = function (elem, getBBox) {\n if (isNullish(elem)) {\n const elems = selectedElements;\n $.each(elems, function (i, el) {\n if (el) { canvas.convertToPath(el); }\n });\n return undefined;\n }\n if (getBBox) {\n return getBBoxOfElementAsPath(elem, addSVGElementFromJson, pathActions);\n }\n // TODO: Why is this applying attributes from curShape, then inside utilities.convertToPath it's pulling addition attributes from elem?\n // TODO: If convertToPath is called with one elem, curShape and elem are probably the same; but calling with multiple is a bug or cool feature.\n const attrs = {\n fill: curShape.fill,\n 'fill-opacity': curShape.fill_opacity,\n stroke: curShape.stroke,\n 'stroke-width': curShape.stroke_width,\n 'stroke-dasharray': curShape.stroke_dasharray,\n 'stroke-linejoin': curShape.stroke_linejoin,\n 'stroke-linecap': curShape.stroke_linecap,\n 'stroke-opacity': curShape.stroke_opacity,\n opacity: curShape.opacity,\n visibility: 'hidden'\n };\n return convertToPath(elem, attrs, addSVGElementFromJson, pathActions, clearSelection, addToSelection, hstry, addCommandToHistory);\n};\n\n/**\n* This function makes the changes to the elements. It does not add the change\n* to the history stack.\n* @param {string} attr - Attribute name\n* @param {string|Float} newValue - String or number with the new attribute value\n* @param {Element[]} elems - The DOM elements to apply the change to\n* @returns {void}\n*/\nconst changeSelectedAttributeNoUndo = function (attr, newValue, elems) {\n if (currentMode === 'pathedit') {\n // Editing node\n pathActions.moveNode(attr, newValue);\n }\n elems = elems || selectedElements;\n let i = elems.length;\n const noXYElems = ['g', 'polyline', 'path'];\n // const goodGAttrs = ['transform', 'opacity', 'filter'];\n\n while (i--) {\n let elem = elems[i];\n if (isNullish(elem)) { continue; }\n\n // Set x,y vals on elements that don't have them\n if ((attr === 'x' || attr === 'y') && noXYElems.includes(elem.tagName)) {\n const bbox = getStrokedBBoxDefaultVisible([elem]);\n const diffX = attr === 'x' ? newValue - bbox.x : 0;\n const diffY = attr === 'y' ? newValue - bbox.y : 0;\n canvas.moveSelectedElements(diffX * currentZoom, diffY * currentZoom, true);\n continue;\n }\n\n // only allow the transform/opacity/filter attribute to change on elements, slightly hacky\n // TODO: Missing statement body\n // if (elem.tagName === 'g' && goodGAttrs.includes(attr)) {}\n let oldval = attr === '#text' ? elem.textContent : elem.getAttribute(attr);\n if (isNullish(oldval)) { oldval = ''; }\n if (oldval !== String(newValue)) {\n if (attr === '#text') {\n // const oldW = utilsGetBBox(elem).width;\n elem.textContent = newValue;\n\n // FF bug occurs on on rotated elements\n if ((/rotate/).test(elem.getAttribute('transform'))) {\n elem = ffClone(elem);\n }\n // Hoped to solve the issue of moving text with text-anchor=\"start\",\n // but this doesn't actually fix it. Hopefully on the right track, though. -Fyrd\n // const box = getBBox(elem), left = box.x, top = box.y, {width, height} = box,\n // dx = width - oldW, dy = 0;\n // const angle = getRotationAngle(elem, true);\n // if (angle) {\n // const r = Math.sqrt(dx * dx + dy * dy);\n // const theta = Math.atan2(dy, dx) - angle;\n // dx = r * Math.cos(theta);\n // dy = r * Math.sin(theta);\n //\n // elem.setAttribute('x', elem.getAttribute('x') - dx);\n // elem.setAttribute('y', elem.getAttribute('y') - dy);\n // }\n } else if (attr === '#href') {\n setHref(elem, newValue);\n } else { elem.setAttribute(attr, newValue); }\n\n // Go into \"select\" mode for text changes\n // NOTE: Important that this happens AFTER elem.setAttribute() or else attributes like\n // font-size can get reset to their old value, ultimately by svgEditor.updateContextPanel(),\n // after calling textActions.toSelectMode() below\n if (currentMode === 'textedit' && attr !== '#text' && elem.textContent.length) {\n textActions.toSelectMode(elem);\n }\n\n // if (i === 0) {\n // selectedBBoxes[0] = utilsGetBBox(elem);\n // }\n\n // Use the Firefox ffClone hack for text elements with gradients or\n // where other text attributes are changed.\n if (isGecko() && elem.nodeName === 'text' && (/rotate/).test(elem.getAttribute('transform'))) {\n if (String(newValue).startsWith('url') || (['font-size', 'font-family', 'x', 'y'].includes(attr) && elem.textContent)) {\n elem = ffClone(elem);\n }\n }\n // Timeout needed for Opera & Firefox\n // codedread: it is now possible for this function to be called with elements\n // that are not in the selectedElements array, we need to only request a\n // selector if the element is in that array\n if (selectedElements.includes(elem)) {\n setTimeout(function () {\n // Due to element replacement, this element may no longer\n // be part of the DOM\n if (!elem.parentNode) { return; }\n selectorManager.requestSelector(elem).resize();\n }, 0);\n }\n // if this element was rotated, and we changed the position of this element\n // we need to update the rotational transform attribute\n const angle = getRotationAngle(elem);\n if (angle !== 0 && attr !== 'transform') {\n const tlist = getTransformList(elem);\n let n = tlist.numberOfItems;\n while (n--) {\n const xform = tlist.getItem(n);\n if (xform.type === 4) {\n // remove old rotate\n tlist.removeItem(n);\n\n const box = utilsGetBBox(elem);\n const center = transformPoint(box.x + box.width / 2, box.y + box.height / 2, transformListToTransform(tlist).matrix);\n const cx = center.x,\n cy = center.y;\n const newrot = svgroot.createSVGTransform();\n newrot.setRotate(angle, cx, cy);\n tlist.insertItemBefore(newrot, n);\n break;\n }\n }\n }\n } // if oldValue != newValue\n } // for each elem\n};\n\n/**\n* Change the given/selected element and add the original value to the history stack.\n* If you want to change all `selectedElements`, ignore the `elems` argument.\n* If you want to change only a subset of `selectedElements`, then send the\n* subset to this function in the `elems` argument.\n* @function module:svgcanvas.SvgCanvas#changeSelectedAttribute\n* @param {string} attr - String with the attribute name\n* @param {string|Float} val - String or number with the new attribute value\n* @param {Element[]} elems - The DOM elements to apply the change to\n* @returns {void}\n*/\nconst changeSelectedAttribute = this.changeSelectedAttribute = function (attr, val, elems) {\n elems = elems || selectedElements;\n canvas.undoMgr.beginUndoableChange(attr, elems);\n // const i = elems.length;\n\n changeSelectedAttributeNoUndo(attr, val, elems);\n\n const batchCmd = canvas.undoMgr.finishUndoableChange();\n if (!batchCmd.isEmpty()) {\n addCommandToHistory(batchCmd);\n }\n};\n\n/**\n* Removes all selected elements from the DOM and adds the change to the\n* history stack.\n* @function module:svgcanvas.SvgCanvas#deleteSelectedElements\n* @fires module:svgcanvas.SvgCanvas#event:changed\n* @returns {void}\n*/\nthis.deleteSelectedElements = function () {\n const batchCmd = new BatchCommand('Delete Elements');\n const len = selectedElements.length;\n const selectedCopy = []; // selectedElements is being deleted\n\n for (let i = 0; i < len; ++i) {\n const selected = selectedElements[i];\n if (isNullish(selected)) { break; }\n\n let parent = selected.parentNode;\n let t = selected;\n\n // this will unselect the element and remove the selectedOutline\n selectorManager.releaseSelector(t);\n\n // Remove the path if present.\n pathModule.removePath_(t.id);\n\n // Get the parent if it's a single-child anchor\n if (parent.tagName === 'a' && parent.childNodes.length === 1) {\n t = parent;\n parent = parent.parentNode;\n }\n\n const {nextSibling} = t;\n const elem = parent.removeChild(t);\n selectedCopy.push(selected); // for the copy\n batchCmd.addSubCommand(new RemoveElementCommand(elem, nextSibling, parent));\n }\n selectedElements = [];\n\n if (!batchCmd.isEmpty()) { addCommandToHistory(batchCmd); }\n call('changed', selectedCopy);\n clearSelection();\n};\n\n/**\n* Removes all selected elements from the DOM and adds the change to the\n* history stack. Remembers removed elements on the clipboard.\n* @function module:svgcanvas.SvgCanvas#cutSelectedElements\n* @returns {void}\n*/\nthis.cutSelectedElements = function () {\n canvas.copySelectedElements();\n canvas.deleteSelectedElements();\n};\n\n/**\n* Remembers the current selected elements on the clipboard.\n* @function module:svgcanvas.SvgCanvas#copySelectedElements\n* @returns {void}\n*/\nthis.copySelectedElements = function () {\n localStorage.setItem('svgedit_clipboard', JSON.stringify(\n selectedElements.map(function (x) { return getJsonFromSvgElement(x); })\n ));\n\n $('#cmenu_canvas').enableContextMenuItems('#paste,#paste_in_place');\n};\n\n/**\n* @function module:svgcanvas.SvgCanvas#pasteElements\n* @param {\"in_place\"|\"point\"|void} type\n* @param {Integer|void} x Expected if type is \"point\"\n* @param {Integer|void} y Expected if type is \"point\"\n* @fires module:svgcanvas.SvgCanvas#event:changed\n* @fires module:svgcanvas.SvgCanvas#event:ext_IDsUpdated\n* @returns {void}\n*/\nthis.pasteElements = function (type, x, y) {\n let clipb = JSON.parse(localStorage.getItem('svgedit_clipboard'));\n let len = clipb.length;\n if (!len) { return; }\n\n const pasted = [];\n const batchCmd = new BatchCommand('Paste elements');\n // const drawing = getCurrentDrawing();\n /**\n * @typedef {PlainObject} module:svgcanvas.ChangedIDs\n */\n /**\n * @type {module:svgcanvas.ChangedIDs}\n */\n const changedIDs = {};\n\n // Recursively replace IDs and record the changes\n /**\n *\n * @param {module:svgcanvas.SVGAsJSON} elem\n * @returns {void}\n */\n function checkIDs (elem) {\n if (elem.attr && elem.attr.id) {\n changedIDs[elem.attr.id] = getNextId();\n elem.attr.id = changedIDs[elem.attr.id];\n }\n if (elem.children) elem.children.forEach(checkIDs);\n }\n clipb.forEach(checkIDs);\n\n // Give extensions like the connector extension a chance to reflect new IDs and remove invalid elements\n /**\n * Triggered when `pasteElements` is called from a paste action (context menu or key)\n * @event module:svgcanvas.SvgCanvas#event:ext_IDsUpdated\n * @type {PlainObject}\n * @property {module:svgcanvas.SVGAsJSON[]} elems\n * @property {module:svgcanvas.ChangedIDs} changes Maps past ID (on attribute) to current ID\n */\n runExtensions(\n 'IDsUpdated',\n /** @type {module:svgcanvas.SvgCanvas#event:ext_IDsUpdated} */\n {elems: clipb, changes: changedIDs},\n true\n ).forEach(function (extChanges) {\n if (!extChanges || !('remove' in extChanges)) return;\n\n extChanges.remove.forEach(function (removeID) {\n clipb = clipb.filter(function (clipBoardItem) {\n return clipBoardItem.attr.id !== removeID;\n });\n });\n });\n\n // Move elements to lastClickPoint\n while (len--) {\n const elem = clipb[len];\n if (!elem) { continue; }\n\n const copy = addSVGElementFromJson(elem);\n pasted.push(copy);\n batchCmd.addSubCommand(new InsertElementCommand(copy));\n\n restoreRefElems(copy);\n }\n\n selectOnly(pasted);\n\n if (type !== 'in_place') {\n let ctrX, ctrY;\n\n if (!type) {\n ctrX = lastClickPoint.x;\n ctrY = lastClickPoint.y;\n } else if (type === 'point') {\n ctrX = x;\n ctrY = y;\n }\n\n const bbox = getStrokedBBoxDefaultVisible(pasted);\n const cx = ctrX - (bbox.x + bbox.width / 2),\n cy = ctrY - (bbox.y + bbox.height / 2),\n dx = [],\n dy = [];\n\n $.each(pasted, function (i, item) {\n dx.push(cx);\n dy.push(cy);\n });\n\n const cmd = canvas.moveSelectedElements(dx, dy, false);\n if (cmd) batchCmd.addSubCommand(cmd);\n }\n\n addCommandToHistory(batchCmd);\n call('changed', pasted);\n};\n\n/**\n* Wraps all the selected elements in a group (`g`) element.\n* @function module:svgcanvas.SvgCanvas#groupSelectedElements\n* @param {\"a\"|\"g\"} [type=\"g\"] - type of element to group into, defaults to ``\n* @param {string} [urlArg]\n* @returns {void}\n*/\nthis.groupSelectedElements = function (type, urlArg) {\n if (!type) { type = 'g'; }\n let cmdStr = '';\n let url;\n\n switch (type) {\n case 'a': {\n cmdStr = 'Make hyperlink';\n url = urlArg || '';\n break;\n } default: {\n type = 'g';\n cmdStr = 'Group Elements';\n break;\n }\n }\n\n const batchCmd = new BatchCommand(cmdStr);\n\n // create and insert the group element\n const g = addSVGElementFromJson({\n element: type,\n attr: {\n id: getNextId()\n }\n });\n if (type === 'a') {\n setHref(g, url);\n }\n batchCmd.addSubCommand(new InsertElementCommand(g));\n\n // now move all children into the group\n let i = selectedElements.length;\n while (i--) {\n let elem = selectedElements[i];\n if (isNullish(elem)) { continue; }\n\n if (elem.parentNode.tagName === 'a' && elem.parentNode.childNodes.length === 1) {\n elem = elem.parentNode;\n }\n\n const oldNextSibling = elem.nextSibling;\n const oldParent = elem.parentNode;\n g.append(elem);\n batchCmd.addSubCommand(new MoveElementCommand(elem, oldNextSibling, oldParent));\n }\n if (!batchCmd.isEmpty()) { addCommandToHistory(batchCmd); }\n\n // update selection\n selectOnly([g], true);\n};\n\n/**\n* Pushes all appropriate parent group properties down to its children, then\n* removes them from the group.\n* @function module:svgcanvas.SvgCanvas#pushGroupProperties\n* @param {SVGAElement|SVGGElement} g\n* @param {boolean} undoable\n* @returns {BatchCommand|void}\n*/\nconst pushGroupProperties = this.pushGroupProperties = function (g, undoable) {\n const children = g.childNodes;\n const len = children.length;\n const xform = g.getAttribute('transform');\n\n const glist = getTransformList(g);\n const m = transformListToTransform(glist).matrix;\n\n const batchCmd = new BatchCommand('Push group properties');\n\n // TODO: get all fill/stroke properties from the group that we are about to destroy\n // \"fill\", \"fill-opacity\", \"fill-rule\", \"stroke\", \"stroke-dasharray\", \"stroke-dashoffset\",\n // \"stroke-linecap\", \"stroke-linejoin\", \"stroke-miterlimit\", \"stroke-opacity\",\n // \"stroke-width\"\n // and then for each child, if they do not have the attribute (or the value is 'inherit')\n // then set the child's attribute\n\n const gangle = getRotationAngle(g);\n\n const gattrs = $(g).attr(['filter', 'opacity']);\n let gfilter, gblur, changes;\n const drawing = getCurrentDrawing();\n\n for (let i = 0; i < len; i++) {\n const elem = children[i];\n\n if (elem.nodeType !== 1) { continue; }\n\n if (gattrs.opacity !== null && gattrs.opacity !== 1) {\n // const c_opac = elem.getAttribute('opacity') || 1;\n const newOpac = Math.round((elem.getAttribute('opacity') || 1) * gattrs.opacity * 100) / 100;\n changeSelectedAttribute('opacity', newOpac, [elem]);\n }\n\n if (gattrs.filter) {\n let cblur = this.getBlur(elem);\n const origCblur = cblur;\n if (!gblur) { gblur = this.getBlur(g); }\n if (cblur) {\n // Is this formula correct?\n cblur = Number(gblur) + Number(cblur);\n } else if (cblur === 0) {\n cblur = gblur;\n }\n\n // If child has no current filter, get group's filter or clone it.\n if (!origCblur) {\n // Set group's filter to use first child's ID\n if (!gfilter) {\n gfilter = getRefElem(gattrs.filter);\n } else {\n // Clone the group's filter\n gfilter = drawing.copyElem(gfilter);\n findDefs().append(gfilter);\n }\n } else {\n gfilter = getRefElem(elem.getAttribute('filter'));\n }\n\n // Change this in future for different filters\n const suffix = (gfilter.firstChild.tagName === 'feGaussianBlur') ? 'blur' : 'filter';\n gfilter.id = elem.id + '_' + suffix;\n changeSelectedAttribute('filter', 'url(#' + gfilter.id + ')', [elem]);\n\n // Update blur value\n if (cblur) {\n changeSelectedAttribute('stdDeviation', cblur, [gfilter.firstChild]);\n canvas.setBlurOffsets(gfilter, cblur);\n }\n }\n\n let chtlist = getTransformList(elem);\n\n // Don't process gradient transforms\n if (elem.tagName.includes('Gradient')) { chtlist = null; }\n\n // Hopefully not a problem to add this. Necessary for elements like \n if (!chtlist) { continue; }\n\n // Apparently can get get a transformlist, but we don't want it to have one!\n if (elem.tagName === 'defs') { continue; }\n\n if (glist.numberOfItems) {\n // TODO: if the group's transform is just a rotate, we can always transfer the\n // rotate() down to the children (collapsing consecutive rotates and factoring\n // out any translates)\n if (gangle && glist.numberOfItems === 1) {\n // [Rg] [Rc] [Mc]\n // we want [Tr] [Rc2] [Mc] where:\n // - [Rc2] is at the child's current center but has the\n // sum of the group and child's rotation angles\n // - [Tr] is the equivalent translation that this child\n // undergoes if the group wasn't there\n\n // [Tr] = [Rg] [Rc] [Rc2_inv]\n\n // get group's rotation matrix (Rg)\n const rgm = glist.getItem(0).matrix;\n\n // get child's rotation matrix (Rc)\n let rcm = svgroot.createSVGMatrix();\n const cangle = getRotationAngle(elem);\n if (cangle) {\n rcm = chtlist.getItem(0).matrix;\n }\n\n // get child's old center of rotation\n const cbox = utilsGetBBox(elem);\n const ceqm = transformListToTransform(chtlist).matrix;\n const coldc = transformPoint(cbox.x + cbox.width / 2, cbox.y + cbox.height / 2, ceqm);\n\n // sum group and child's angles\n const sangle = gangle + cangle;\n\n // get child's rotation at the old center (Rc2_inv)\n const r2 = svgroot.createSVGTransform();\n r2.setRotate(sangle, coldc.x, coldc.y);\n\n // calculate equivalent translate\n const trm = matrixMultiply(rgm, rcm, r2.matrix.inverse());\n\n // set up tlist\n if (cangle) {\n chtlist.removeItem(0);\n }\n\n if (sangle) {\n if (chtlist.numberOfItems) {\n chtlist.insertItemBefore(r2, 0);\n } else {\n chtlist.appendItem(r2);\n }\n }\n\n if (trm.e || trm.f) {\n const tr = svgroot.createSVGTransform();\n tr.setTranslate(trm.e, trm.f);\n if (chtlist.numberOfItems) {\n chtlist.insertItemBefore(tr, 0);\n } else {\n chtlist.appendItem(tr);\n }\n }\n } else { // more complicated than just a rotate\n // transfer the group's transform down to each child and then\n // call recalculateDimensions()\n const oldxform = elem.getAttribute('transform');\n changes = {};\n changes.transform = oldxform || '';\n\n const newxform = svgroot.createSVGTransform();\n\n // [ gm ] [ chm ] = [ chm ] [ gm' ]\n // [ gm' ] = [ chmInv ] [ gm ] [ chm ]\n const chm = transformListToTransform(chtlist).matrix,\n chmInv = chm.inverse();\n const gm = matrixMultiply(chmInv, m, chm);\n newxform.setMatrix(gm);\n chtlist.appendItem(newxform);\n }\n const cmd = recalculateDimensions(elem);\n if (cmd) { batchCmd.addSubCommand(cmd); }\n }\n }\n\n // remove transform and make it undo-able\n if (xform) {\n changes = {};\n changes.transform = xform;\n g.setAttribute('transform', '');\n g.removeAttribute('transform');\n batchCmd.addSubCommand(new ChangeElementCommand(g, changes));\n }\n\n if (undoable && !batchCmd.isEmpty()) {\n return batchCmd;\n }\n return undefined;\n};\n\n/**\n* Unwraps all the elements in a selected group (`g`) element. This requires\n* significant recalculations to apply group's transforms, etc. to its children.\n* @function module:svgcanvas.SvgCanvas#ungroupSelectedElement\n* @returns {void}\n*/\nthis.ungroupSelectedElement = function () {\n let g = selectedElements[0];\n if (!g) {\n return;\n }\n if ($(g).data('gsvg') || $(g).data('symbol')) {\n // Is svg, so actually convert to group\n convertToGroup(g);\n return;\n }\n if (g.tagName === 'use') {\n // Somehow doesn't have data set, so retrieve\n const symbol = getElem(getHref(g).substr(1));\n $(g).data('symbol', symbol).data('ref', symbol);\n convertToGroup(g);\n return;\n }\n const parentsA = $(g).parents('a');\n if (parentsA.length) {\n g = parentsA[0];\n }\n\n // Look for parent \"a\"\n if (g.tagName === 'g' || g.tagName === 'a') {\n const batchCmd = new BatchCommand('Ungroup Elements');\n const cmd = pushGroupProperties(g, true);\n if (cmd) { batchCmd.addSubCommand(cmd); }\n\n const parent = g.parentNode;\n const anchor = g.nextSibling;\n const children = new Array(g.childNodes.length);\n\n let i = 0;\n while (g.firstChild) {\n let elem = g.firstChild;\n const oldNextSibling = elem.nextSibling;\n const oldParent = elem.parentNode;\n\n // Remove child title elements\n if (elem.tagName === 'title') {\n const {nextSibling} = elem;\n batchCmd.addSubCommand(new RemoveElementCommand(elem, nextSibling, oldParent));\n elem.remove();\n continue;\n }\n\n children[i++] = elem = parent.insertBefore(elem, anchor);\n batchCmd.addSubCommand(new MoveElementCommand(elem, oldNextSibling, oldParent));\n }\n\n // remove the group from the selection\n clearSelection();\n\n // delete the group element (but make undo-able)\n const gNextSibling = g.nextSibling;\n g = parent.removeChild(g);\n batchCmd.addSubCommand(new RemoveElementCommand(g, gNextSibling, parent));\n\n if (!batchCmd.isEmpty()) { addCommandToHistory(batchCmd); }\n\n // update selection\n addToSelection(children);\n }\n};\n\n/**\n* Repositions the selected element to the bottom in the DOM to appear on top of\n* other elements.\n* @function module:svgcanvas.SvgCanvas#moveToTopSelectedElement\n* @fires module:svgcanvas.SvgCanvas#event:changed\n* @returns {void}\n*/\nthis.moveToTopSelectedElement = function () {\n const [selected] = selectedElements;\n if (!isNullish(selected)) {\n let t = selected;\n const oldParent = t.parentNode;\n const oldNextSibling = t.nextSibling;\n t = t.parentNode.appendChild(t);\n // If the element actually moved position, add the command and fire the changed\n // event handler.\n if (oldNextSibling !== t.nextSibling) {\n addCommandToHistory(new MoveElementCommand(t, oldNextSibling, oldParent, 'top'));\n call('changed', [t]);\n }\n }\n};\n\n/**\n* Repositions the selected element to the top in the DOM to appear under\n* other elements.\n* @function module:svgcanvas.SvgCanvas#moveToBottomSelectedElement\n* @fires module:svgcanvas.SvgCanvas#event:changed\n* @returns {void}\n*/\nthis.moveToBottomSelectedElement = function () {\n const [selected] = selectedElements;\n if (!isNullish(selected)) {\n let t = selected;\n const oldParent = t.parentNode;\n const oldNextSibling = t.nextSibling;\n let {firstChild} = t.parentNode;\n if (firstChild.tagName === 'title') {\n firstChild = firstChild.nextSibling;\n }\n // This can probably be removed, as the defs should not ever apppear\n // inside a layer group\n if (firstChild.tagName === 'defs') {\n firstChild = firstChild.nextSibling;\n }\n t = t.parentNode.insertBefore(t, firstChild);\n // If the element actually moved position, add the command and fire the changed\n // event handler.\n if (oldNextSibling !== t.nextSibling) {\n addCommandToHistory(new MoveElementCommand(t, oldNextSibling, oldParent, 'bottom'));\n call('changed', [t]);\n }\n }\n};\n\n/**\n* Moves the select element up or down the stack, based on the visibly\n* intersecting elements.\n* @function module:svgcanvas.SvgCanvas#moveUpDownSelected\n* @param {\"Up\"|\"Down\"} dir - String that's either 'Up' or 'Down'\n* @fires module:svgcanvas.SvgCanvas#event:changed\n* @returns {void}\n*/\nthis.moveUpDownSelected = function (dir) {\n const selected = selectedElements[0];\n if (!selected) { return; }\n\n curBBoxes = [];\n let closest, foundCur;\n // jQuery sorts this list\n const list = $(getIntersectionList(getStrokedBBoxDefaultVisible([selected]))).toArray();\n if (dir === 'Down') { list.reverse(); }\n\n $.each(list, function () {\n if (!foundCur) {\n if (this === selected) {\n foundCur = true;\n }\n return true;\n }\n closest = this; // eslint-disable-line consistent-this\n return false;\n });\n if (!closest) { return; }\n\n const t = selected;\n const oldParent = t.parentNode;\n const oldNextSibling = t.nextSibling;\n $(closest)[dir === 'Down' ? 'before' : 'after'](t);\n // If the element actually moved position, add the command and fire the changed\n // event handler.\n if (oldNextSibling !== t.nextSibling) {\n addCommandToHistory(new MoveElementCommand(t, oldNextSibling, oldParent, 'Move ' + dir));\n call('changed', [t]);\n }\n};\n\n/**\n* Moves selected elements on the X/Y axis.\n* @function module:svgcanvas.SvgCanvas#moveSelectedElements\n* @param {Float} dx - Float with the distance to move on the x-axis\n* @param {Float} dy - Float with the distance to move on the y-axis\n* @param {boolean} undoable - Boolean indicating whether or not the action should be undoable\n* @fires module:svgcanvas.SvgCanvas#event:changed\n* @returns {BatchCommand|void} Batch command for the move\n*/\nthis.moveSelectedElements = function (dx, dy, undoable) {\n // if undoable is not sent, default to true\n // if single values, scale them to the zoom\n if (dx.constructor !== Array) {\n dx /= currentZoom;\n dy /= currentZoom;\n }\n undoable = undoable || true;\n const batchCmd = new BatchCommand('position');\n let i = selectedElements.length;\n while (i--) {\n const selected = selectedElements[i];\n if (!isNullish(selected)) {\n // if (i === 0) {\n // selectedBBoxes[0] = utilsGetBBox(selected);\n // }\n // const b = {};\n // for (const j in selectedBBoxes[i]) b[j] = selectedBBoxes[i][j];\n // selectedBBoxes[i] = b;\n\n const xform = svgroot.createSVGTransform();\n const tlist = getTransformList(selected);\n\n // dx and dy could be arrays\n if (dx.constructor === Array) {\n // if (i === 0) {\n // selectedBBoxes[0].x += dx[0];\n // selectedBBoxes[0].y += dy[0];\n // }\n xform.setTranslate(dx[i], dy[i]);\n } else {\n // if (i === 0) {\n // selectedBBoxes[0].x += dx;\n // selectedBBoxes[0].y += dy;\n // }\n xform.setTranslate(dx, dy);\n }\n\n if (tlist.numberOfItems) {\n tlist.insertItemBefore(xform, 0);\n } else {\n tlist.appendItem(xform);\n }\n\n const cmd = recalculateDimensions(selected);\n if (cmd) {\n batchCmd.addSubCommand(cmd);\n }\n\n selectorManager.requestSelector(selected).resize();\n }\n }\n if (!batchCmd.isEmpty()) {\n if (undoable) {\n addCommandToHistory(batchCmd);\n }\n call('changed', selectedElements);\n return batchCmd;\n }\n return undefined;\n};\n\n/**\n* Create deep DOM copies (clones) of all selected elements and move them slightly\n* from their originals.\n* @function module:svgcanvas.SvgCanvas#cloneSelectedElements\n* @param {Float} x Float with the distance to move on the x-axis\n* @param {Float} y Float with the distance to move on the y-axis\n* @returns {void}\n*/\nthis.cloneSelectedElements = function (x, y) {\n let i, elem;\n const batchCmd = new BatchCommand('Clone Elements');\n // find all the elements selected (stop at first null)\n const len = selectedElements.length;\n /**\n * Sorts an array numerically and ascending.\n * @param {Element} a\n * @param {Element} b\n * @returns {Integer}\n */\n function sortfunction (a, b) {\n return ($(b).index() - $(a).index());\n }\n selectedElements.sort(sortfunction);\n for (i = 0; i < len; ++i) {\n elem = selectedElements[i];\n if (isNullish(elem)) { break; }\n }\n // use slice to quickly get the subset of elements we need\n const copiedElements = selectedElements.slice(0, i);\n this.clearSelection(true);\n // note that we loop in the reverse way because of the way elements are added\n // to the selectedElements array (top-first)\n const drawing = getCurrentDrawing();\n i = copiedElements.length;\n while (i--) {\n // clone each element and replace it within copiedElements\n elem = copiedElements[i] = drawing.copyElem(copiedElements[i]);\n (currentGroup || drawing.getCurrentLayer()).append(elem);\n batchCmd.addSubCommand(new InsertElementCommand(elem));\n }\n\n if (!batchCmd.isEmpty()) {\n addToSelection(copiedElements.reverse()); // Need to reverse for correct selection-adding\n this.moveSelectedElements(x, y, false);\n addCommandToHistory(batchCmd);\n }\n};\n\n/**\n* Aligns selected elements.\n* @function module:svgcanvas.SvgCanvas#alignSelectedElements\n* @param {string} type - String with single character indicating the alignment type\n* @param {\"selected\"|\"largest\"|\"smallest\"|\"page\"} relativeTo\n* @returns {void}\n*/\nthis.alignSelectedElements = function (type, relativeTo) {\n const bboxes = []; // angles = [];\n const len = selectedElements.length;\n if (!len) { return; }\n let minx = Number.MAX_VALUE, maxx = Number.MIN_VALUE,\n miny = Number.MAX_VALUE, maxy = Number.MIN_VALUE;\n let curwidth = Number.MIN_VALUE, curheight = Number.MIN_VALUE;\n for (let i = 0; i < len; ++i) {\n if (isNullish(selectedElements[i])) { break; }\n const elem = selectedElements[i];\n bboxes[i] = getStrokedBBoxDefaultVisible([elem]);\n\n // now bbox is axis-aligned and handles rotation\n switch (relativeTo) {\n case 'smallest':\n if (((type === 'l' || type === 'c' || type === 'r') &&\n (curwidth === Number.MIN_VALUE || curwidth > bboxes[i].width)) ||\n ((type === 't' || type === 'm' || type === 'b') &&\n (curheight === Number.MIN_VALUE || curheight > bboxes[i].height))\n ) {\n minx = bboxes[i].x;\n miny = bboxes[i].y;\n maxx = bboxes[i].x + bboxes[i].width;\n maxy = bboxes[i].y + bboxes[i].height;\n curwidth = bboxes[i].width;\n curheight = bboxes[i].height;\n }\n break;\n case 'largest':\n if (((type === 'l' || type === 'c' || type === 'r') &&\n (curwidth === Number.MIN_VALUE || curwidth < bboxes[i].width)) ||\n ((type === 't' || type === 'm' || type === 'b') &&\n (curheight === Number.MIN_VALUE || curheight < bboxes[i].height))\n ) {\n minx = bboxes[i].x;\n miny = bboxes[i].y;\n maxx = bboxes[i].x + bboxes[i].width;\n maxy = bboxes[i].y + bboxes[i].height;\n curwidth = bboxes[i].width;\n curheight = bboxes[i].height;\n }\n break;\n default: // 'selected'\n if (bboxes[i].x < minx) { minx = bboxes[i].x; }\n if (bboxes[i].y < miny) { miny = bboxes[i].y; }\n if (bboxes[i].x + bboxes[i].width > maxx) { maxx = bboxes[i].x + bboxes[i].width; }\n if (bboxes[i].y + bboxes[i].height > maxy) { maxy = bboxes[i].y + bboxes[i].height; }\n break;\n }\n } // loop for each element to find the bbox and adjust min/max\n\n if (relativeTo === 'page') {\n minx = 0;\n miny = 0;\n maxx = canvas.contentW;\n maxy = canvas.contentH;\n }\n\n const dx = new Array(len);\n const dy = new Array(len);\n for (let i = 0; i < len; ++i) {\n if (isNullish(selectedElements[i])) { break; }\n // const elem = selectedElements[i];\n const bbox = bboxes[i];\n dx[i] = 0;\n dy[i] = 0;\n switch (type) {\n case 'l': // left (horizontal)\n dx[i] = minx - bbox.x;\n break;\n case 'c': // center (horizontal)\n dx[i] = (minx + maxx) / 2 - (bbox.x + bbox.width / 2);\n break;\n case 'r': // right (horizontal)\n dx[i] = maxx - (bbox.x + bbox.width);\n break;\n case 't': // top (vertical)\n dy[i] = miny - bbox.y;\n break;\n case 'm': // middle (vertical)\n dy[i] = (miny + maxy) / 2 - (bbox.y + bbox.height / 2);\n break;\n case 'b': // bottom (vertical)\n dy[i] = maxy - (bbox.y + bbox.height);\n break;\n }\n }\n this.moveSelectedElements(dx, dy);\n};\n\n/**\n* Group: Additional editor tools\n*/\n\n/**\n* @name module:svgcanvas.SvgCanvas#contentW\n* @type {Float}\n*/\nthis.contentW = getResolution().w;\n/**\n* @name module:svgcanvas.SvgCanvas#contentH\n* @type {Float}\n*/\nthis.contentH = getResolution().h;\n\n/**\n* @typedef {PlainObject} module:svgcanvas.CanvasInfo\n* @property {Float} x - The canvas' new x coordinate\n* @property {Float} y - The canvas' new y coordinate\n* @property {string} oldX - The canvas' old x coordinate\n* @property {string} oldY - The canvas' old y coordinate\n* @property {Float} d_x - The x position difference\n* @property {Float} d_y - The y position difference\n*/\n\n/**\n* Updates the editor canvas width/height/position after a zoom has occurred.\n* @function module:svgcanvas.SvgCanvas#updateCanvas\n* @param {Float} w - Float with the new width\n* @param {Float} h - Float with the new height\n* @fires module:svgcanvas.SvgCanvas#event:ext_canvasUpdated\n* @returns {module:svgcanvas.CanvasInfo}\n*/\nthis.updateCanvas = function (w, h) {\n svgroot.setAttribute('width', w);\n svgroot.setAttribute('height', h);\n const bg = $('#canvasBackground')[0];\n const oldX = svgcontent.getAttribute('x');\n const oldY = svgcontent.getAttribute('y');\n const x = ((w - this.contentW * currentZoom) / 2);\n const y = ((h - this.contentH * currentZoom) / 2);\n\n assignAttributes(svgcontent, {\n width: this.contentW * currentZoom,\n height: this.contentH * currentZoom,\n x,\n y,\n viewBox: '0 0 ' + this.contentW + ' ' + this.contentH\n });\n\n assignAttributes(bg, {\n width: svgcontent.getAttribute('width'),\n height: svgcontent.getAttribute('height'),\n x,\n y\n });\n\n const bgImg = getElem('background_image');\n if (bgImg) {\n assignAttributes(bgImg, {\n width: '100%',\n height: '100%'\n });\n }\n\n selectorManager.selectorParentGroup.setAttribute('transform', 'translate(' + x + ',' + y + ')');\n\n /**\n * Invoked upon updates to the canvas.\n * @event module:svgcanvas.SvgCanvas#event:ext_canvasUpdated\n * @type {PlainObject}\n * @property {Integer} new_x\n * @property {Integer} new_y\n * @property {string} old_x (Of Integer)\n * @property {string} old_y (Of Integer)\n * @property {Integer} d_x\n * @property {Integer} d_y\n */\n runExtensions(\n 'canvasUpdated',\n /**\n * @type {module:svgcanvas.SvgCanvas#event:ext_canvasUpdated}\n */\n {new_x: x, new_y: y, old_x: oldX, old_y: oldY, d_x: x - oldX, d_y: y - oldY}\n );\n return {x, y, old_x: oldX, old_y: oldY, d_x: x - oldX, d_y: y - oldY};\n};\n\n/**\n* Set the background of the editor (NOT the actual document).\n* @function module:svgcanvas.SvgCanvas#setBackground\n* @param {string} color - String with fill color to apply\n* @param {string} url - URL or path to image to use\n* @returns {void}\n*/\nthis.setBackground = function (color, url) {\n const bg = getElem('canvasBackground');\n const border = $(bg).find('rect')[0];\n let bgImg = getElem('background_image');\n border.setAttribute('fill', color);\n if (url) {\n if (!bgImg) {\n bgImg = svgdoc.createElementNS(NS.SVG, 'image');\n assignAttributes(bgImg, {\n id: 'background_image',\n width: '100%',\n height: '100%',\n preserveAspectRatio: 'xMinYMin',\n style: 'pointer-events:none'\n });\n }\n setHref(bgImg, url);\n bg.append(bgImg);\n } else if (bgImg) {\n bgImg.remove();\n }\n};\n\n/**\n* Select the next/previous element within the current layer.\n* @function module:svgcanvas.SvgCanvas#cycleElement\n* @param {boolean} next - true = next and false = previous element\n* @fires module:svgcanvas.SvgCanvas#event:selected\n* @returns {void}\n*/\nthis.cycleElement = function (next) {\n let num;\n const curElem = selectedElements[0];\n let elem = false;\n const allElems = getVisibleElements(currentGroup || getCurrentDrawing().getCurrentLayer());\n if (!allElems.length) { return; }\n if (isNullish(curElem)) {\n num = next ? allElems.length - 1 : 0;\n elem = allElems[num];\n } else {\n let i = allElems.length;\n while (i--) {\n if (allElems[i] === curElem) {\n num = next ? i - 1 : i + 1;\n if (num >= allElems.length) {\n num = 0;\n } else if (num < 0) {\n num = allElems.length - 1;\n }\n elem = allElems[num];\n break;\n }\n }\n }\n selectOnly([elem], true);\n call('selected', selectedElements);\n};\n\nthis.clear();\n\n/**\n* @interface module:svgcanvas.PrivateMethods\n* @type {PlainObject}\n* @property {module:svgcanvas~addCommandToHistory} addCommandToHistory\n* @property {module:history.HistoryCommand} BatchCommand\n* @property {module:history.HistoryCommand} ChangeElementCommand\n* @property {module:utilities.decode64} decode64\n* @property {module:utilities.dropXMLInteralSubset} dropXMLInteralSubset\n* @property {module:utilities.encode64} encode64\n* @property {module:svgcanvas~ffClone} ffClone\n* @property {module:svgcanvas~findDuplicateGradient} findDuplicateGradient\n* @property {module:utilities.getPathBBox} getPathBBox\n* @property {module:units.getTypeMap} getTypeMap\n* @property {module:draw.identifyLayers} identifyLayers\n* @property {module:history.HistoryCommand} InsertElementCommand\n* @property {module:browser.isChrome} isChrome\n* @property {module:math.isIdentity} isIdentity\n* @property {module:browser.isIE} isIE\n* @property {module:svgcanvas~logMatrix} logMatrix\n* @property {module:history.HistoryCommand} MoveElementCommand\n* @property {module:namespaces.NS} NS\n* @property {module:utilities.preventClickDefault} preventClickDefault\n* @property {module:history.HistoryCommand} RemoveElementCommand\n* @property {module:SVGTransformList.SVGEditTransformList} SVGEditTransformList\n* @property {module:utilities.text2xml} text2xml\n* @property {module:math.transformBox} transformBox\n* @property {module:math.transformPoint} transformPoint\n* @property {module:utilities.walkTree} walkTree\n*/\n/**\n* @deprecated getPrivateMethods\n* Since all methods are/should be public somehow, this function should be removed;\n* we might require `import` in place of this in the future once ES6 Modules\n* widespread\n\n* Being able to access private methods publicly seems wrong somehow,\n* but currently appears to be the best way to allow testing and provide\n* access to them to plugins.\n* @function module:svgcanvas.SvgCanvas#getPrivateMethods\n* @returns {module:svgcanvas.PrivateMethods}\n*/\nthis.getPrivateMethods = function () {\n const obj = {\n addCommandToHistory,\n BatchCommand,\n ChangeElementCommand,\n decode64,\n dropXMLInteralSubset,\n encode64,\n ffClone,\n findDefs,\n findDuplicateGradient,\n getElem,\n getPathBBox,\n getTypeMap,\n getUrlFromAttr,\n identifyLayers: draw.identifyLayers,\n InsertElementCommand,\n isChrome,\n isIdentity,\n isIE,\n logMatrix,\n MoveElementCommand,\n NS,\n preventClickDefault,\n RemoveElementCommand,\n SVGEditTransformList,\n text2xml,\n transformBox,\n transformPoint,\n walkTree\n };\n return obj;\n};\n } // End constructor\n} // End class\n\nexport default SvgCanvas;\n","// Todo: Move to own module (and have it import a modular base64 encoder)\nimport {encode64} from '../utilities.js';\n/**\n * SVG Icon Loader 2.0\n *\n * jQuery Plugin for loading SVG icons from a single file\n *\n * Adds {@link external:jQuery.svgIcons}, {@link external:jQuery.getSvgIcon}, {@link external:jQuery.resizeSvgIcons}\n *\n * How to use:\n\n1. Create the SVG master file that includes all icons:\n\nThe master SVG icon-containing file is an SVG file that contains\n`` elements. Each `` element should contain the markup of an SVG\nicon. The `` element has an ID that should\ncorrespond with the ID of the HTML element used on the page that should contain\nor optionally be replaced by the icon. Additionally, one empty element should be\nadded at the end with id \"svg_eof\".\n\n2. Optionally create fallback raster images for each SVG icon.\n\n3. Include the jQuery and the SVG Icon Loader scripts on your page.\n\n4. Run `$.svgIcons()` when the document is ready. See its signature\n\n5. To access an icon at a later point without using the callback, use this:\n `$.getSvgIcon(id (string), uniqueClone (boolean))`;\n\nThis will return the icon (as jQuery object) with a given ID.\n\n6. To resize icons at a later point without using the callback, use this:\n `$.resizeSvgIcons(resizeOptions)` (use the same way as the \"resize\" parameter)\n *\n * @module jQuerySVGIcons\n * @license MIT\n * @copyright (c) 2009 Alexis Deveria\n * {@link http://a.deveria.com}\n * @example\n$(function () {\n $.svgIcons('my_icon_set.svg'); // The SVG file that contains all icons\n // No options have been set, so all icons will automatically be inserted\n // into HTML elements that match the same IDs.\n});\n\n* @example\n$(function () {\n // The SVG file that contains all icons\n $.svgIcons('my_icon_set.svg', {\n callback (icons) { // Custom callback function that sets click\n // events for each icon\n $.each(icons, function (id, icon) {\n icon.click(function () {\n alert('You clicked on the icon with id ' + id);\n });\n });\n }\n });\n});\n\n* @example\n$(function () {\n // The SVGZ file that contains all icons\n $.svgIcons('my_icon_set.svgz', {\n w: 32, // All icons will be 32px wide\n h: 32, // All icons will be 32px high\n fallback_path: 'icons/', // All fallback files can be found here\n fallback: {\n '#open_icon': 'open.png', // The \"open.png\" will be appended to the\n // HTML element with ID \"open_icon\"\n '#close_icon': 'close.png',\n '#save_icon': 'save.png'\n },\n placement: {'.open_icon': 'open'}, // The \"open\" icon will be added\n // to all elements with class \"open_icon\"\n resize: {\n '#save_icon .svg_icon': 64 // The \"save\" icon will be resized to 64 x 64px\n },\n\n callback (icons) { // Sets background color for \"close\" icon\n icons.close.css('background', 'red');\n },\n\n svgz: true // Indicates that an SVGZ file is being used\n });\n});\n*/\n\nconst isOpera = Boolean(window.opera);\n\nconst fixIDs = function (svgEl, svgNum, force) {\n const defs = svgEl.find('defs');\n if (!defs.length) return svgEl;\n\n let idElems;\n if (isOpera) {\n idElems = defs.find('*').filter(function () {\n return Boolean(this.id);\n });\n } else {\n idElems = defs.find('[id]');\n }\n\n const allElems = svgEl[0].getElementsByTagName('*'),\n len = allElems.length;\n\n idElems.each(function (i) {\n const {id} = this;\n /*\n const noDupes = ($(svgdoc).find('#' + id).length <= 1);\n if (isOpera) noDupes = false; // Opera didn't clone svgEl, so not reliable\n if(!force && noDupes) return;\n */\n const newId = 'x' + id + svgNum + i;\n this.id = newId;\n\n const oldVal = 'url(#' + id + ')';\n const newVal = 'url(#' + newId + ')';\n\n // Selector method, possibly faster but fails in Opera / jQuery 1.4.3\n // svgEl.find('[fill=\"url(#' + id + ')\"]').each(function() {\n // this.setAttribute('fill', 'url(#' + newId + ')');\n // }).end().find('[stroke=\"url(#' + id + ')\"]').each(function() {\n // this.setAttribute('stroke', 'url(#' + newId + ')');\n // }).end().find('use').each(function() {\n // if(this.getAttribute('xlink:href') == '#' + id) {\n // this.setAttributeNS(xlinkns,'href','#' + newId);\n // }\n // }).end().find('[filter=\"url(#' + id + ')\"]').each(function() {\n // this.setAttribute('filter', 'url(#' + newId + ')');\n // });\n\n for (i = 0; i < len; i++) {\n const elem = allElems[i];\n if (elem.getAttribute('fill') === oldVal) {\n elem.setAttribute('fill', newVal);\n }\n if (elem.getAttribute('stroke') === oldVal) {\n elem.setAttribute('stroke', newVal);\n }\n if (elem.getAttribute('filter') === oldVal) {\n elem.setAttribute('filter', newVal);\n }\n }\n });\n return svgEl;\n};\n\n/**\n* @callback module:jQuerySVGIcons.SVGIconsLoadedCallback\n* @param {PlainObject} svgIcons IDs keyed to jQuery objects of images\n*/\n\n/**\n * @function module:jQuerySVGIcons.jQuerySVGIcons\n * @param {external:jQuery} $ Its keys include all icon IDs and the values, the icon as a jQuery object\n * @returns {external:jQuery} The enhanced jQuery object\n*/\nexport default function jQueryPluginSVGIcons ($) {\n const svgIcons = {};\n\n /**\n * Map of raster images with each key being the SVG icon ID\n * to replace, and the value the image file name\n * @typedef {PlainObject} external:jQuery.svgIcons.Fallback\n */\n /**\n * Map of raster images with each key being the SVG icon ID\n * whose `alt` will be set, and the value being the `alt` text\n * @typedef {PlainObject} external:jQuery.svgIcons.Alts\n */\n /**\n * @function external:jQuery.svgIcons\n * @param {string} file The location of a local SVG or SVGz file\n * @param {PlainObject} [opts]\n * @param {Float} [opts.w] The icon widths\n * @param {Float} [opts.h] The icon heights\n * @param {external:jQuery.svgIcons.Fallback} [opts.fallback]\n * @param {string} [opts.fallback_path] The path to use for all images\n * listed under \"fallback\"\n * @param {boolean} [opts.replace] If set to `true`, HTML elements will\n * be replaced by, rather than include the SVG icon.\n * @param {PlainObject} [opts.placement] Map with selectors\n * for keys and SVG icon ids as values. This provides a custom method of\n * adding icons.\n * @param {PlainObject} [opts.resize] Map\n * with selectors for keys and numbers as values. This allows an easy way to\n * resize specific icons.\n * @param {module:jQuerySVGIcons.SVGIconsLoadedCallback} [opts.callback] A\n * function to call when all icons have been loaded.\n * @param {boolean} [opts.id_match=true] Automatically attempt to match\n * SVG icon ids with corresponding HTML id\n * @param {boolean} [opts.no_img] Prevent attempting to convert the icon\n * into an `` element (may be faster, help for browser consistency)\n * @param {boolean} [opts.svgz] Indicate that the file is an SVGZ file, and\n * thus not to parse as XML. SVGZ files add compression benefits, but\n * getting data from them fails in Firefox 2 and older.\n * @param {jQuery.svgIcons.Alts} [opts.alts] Map of images with each key\n * being the SVG icon ID whose `alt` will be set, and the value being\n * the `alt` text\n * @param {string} [opts.testIconAlt=\"icon\"] Alt text for the injected test image.\n * In case wish to ensure have one for accessibility\n * @returns {void}\n */\n $.svgIcons = function (file, opts = {}) {\n const svgns = 'http://www.w3.org/2000/svg',\n xlinkns = 'http://www.w3.org/1999/xlink',\n iconW = opts.w || 24,\n iconH = opts.h || 24;\n let elems, svgdoc, testImg,\n iconsMade = false,\n dataLoaded = false,\n loadAttempts = 0;\n const // ua = navigator.userAgent,\n // isSafari = (ua.includes('Safari/') && !ua.includes('Chrome/')),\n dataPre = 'data:image/svg+xml;charset=utf-8;base64,';\n\n let dataEl;\n if (opts.svgz) {\n dataEl = $('').appendTo('body').hide();\n try {\n svgdoc = dataEl[0].contentDocument;\n dataEl.load(getIcons);\n getIcons(0, true); // Opera will not run \"load\" event if file is already cached\n } catch (err1) {\n useFallback();\n }\n } else {\n const parser = new DOMParser();\n $.ajax({\n url: file,\n dataType: 'string',\n success (data) {\n if (!data) {\n $(useFallback);\n return;\n }\n svgdoc = parser.parseFromString(data, 'text/xml');\n $(function () {\n getIcons('ajax');\n });\n },\n error (err) {\n // TODO: Fix Opera widget icon bug\n if (window.opera) {\n $(function () {\n useFallback();\n });\n } else if (err.responseText) {\n svgdoc = parser.parseFromString(err.responseText, 'text/xml');\n\n if (!svgdoc.childNodes.length) {\n $(useFallback);\n }\n $(function () {\n getIcons('ajax');\n });\n } else {\n $(useFallback);\n }\n }\n });\n }\n\n /**\n *\n * @param {\"ajax\"|0|void} evt\n * @param {boolean} [noWait]\n * @returns {void}\n */\n function getIcons (evt, noWait) {\n if (evt !== 'ajax') {\n if (dataLoaded) return;\n // Webkit sometimes says svgdoc is undefined, other times\n // it fails to load all nodes. Thus we must make sure the \"eof\"\n // element is loaded.\n svgdoc = dataEl[0].contentDocument; // Needed again for Webkit\n const isReady = (svgdoc && svgdoc.getElementById('svg_eof'));\n if (!isReady && !(noWait && isReady)) {\n loadAttempts++;\n if (loadAttempts < 50) {\n setTimeout(getIcons, 20);\n } else {\n useFallback();\n dataLoaded = true;\n }\n return;\n }\n dataLoaded = true;\n }\n\n elems = $(svgdoc.firstChild).children(); // .getElementsByTagName('foreignContent');\n\n if (!opts.no_img) {\n const testSrc = dataPre + 'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNzUiIGhlaWdodD0iMjc1Ij48L3N2Zz4%3D';\n\n testImg = $(new Image()).attr({\n src: testSrc,\n width: 0,\n height: 0,\n alt: opts.testIconAlt || 'icon'\n }).appendTo('body')\n .load(function () {\n // Safari 4 crashes, Opera and Chrome don't\n makeIcons(true);\n }).error(function () {\n makeIcons();\n });\n } else {\n setTimeout(function () {\n if (!iconsMade) makeIcons();\n }, 500);\n }\n }\n\n /**\n *\n * @param {external:jQuery} target\n * @param {external:jQuery} icon A wrapped `defs` or Image\n * @param {string} id SVG icon ID\n * @param {boolean} setID Whether to set the ID attribute (with `id`)\n * @returns {void}\n */\n function setIcon (target, icon, id, setID) {\n if (isOpera) icon.css('visibility', 'hidden');\n if (opts.replace) {\n if (setID) icon.attr('id', id);\n const cl = target.attr('class');\n if (cl) icon.attr('class', 'svg_icon ' + cl);\n if (!target.alt) {\n let alt = 'icon';\n if (opts.alts) {\n alt = opts.alts[id] || alt;\n }\n icon.attr('alt', alt);\n }\n target.replaceWith(icon);\n } else {\n target.append(icon);\n }\n if (isOpera) {\n setTimeout(function () {\n icon.removeAttr('style');\n }, 1);\n }\n }\n\n let holder;\n /**\n * @param {external:jQuery} icon A wrapped `defs` or Image\n * @param {string} id SVG icon ID\n * @returns {void}\n */\n function addIcon (icon, id) {\n if (opts.id_match === undefined || opts.id_match !== false) {\n setIcon(holder, icon, id, true);\n }\n svgIcons[id] = icon;\n }\n\n /**\n *\n * @param {boolean} [toImage]\n * @param {external:jQuery.svgIcons.Fallback} [fallback=false]\n * @returns {void}\n */\n function makeIcons (toImage = false, fallback = false) {\n if (iconsMade) return;\n if (opts.no_img) toImage = false;\n\n let tempHolder;\n if (toImage) {\n tempHolder = $(document.createElement('div'));\n tempHolder.hide().appendTo('body');\n }\n if (fallback) {\n const path = opts.fallback_path || '';\n $.each(fallback, function (id, imgsrc) {\n holder = $('#' + id);\n let alt = 'icon';\n if (opts.alts) {\n alt = opts.alts[id] || alt;\n }\n const icon = $(new Image())\n .attr({\n class: 'svg_icon',\n src: path + imgsrc,\n width: iconW,\n height: iconH,\n alt\n });\n\n addIcon(icon, id);\n });\n } else {\n const len = elems.length;\n for (let i = 0; i < len; i++) {\n const elem = elems[i];\n const {id} = elem;\n if (id === 'svg_eof') break;\n holder = $('#' + id);\n const svgroot = document.createElementNS(svgns, 'svg');\n // Per https://www.w3.org/TR/xml-names11/#defaulting, the namespace for\n // attributes should have no value.\n svgroot.setAttribute('viewBox', [0, 0, iconW, iconH].join(' '));\n\n let svg = elem.getElementsByTagNameNS(svgns, 'svg')[0];\n\n // Make flexible by converting width/height to viewBox\n const w = svg.getAttribute('width');\n const h = svg.getAttribute('height');\n svg.removeAttribute('width');\n svg.removeAttribute('height');\n\n const vb = svg.getAttribute('viewBox');\n if (!vb) {\n svg.setAttribute('viewBox', [0, 0, w, h].join(' '));\n }\n\n // Not using jQuery to be a bit faster\n svgroot.setAttribute('xmlns', svgns);\n svgroot.setAttribute('width', iconW);\n svgroot.setAttribute('height', iconH);\n svgroot.setAttribute('xmlns:xlink', xlinkns);\n svgroot.setAttribute('class', 'svg_icon');\n\n // Without cloning, Firefox will make another GET request.\n // With cloning, causes issue in Opera/Win/Non-EN\n if (!isOpera) svg = svg.cloneNode(true);\n\n svgroot.append(svg);\n\n let icon;\n if (toImage) {\n tempHolder.empty().append(svgroot);\n const str = dataPre + encode64(unescape(encodeURIComponent(\n new XMLSerializer().serializeToString(svgroot)\n )));\n let alt = 'icon';\n if (opts.alts) {\n alt = opts.alts[id] || alt;\n }\n icon = $(new Image())\n .attr({class: 'svg_icon', src: str, alt});\n } else {\n icon = fixIDs($(svgroot), i);\n }\n addIcon(icon, id);\n }\n }\n\n if (opts.placement) {\n $.each(opts.placement, function (sel, id) {\n if (!svgIcons[id]) return;\n $(sel).each(function (i) {\n let copy = svgIcons[id].clone();\n if (i > 0 && !toImage) copy = fixIDs(copy, i, true);\n setIcon($(this), copy, id);\n });\n });\n }\n if (!fallback) {\n if (toImage) tempHolder.remove();\n if (dataEl) dataEl.remove();\n if (testImg) testImg.remove();\n }\n if (opts.resize) $.resizeSvgIcons(opts.resize);\n iconsMade = true;\n\n if (opts.callback) opts.callback(svgIcons);\n }\n\n /**\n * @returns {void}\n */\n function useFallback () {\n if (file.includes('.svgz')) {\n const regFile = file.replace('.svgz', '.svg');\n if (window.console) {\n console.log('.svgz failed, trying with .svg'); // eslint-disable-line no-console\n }\n $.svgIcons(regFile, opts);\n } else if (opts.fallback) {\n makeIcons(false, opts.fallback);\n }\n }\n };\n\n /**\n * @function external:jQuery.getSvgIcon\n * @param {string} id\n * @param {boolean} uniqueClone Whether to clone\n * @returns {external:jQuery} The icon (optionally cloned)\n */\n $.getSvgIcon = function (id, uniqueClone) {\n let icon = svgIcons[id];\n if (uniqueClone && icon) {\n icon = fixIDs(icon, 0, true).clone(true);\n }\n return icon;\n };\n\n /**\n * @typedef {GenericArray} module:jQuerySVGIcons.Dimensions\n * @property {Integer} length 2\n * @property {Float} 0 Width\n * @property {Float} 1 Height\n */\n\n /**\n * If a Float is used, it will represent width and height. Arrays contain\n * the width and height.\n * @typedef {module:jQuerySVGIcons.Dimensions|Float} module:jQuerySVGIcons.Size\n */\n\n /**\n * @function external:jQuery.resizeSvgIcons\n * @param {PlainObject} obj Object with\n * selectors as keys. The values are sizes.\n * @returns {void}\n */\n $.resizeSvgIcons = function (obj) {\n // FF2 and older don't detect .svg_icon, so we change it detect svg elems instead\n const changeSel = !$('.svg_icon:first').length;\n $.each(obj, function (sel, size) {\n const arr = Array.isArray(size);\n const w = arr ? size[0] : size,\n h = arr ? size[1] : size;\n if (changeSel) {\n sel = sel.replace(/\\.svg_icon/g, 'svg');\n }\n $(sel).each(function () {\n this.setAttribute('width', w);\n this.setAttribute('height', h);\n if (window.opera && window.widget) {\n this.parentNode.style.width = w + 'px';\n this.parentNode.style.height = h + 'px';\n }\n });\n });\n };\n return $;\n}\n","/**\n * jGraduate 0.4\n *\n * jQuery Plugin for a gradient picker\n *\n * @module jGraduate\n * @copyright 2010 Jeff Schiller {@link http://blog.codedread.com/}, 2010 Alexis Deveria {@link http://a.deveria.com/}\n *\n * @license Apache-2.0\n * @example\n * // The Paint object is described below.\n * $.jGraduate.Paint(); // constructs a 'none' color\n * @example $.jGraduate.Paint({copy: o}); // creates a copy of the paint o\n * @example $.jGraduate.Paint({hex: '#rrggbb'}); // creates a solid color paint with hex = \"#rrggbb\"\n * @example $.jGraduate.Paint({linearGradient: o, a: 50}); // creates a linear gradient paint with opacity=0.5\n * @example $.jGraduate.Paint({radialGradient: o, a: 7}); // creates a radial gradient paint with opacity=0.07\n * @example $.jGraduate.Paint({hex: '#rrggbb', linearGradient: o}); // throws an exception?\n*/\n\n/**\n * The jQuery namespace.\n * @external jQuery\n*/\n/**\n * The jQuery plugin namespace.\n * @namespace {PlainObject} fn\n * @memberof external:jQuery\n * @see {@link http://learn.jquery.com/plugins/|jQuery Plugins}\n */\n\nconst ns = {\n svg: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink'\n};\n\nif (!window.console) {\n window.console = {\n log (str) { /* */ },\n dir (str) { /* */ }\n };\n}\n\n/**\n* Adds {@link external:jQuery.jGraduate.Paint},\n* {@link external:jQuery.fn.jGraduateDefaults},\n* {@link external:jQuery.fn.jGraduate}.\n* @function module:jGraduate.jGraduate\n* @param {external:jQuery} $ The jQuery instance to wrap\n* @returns {external:jQuery}\n*/\nexport default function jQueryPluginJGraduate ($) {\n if (!$.loadingStylesheets) {\n $.loadingStylesheets = [];\n }\n const stylesheet = 'jgraduate/css/jGraduate.css';\n if (!$.loadingStylesheets.includes(stylesheet)) {\n $.loadingStylesheets.push(stylesheet);\n }\n\n /**\n * @typedef {PlainObject} module:jGraduate.jGraduatePaintOptions\n * @param {Float} [alpha]\n * @param {module:jGraduate~Paint} [copy] Copy paint object\n * @param {SVGLinearGradientElement} [linearGradient]\n * @param {SVGRadialGradientElement} [radialGradient]\n * @param {string} [solidColor]\n */\n\n /**\n * @memberof module:jGraduate~\n */\n class Paint {\n /**\n * @param {module:jGraduate.jGraduatePaintOptions} [opt]\n */\n constructor (opt) {\n const options = opt || {};\n this.alpha = isNaN(options.alpha) ? 100 : options.alpha;\n // copy paint object\n if (options.copy) {\n /**\n * @name module:jGraduate~Paint#type\n * @type {\"none\"|\"solidColor\"|\"linearGradient\"|\"radialGradient\"}\n */\n this.type = options.copy.type;\n /**\n * Represents opacity (0-100)\n * @name module:jGraduate~Paint#alpha\n * @type {Float}\n */\n this.alpha = options.copy.alpha;\n /**\n * Represents #RRGGBB hex of color\n * @name module:jGraduate~Paint#solidColor\n * @type {string}\n */\n this.solidColor = null;\n /**\n * @name module:jGraduate~Paint#linearGradient\n * @type {SVGLinearGradientElement}\n */\n this.linearGradient = null;\n /**\n * @name module:jGraduate~Paint#radialGradient\n * @type {SVGRadialGradientElement}\n */\n this.radialGradient = null;\n\n switch (this.type) {\n case 'none':\n break;\n case 'solidColor':\n this.solidColor = options.copy.solidColor;\n break;\n case 'linearGradient':\n this.linearGradient = options.copy.linearGradient.cloneNode(true);\n break;\n case 'radialGradient':\n this.radialGradient = options.copy.radialGradient.cloneNode(true);\n break;\n }\n // create linear gradient paint\n } else if (options.linearGradient) {\n this.type = 'linearGradient';\n this.solidColor = null;\n this.radialGradient = null;\n this.linearGradient = options.linearGradient.cloneNode(true);\n // create linear gradient paint\n } else if (options.radialGradient) {\n this.type = 'radialGradient';\n this.solidColor = null;\n this.linearGradient = null;\n this.radialGradient = options.radialGradient.cloneNode(true);\n // create solid color paint\n } else if (options.solidColor) {\n this.type = 'solidColor';\n this.solidColor = options.solidColor;\n // create empty paint\n } else {\n this.type = 'none';\n this.solidColor = null;\n this.linearGradient = null;\n this.radialGradient = null;\n }\n }\n }\n /**\n * @namespace {PlainObject} jGraduate\n * @memberof external:jQuery\n */\n $.jGraduate = /** @lends external:jQuery.jGraduate */ {\n /**\n * @class external:jQuery.jGraduate.Paint\n * @see module:jGraduate~Paint\n */\n Paint\n };\n\n // JSDoc doesn't show this as belonging to our `module:jGraduate.Options` type,\n // so we use `@see`\n /**\n * @namespace {module:jGraduate.Options} jGraduateDefaults\n * @memberof external:jQuery.fn\n */\n $.fn.jGraduateDefaults = /** @lends external:jQuery.fn.jGraduateDefaults */ {\n /**\n * Creates an object with a 'none' color\n * @type {external:jQuery.jGraduate.Paint}\n * @see module:jGraduate.Options\n */\n paint: new $.jGraduate.Paint(),\n /**\n * @namespace\n */\n window: {\n /**\n * @type {string}\n * @see module:jGraduate.Options\n */\n pickerTitle: 'Drag markers to pick a paint'\n },\n /**\n * @namespace\n */\n images: {\n /**\n * @type {string}\n * @see module:jGraduate.Options\n */\n clientPath: 'images/'\n },\n /**\n * @type {string}\n * @see module:jGraduate.Options\n */\n newstop: 'inverse' // same, inverse, black, white\n };\n\n const isGecko = navigator.userAgent.includes('Gecko/');\n\n /**\n * @typedef {PlainObject} module:jGraduate.Attrs\n */\n /**\n * @param {SVGElement} elem\n * @param {module:jGraduate.Attrs} attrs\n * @returns {void}\n */\n function setAttrs (elem, attrs) {\n if (isGecko) {\n Object.entries(attrs).forEach(([aname, val]) => {\n elem.setAttribute(aname, val);\n });\n } else {\n Object.entries(attrs).forEach(([aname, val]) => {\n const prop = elem[aname];\n if (prop && prop.constructor === 'SVGLength') {\n prop.baseVal.value = val;\n } else {\n elem.setAttribute(aname, val);\n }\n });\n }\n }\n\n /**\n * @param {string} name\n * @param {module:jGraduate.Attrs} attrs\n * @param {Element} newparent\n * @returns {SVGElement}\n */\n function mkElem (name, attrs, newparent) {\n const elem = document.createElementNS(ns.svg, name);\n setAttrs(elem, attrs);\n if (newparent) {\n newparent.append(elem);\n }\n return elem;\n }\n\n /**\n * @typedef {PlainObject} module:jGraduate.ColorOpac Object may have one or both values\n * @property {string} [color] #Hex color\n * @property {Float} [opac] 0-1\n */\n /**\n * @typedef {PlainObject} module:jGraduate.Options\n * @property {module:jGraduate~Paint} [paint] A Paint object object describing the paint to display initially; defaults to a new instance without options (defaults to opaque white)\n * @property {external:Window} [window]\n * @property {string} [window.pickerTitle='Drag markers to pick a paint']\n * @property {PlainObject} [images]\n * @property {string} [images.clientPath='images/']\n * @property {\"same\"|\"inverse\"|\"black\"|\"white\"|module:jGraduate.ColorOpac} [newstop=\"inverse\"]\n */\n\n /**\n * @callback external:jQuery.fn.jGraduate.OkCallback\n * @param {external:jQuery.jGraduate.Paint} paint\n * @returns {void}\n */\n /**\n * @callback external:jQuery.fn.jGraduate.CancelCallback\n * @returns {void}\n */\n\n /**\n * @function external:jQuery.fn.jGraduate\n * @param {module:jGraduate.Options} [options]\n * @param {external:jQuery.fn.jGraduate.OkCallback} [okCallback] Called with a Paint object when Ok is pressed\n * @param {external:jQuery.fn.jGraduate.CancelCallback} [cancelCallback] Called with no arguments when Cancel is pressed\n * @returns {external:jQuery}\n */\n $.fn.jGraduate = function (options, okCallback, cancelCallback) {\n return this.each(function () {\n const $this = $(this),\n $settings = $.extend(true, {}, $.fn.jGraduateDefaults, options || {}),\n id = $this.attr('id'),\n idref = '#' + $this.attr('id') + ' ';\n\n if (!idref) {\n /* await */ $.alert('Container element must have an id attribute to maintain unique id strings for sub-elements.');\n return;\n }\n\n const okClicked = function () {\n switch ($this.paint.type) {\n case 'radialGradient':\n $this.paint.linearGradient = null;\n break;\n case 'linearGradient':\n $this.paint.radialGradient = null;\n break;\n case 'solidColor':\n $this.paint.radialGradient = $this.paint.linearGradient = null;\n break;\n }\n typeof $this.okCallback === 'function' && $this.okCallback($this.paint);\n $this.hide();\n };\n const cancelClicked = function () {\n typeof $this.cancelCallback === 'function' && $this.cancelCallback();\n $this.hide();\n };\n\n $.extend(\n true,\n $this,\n // public properties, methods, and callbacks\n {\n // make a copy of the incoming paint\n paint: new $.jGraduate.Paint({copy: $settings.paint}),\n okCallback: typeof okCallback === 'function' ? okCallback : null,\n cancelCallback: typeof cancelCallback === 'function' ? cancelCallback : null\n }\n );\n\n let // pos = $this.position(),\n color = null;\n const $win = $(window);\n\n if ($this.paint.type === 'none') {\n $this.paint = new $.jGraduate.Paint({solidColor: 'ffffff'});\n }\n\n $this.addClass('jGraduate_Picker');\n $this.html(\n '
    ' +\n '
  • Solid Color
  • ' +\n '
  • Linear Gradient
  • ' +\n '
  • Radial Gradient
  • ' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
'\n );\n const colPicker = $(idref + '> .jGraduate_colPick');\n const gradPicker = $(idref + '> .jGraduate_gradPick');\n\n gradPicker.html(\n '
' +\n '

' + $settings.window.pickerTitle + '

' +\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 '
' +\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 // Set up all the SVG elements (the gradient, stops and rectangle)\n const MAX = 256,\n MARGINX = 0,\n MARGINY = 0,\n // STOP_RADIUS = 15 / 2,\n SIZEX = MAX - 2 * MARGINX,\n SIZEY = MAX - 2 * MARGINY;\n\n const attrInput = {};\n\n const SLIDERW = 145;\n $('.jGraduate_SliderBar').width(SLIDERW);\n\n const container = $('#' + id + '_jGraduate_GradContainer')[0];\n\n const svg = mkElem('svg', {\n id: id + '_jgraduate_svg',\n width: MAX,\n height: MAX,\n xmlns: ns.svg\n }, container);\n\n // This wasn't working as designed\n // let curType;\n // curType = curType || $this.paint.type;\n\n // if we are sent a gradient, import it\n let curType = $this.paint.type;\n\n let grad = $this.paint[curType];\n let curGradient = grad;\n\n const gradalpha = $this.paint.alpha;\n\n const isSolid = curType === 'solidColor';\n\n // Make any missing gradients\n switch (curType) {\n case 'solidColor':\n // fall through\n case 'linearGradient':\n if (!isSolid) {\n curGradient.id = id + '_lg_jgraduate_grad';\n grad = curGradient = svg.appendChild(curGradient); // .cloneNode(true));\n }\n mkElem('radialGradient', {\n id: id + '_rg_jgraduate_grad'\n }, svg);\n if (curType === 'linearGradient') { break; }\n // fall through\n case 'radialGradient':\n if (!isSolid) {\n curGradient.id = id + '_rg_jgraduate_grad';\n grad = curGradient = svg.appendChild(curGradient); // .cloneNode(true));\n }\n mkElem('linearGradient', {\n id: id + '_lg_jgraduate_grad'\n }, svg);\n }\n\n let stopGroup; // eslint-disable-line prefer-const\n if (isSolid) {\n grad = curGradient = $('#' + id + '_lg_jgraduate_grad')[0];\n color = $this.paint[curType];\n mkStop(0, '#' + color, 1);\n\n const type = typeof $settings.newstop;\n\n if (type === 'string') {\n switch ($settings.newstop) {\n case 'same':\n mkStop(1, '#' + color, 1);\n break;\n\n case 'inverse': {\n // Invert current color for second stop\n let inverted = '';\n for (let i = 0; i < 6; i += 2) {\n // const ch = color.substr(i, 2);\n let inv = (255 - parseInt(color.substr(i, 2), 16)).toString(16);\n if (inv.length < 2) inv = 0 + inv;\n inverted += inv;\n }\n mkStop(1, '#' + inverted, 1);\n break;\n } case 'white':\n mkStop(1, '#ffffff', 1);\n break;\n\n case 'black':\n mkStop(1, '#000000', 1);\n break;\n }\n } else if (type === 'object') {\n const opac = ('opac' in $settings.newstop) ? $settings.newstop.opac : 1;\n mkStop(1, ($settings.newstop.color || '#' + color), opac);\n }\n }\n\n const x1 = parseFloat(grad.getAttribute('x1') || 0.0),\n y1 = parseFloat(grad.getAttribute('y1') || 0.0),\n x2 = parseFloat(grad.getAttribute('x2') || 1.0),\n y2 = parseFloat(grad.getAttribute('y2') || 0.0);\n\n const cx = parseFloat(grad.getAttribute('cx') || 0.5),\n cy = parseFloat(grad.getAttribute('cy') || 0.5),\n fx = parseFloat(grad.getAttribute('fx') || cx),\n fy = parseFloat(grad.getAttribute('fy') || cy);\n\n const previewRect = mkElem('rect', {\n id: id + '_jgraduate_rect',\n x: MARGINX,\n y: MARGINY,\n width: SIZEX,\n height: SIZEY,\n fill: 'url(#' + id + '_jgraduate_grad)',\n 'fill-opacity': gradalpha / 100\n }, svg);\n\n // stop visuals created here\n const beginCoord = $('
').attr({\n class: 'grad_coord jGraduate_lg_field',\n title: 'Begin Stop'\n }).text(1).css({\n top: y1 * MAX,\n left: x1 * MAX\n }).data('coord', 'start').appendTo(container);\n\n const endCoord = beginCoord.clone().text(2).css({\n top: y2 * MAX,\n left: x2 * MAX\n }).attr('title', 'End stop').data('coord', 'end').appendTo(container);\n\n const centerCoord = $('
').attr({\n class: 'grad_coord jGraduate_rg_field',\n title: 'Center stop'\n }).text('C').css({\n top: cy * MAX,\n left: cx * MAX\n }).data('coord', 'center').appendTo(container);\n\n const focusCoord = centerCoord.clone().text('F').css({\n top: fy * MAX,\n left: fx * MAX,\n display: 'none'\n }).attr('title', 'Focus point').data('coord', 'focus').appendTo(container);\n\n focusCoord[0].id = id + '_jGraduate_focusCoord';\n\n // const coords = $(idref + ' .grad_coord');\n\n // $(container).hover(function () {\n // coords.animate({\n // opacity: 1\n // }, 500);\n // }, function () {\n // coords.animate({\n // opacity: .2\n // }, 500);\n // });\n\n let showFocus;\n $.each(['x1', 'y1', 'x2', 'y2', 'cx', 'cy', 'fx', 'fy'], function (i, attr) {\n const isRadial = isNaN(attr[1]);\n\n let attrval = curGradient.getAttribute(attr);\n if (!attrval) {\n // Set defaults\n if (isRadial) {\n // For radial points\n attrval = '0.5';\n } else {\n // Only x2 is 1\n attrval = attr === 'x2' ? '1.0' : '0.0';\n }\n }\n\n attrInput[attr] = $('#' + id + '_jGraduate_' + attr)\n .val(attrval)\n .change(function () {\n // TODO: Support values < 0 and > 1 (zoomable preview?)\n if (isNaN(parseFloat(this.value)) || this.value < 0) {\n this.value = 0.0;\n } else if (this.value > 1) {\n this.value = 1.0;\n }\n\n if (!(attr[0] === 'f' && !showFocus)) {\n if ((isRadial && curType === 'radialGradient') || (!isRadial && curType === 'linearGradient')) {\n curGradient.setAttribute(attr, this.value);\n }\n }\n\n const $elem = isRadial\n ? attr[0] === 'c' ? centerCoord : focusCoord\n : attr[1] === '1' ? beginCoord : endCoord;\n\n const cssName = attr.includes('x') ? 'left' : 'top';\n\n $elem.css(cssName, this.value * MAX);\n }).change();\n });\n\n /**\n *\n * @param {Float} n\n * @param {Float|string} colr\n * @param {Float} opac\n * @param {boolean} [sel]\n * @param {SVGStopElement} [stopElem]\n * @returns {SVGStopElement}\n */\n function mkStop (n, colr, opac, sel, stopElem) {\n const stop = stopElem || mkElem('stop', {\n 'stop-color': colr,\n 'stop-opacity': opac,\n offset: n\n }, curGradient);\n if (stopElem) {\n colr = stopElem.getAttribute('stop-color');\n opac = stopElem.getAttribute('stop-opacity');\n n = stopElem.getAttribute('offset');\n } else {\n curGradient.append(stop);\n }\n if (opac === null) opac = 1;\n\n const pickerD = 'M-6.2,0.9c3.6-4,6.7-4.3,6.7-12.4c-0.2,7.9,3.1,8.8,6.5,12.4c3.5,3.8,2.9,9.6,0,12.3c-3.1,2.8-10.4,2.7-13.2,0C-9.6,9.9-9.4,4.4-6.2,0.9z';\n\n const pathbg = mkElem('path', {\n d: pickerD,\n fill: 'url(#jGraduate_trans)',\n transform: 'translate(' + (10 + n * MAX) + ', 26)'\n }, stopGroup);\n\n const path = mkElem('path', {\n d: pickerD,\n fill: colr,\n 'fill-opacity': opac,\n transform: 'translate(' + (10 + n * MAX) + ', 26)',\n stroke: '#000',\n 'stroke-width': 1.5\n }, stopGroup);\n\n $(path).mousedown(function (e) {\n selectStop(this);\n drag = curStop;\n $win.mousemove(dragColor).mouseup(remDrags);\n stopOffset = stopMakerDiv.offset();\n e.preventDefault();\n return false;\n }).data('stop', stop).data('bg', pathbg).dblclick(function () {\n $('div.jGraduate_LightBox').show();\n const colorhandle = this; // eslint-disable-line consistent-this\n let stopOpacity = Number(stop.getAttribute('stop-opacity')) || 1;\n let stopColor = stop.getAttribute('stop-color') || 1;\n let thisAlpha = (parseFloat(stopOpacity) * 255).toString(16);\n while (thisAlpha.length < 2) { thisAlpha = '0' + thisAlpha; }\n colr = stopColor.substr(1) + thisAlpha;\n $('#' + id + '_jGraduate_stopPicker').css({left: 100, bottom: 15}).jPicker({\n window: {title: 'Pick the start color and opacity for the gradient'},\n images: {clientPath: $settings.images.clientPath},\n color: {active: colr, alphaSupport: true}\n }, function (clr, arg2) {\n stopColor = clr.val('hex') ? ('#' + clr.val('hex')) : 'none';\n stopOpacity = clr.val('a') !== null ? clr.val('a') / 256 : 1;\n colorhandle.setAttribute('fill', stopColor);\n colorhandle.setAttribute('fill-opacity', stopOpacity);\n stop.setAttribute('stop-color', stopColor);\n stop.setAttribute('stop-opacity', stopOpacity);\n $('div.jGraduate_LightBox').hide();\n $('#' + id + '_jGraduate_stopPicker').hide();\n }, null, function () {\n $('div.jGraduate_LightBox').hide();\n $('#' + id + '_jGraduate_stopPicker').hide();\n });\n });\n\n $(curGradient).find('stop').each(function () {\n const curS = $(this);\n if (Number(this.getAttribute('offset')) > n) {\n if (!colr) {\n const newcolor = this.getAttribute('stop-color');\n const newopac = this.getAttribute('stop-opacity');\n stop.setAttribute('stop-color', newcolor);\n path.setAttribute('fill', newcolor);\n stop.setAttribute('stop-opacity', newopac === null ? 1 : newopac);\n path.setAttribute('fill-opacity', newopac === null ? 1 : newopac);\n }\n curS.before(stop);\n return false;\n }\n return true;\n });\n if (sel) selectStop(path);\n return stop;\n }\n\n /**\n *\n * @returns {void}\n */\n function remStop () {\n delStop.setAttribute('display', 'none');\n const path = $(curStop);\n const stop = path.data('stop');\n const bg = path.data('bg');\n $([curStop, stop, bg]).remove();\n }\n\n const stopMakerDiv = $('#' + id + '_jGraduate_StopSlider');\n\n let stops, curStop, drag;\n\n const delStop = mkElem('path', {\n d: 'm9.75,-6l-19.5,19.5m0,-19.5l19.5,19.5',\n fill: 'none',\n stroke: '#D00',\n 'stroke-width': 5,\n display: 'none'\n }, undefined); // stopMakerSVG);\n\n /**\n * @param {Element} item\n * @returns {void}\n */\n function selectStop (item) {\n if (curStop) curStop.setAttribute('stroke', '#000');\n item.setAttribute('stroke', 'blue');\n curStop = item;\n // stops = $('stop');\n // opac_select.val(curStop.attr('fill-opacity') || 1);\n // root.append(delStop);\n }\n\n let stopOffset;\n\n /**\n *\n * @returns {void}\n */\n function remDrags () {\n $win.unbind('mousemove', dragColor);\n if (delStop.getAttribute('display') !== 'none') {\n remStop();\n }\n drag = null;\n }\n\n let scaleX = 1, scaleY = 1, angle = 0;\n\n let cX = cx;\n let cY = cy;\n /**\n *\n * @returns {void}\n */\n function xform () {\n const rot = angle ? 'rotate(' + angle + ',' + cX + ',' + cY + ') ' : '';\n if (scaleX === 1 && scaleY === 1) {\n curGradient.removeAttribute('gradientTransform');\n // $('#ang').addClass('dis');\n } else {\n const x = -cX * (scaleX - 1);\n const y = -cY * (scaleY - 1);\n curGradient.setAttribute('gradientTransform', rot + 'translate(' + x + ',' + y + ') scale(' + scaleX + ',' + scaleY + ')');\n // $('#ang').removeClass('dis');\n }\n }\n\n /**\n * @param {Event} evt\n * @returns {void}\n */\n function dragColor (evt) {\n let x = evt.pageX - stopOffset.left;\n const y = evt.pageY - stopOffset.top;\n x = x < 10\n ? 10\n : x > MAX + 10\n ? MAX + 10\n : x;\n\n const xfStr = 'translate(' + x + ', 26)';\n if (y < -60 || y > 130) {\n delStop.setAttribute('display', 'block');\n delStop.setAttribute('transform', xfStr);\n } else {\n delStop.setAttribute('display', 'none');\n }\n\n drag.setAttribute('transform', xfStr);\n $.data(drag, 'bg').setAttribute('transform', xfStr);\n const stop = $.data(drag, 'stop');\n const sX = (x - 10) / MAX;\n\n stop.setAttribute('offset', sX);\n\n let last = 0;\n $(curGradient).find('stop').each(function (i) {\n const cur = this.getAttribute('offset');\n const t = $(this);\n if (cur < last) {\n t.prev().before(t);\n stops = $(curGradient).find('stop');\n }\n last = cur;\n });\n }\n\n const stopMakerSVG = mkElem('svg', {\n width: '100%',\n height: 45\n }, stopMakerDiv[0]);\n\n const transPattern = mkElem('pattern', {\n width: 16,\n height: 16,\n patternUnits: 'userSpaceOnUse',\n id: 'jGraduate_trans'\n }, stopMakerSVG);\n\n const transImg = mkElem('image', {\n width: 16,\n height: 16\n }, transPattern);\n\n const bgImage = $settings.images.clientPath + 'map-opacity.png';\n\n transImg.setAttributeNS(ns.xlink, 'xlink:href', bgImage);\n\n $(stopMakerSVG).click(function (evt) {\n stopOffset = stopMakerDiv.offset();\n const {target} = evt;\n if (target.tagName === 'path') return;\n let x = evt.pageX - stopOffset.left - 8;\n x = x < 10 ? 10 : x > MAX + 10 ? MAX + 10 : x;\n mkStop(x / MAX, 0, 0, true);\n evt.stopPropagation();\n });\n\n $(stopMakerSVG).mouseover(function () {\n stopMakerSVG.append(delStop);\n });\n\n stopGroup = mkElem('g', {}, stopMakerSVG);\n\n mkElem('line', {\n x1: 10,\n y1: 15,\n x2: MAX + 10,\n y2: 15,\n 'stroke-width': 2,\n stroke: '#000'\n }, stopMakerSVG);\n\n const spreadMethodOpt = gradPicker.find('.jGraduate_spreadMethod').change(function () {\n curGradient.setAttribute('spreadMethod', $(this).val());\n });\n\n // handle dragging the stop around the swatch\n let draggingCoord = null;\n\n const onCoordDrag = function (evt) {\n let x = evt.pageX - offset.left;\n let y = evt.pageY - offset.top;\n\n // clamp stop to the swatch\n x = x < 0 ? 0 : x > MAX ? MAX : x;\n y = y < 0 ? 0 : y > MAX ? MAX : y;\n\n draggingCoord.css('left', x).css('top', y);\n\n // calculate stop offset\n const fracx = x / SIZEX;\n const fracy = y / SIZEY;\n\n const type = draggingCoord.data('coord');\n const grd = curGradient;\n\n switch (type) {\n case 'start':\n attrInput.x1.val(fracx);\n attrInput.y1.val(fracy);\n grd.setAttribute('x1', fracx);\n grd.setAttribute('y1', fracy);\n break;\n case 'end':\n attrInput.x2.val(fracx);\n attrInput.y2.val(fracy);\n grd.setAttribute('x2', fracx);\n grd.setAttribute('y2', fracy);\n break;\n case 'center':\n attrInput.cx.val(fracx);\n attrInput.cy.val(fracy);\n grd.setAttribute('cx', fracx);\n grd.setAttribute('cy', fracy);\n cX = fracx;\n cY = fracy;\n xform();\n break;\n case 'focus':\n attrInput.fx.val(fracx);\n attrInput.fy.val(fracy);\n grd.setAttribute('fx', fracx);\n grd.setAttribute('fy', fracy);\n xform();\n }\n\n evt.preventDefault();\n };\n\n const onCoordUp = function () {\n draggingCoord = null;\n $win.unbind('mousemove', onCoordDrag).unbind('mouseup', onCoordUp);\n };\n\n // Linear gradient\n // (function () {\n\n stops = curGradient.getElementsByTagNameNS(ns.svg, 'stop');\n\n let numstops = stops.length;\n // if there are not at least two stops, then\n if (numstops < 2) {\n while (numstops < 2) {\n curGradient.append(document.createElementNS(ns.svg, 'stop'));\n ++numstops;\n }\n stops = curGradient.getElementsByTagNameNS(ns.svg, 'stop');\n }\n\n for (let i = 0; i < numstops; i++) {\n mkStop(0, 0, 0, 0, stops[i]);\n }\n\n spreadMethodOpt.val(curGradient.getAttribute('spreadMethod') || 'pad');\n\n let offset;\n\n // No match, so show focus point\n showFocus = false;\n\n previewRect.setAttribute('fill-opacity', gradalpha / 100);\n\n $('#' + id + ' div.grad_coord').mousedown(function (evt) {\n evt.preventDefault();\n draggingCoord = $(this);\n // const sPos = draggingCoord.offset();\n offset = draggingCoord.parent().offset();\n $win.mousemove(onCoordDrag).mouseup(onCoordUp);\n });\n\n // bind GUI elements\n $('#' + id + '_jGraduate_Ok').bind('click', function () {\n $this.paint.type = curType;\n $this.paint[curType] = curGradient.cloneNode(true);\n $this.paint.solidColor = null;\n okClicked();\n });\n $('#' + id + '_jGraduate_Cancel').bind('click', function (paint) {\n cancelClicked();\n });\n\n if (curType === 'radialGradient') {\n if (showFocus) {\n focusCoord.show();\n } else {\n focusCoord.hide();\n attrInput.fx.val('');\n attrInput.fy.val('');\n }\n }\n\n $('#' + id + '_jGraduate_match_ctr')[0].checked = !showFocus;\n\n let lastfx, lastfy;\n\n $('#' + id + '_jGraduate_match_ctr').change(function () {\n showFocus = !this.checked;\n focusCoord.toggle(showFocus);\n attrInput.fx.val('');\n attrInput.fy.val('');\n const grd = curGradient;\n if (!showFocus) {\n lastfx = grd.getAttribute('fx');\n lastfy = grd.getAttribute('fy');\n grd.removeAttribute('fx');\n grd.removeAttribute('fy');\n } else {\n const fX = lastfx || 0.5;\n const fY = lastfy || 0.5;\n grd.setAttribute('fx', fX);\n grd.setAttribute('fy', fY);\n attrInput.fx.val(fX);\n attrInput.fy.val(fY);\n }\n });\n\n stops = curGradient.getElementsByTagNameNS(ns.svg, 'stop');\n numstops = stops.length;\n // if there are not at least two stops, then\n if (numstops < 2) {\n while (numstops < 2) {\n curGradient.append(document.createElementNS(ns.svg, 'stop'));\n ++numstops;\n }\n stops = curGradient.getElementsByTagNameNS(ns.svg, 'stop');\n }\n\n let slider;\n\n const setSlider = function (e) {\n const {offset: {left}} = slider;\n const div = slider.parent;\n let x = (e.pageX - left - parseInt(div.css('border-left-width')));\n if (x > SLIDERW) x = SLIDERW;\n if (x <= 0) x = 0;\n const posx = x - 5;\n x /= SLIDERW;\n\n switch (slider.type) {\n case 'radius':\n x = (x * 2) ** 2.5;\n if (x > 0.98 && x < 1.02) x = 1;\n if (x <= 0.01) x = 0.01;\n curGradient.setAttribute('r', x);\n break;\n case 'opacity':\n $this.paint.alpha = parseInt(x * 100);\n previewRect.setAttribute('fill-opacity', x);\n break;\n case 'ellip':\n scaleX = 1;\n scaleY = 1;\n if (x < 0.5) {\n x /= 0.5; // 0.001\n scaleX = x <= 0 ? 0.01 : x;\n } else if (x > 0.5) {\n x /= 0.5; // 2\n x = 2 - x;\n scaleY = x <= 0 ? 0.01 : x;\n }\n xform();\n x -= 1;\n if (scaleY === x + 1) {\n x = Math.abs(x);\n }\n break;\n case 'angle':\n x -= 0.5;\n angle = x *= 180;\n xform();\n x /= 100;\n break;\n }\n slider.elem.css({'margin-left': posx});\n x = Math.round(x * 100);\n slider.input.val(x);\n };\n\n let ellipVal = 0, angleVal = 0;\n\n if (curType === 'radialGradient') {\n const tlist = curGradient.gradientTransform.baseVal;\n if (tlist.numberOfItems === 2) {\n const t = tlist.getItem(0);\n const s = tlist.getItem(1);\n if (t.type === 2 && s.type === 3) {\n const m = s.matrix;\n if (m.a !== 1) {\n ellipVal = Math.round(-(1 - m.a) * 100);\n } else if (m.d !== 1) {\n ellipVal = Math.round((1 - m.d) * 100);\n }\n }\n } else if (tlist.numberOfItems === 3) {\n // Assume [R][T][S]\n const r = tlist.getItem(0);\n const t = tlist.getItem(1);\n const s = tlist.getItem(2);\n\n if (r.type === 4 &&\n t.type === 2 &&\n s.type === 3\n ) {\n angleVal = Math.round(r.angle);\n const m = s.matrix;\n if (m.a !== 1) {\n ellipVal = Math.round(-(1 - m.a) * 100);\n } else if (m.d !== 1) {\n ellipVal = Math.round((1 - m.d) * 100);\n }\n }\n }\n }\n\n const sliders = {\n radius: {\n handle: '#' + id + '_jGraduate_RadiusArrows',\n input: '#' + id + '_jGraduate_RadiusInput',\n val: (curGradient.getAttribute('r') || 0.5) * 100\n },\n opacity: {\n handle: '#' + id + '_jGraduate_OpacArrows',\n input: '#' + id + '_jGraduate_OpacInput',\n val: $this.paint.alpha || 100\n },\n ellip: {\n handle: '#' + id + '_jGraduate_EllipArrows',\n input: '#' + id + '_jGraduate_EllipInput',\n val: ellipVal\n },\n angle: {\n handle: '#' + id + '_jGraduate_AngleArrows',\n input: '#' + id + '_jGraduate_AngleInput',\n val: angleVal\n }\n };\n\n $.each(sliders, function (type, data) {\n const handle = $(data.handle);\n handle.mousedown(function (evt) {\n const parent = handle.parent();\n slider = {\n type,\n elem: handle,\n input: $(data.input),\n parent,\n offset: parent.offset()\n };\n $win.mousemove(dragSlider).mouseup(stopSlider);\n evt.preventDefault();\n });\n\n $(data.input).val(data.val).change(function () {\n const isRad = curType === 'radialGradient';\n let val = Number(this.value);\n let xpos = 0;\n switch (type) {\n case 'radius':\n if (isRad) curGradient.setAttribute('r', val / 100);\n xpos = (((val / 100) ** (1 / 2.5)) / 2) * SLIDERW;\n break;\n\n case 'opacity':\n $this.paint.alpha = val;\n previewRect.setAttribute('fill-opacity', val / 100);\n xpos = val * (SLIDERW / 100);\n break;\n\n case 'ellip':\n scaleX = scaleY = 1;\n if (val === 0) {\n xpos = SLIDERW * 0.5;\n break;\n }\n if (val > 99.5) val = 99.5;\n if (val > 0) {\n scaleY = 1 - (val / 100);\n } else {\n scaleX = -(val / 100) - 1;\n }\n\n xpos = SLIDERW * ((val + 100) / 2) / 100;\n if (isRad) xform();\n break;\n\n case 'angle':\n angle = val;\n xpos = angle / 180;\n xpos += 0.5;\n xpos *= SLIDERW;\n if (isRad) xform();\n }\n if (xpos > SLIDERW) {\n xpos = SLIDERW;\n } else if (xpos < 0) {\n xpos = 0;\n }\n handle.css({'margin-left': xpos - 5});\n }).change();\n });\n\n const dragSlider = function (evt) {\n setSlider(evt);\n evt.preventDefault();\n };\n\n const stopSlider = function (evt) {\n $win.unbind('mousemove', dragSlider).unbind('mouseup', stopSlider);\n slider = null;\n };\n\n // --------------\n let thisAlpha = ($this.paint.alpha * 255 / 100).toString(16);\n while (thisAlpha.length < 2) { thisAlpha = '0' + thisAlpha; }\n thisAlpha = thisAlpha.split('.')[0];\n color = $this.paint.solidColor === 'none' ? '' : $this.paint.solidColor + thisAlpha;\n\n if (!isSolid) {\n color = stops[0].getAttribute('stop-color');\n }\n\n // This should be done somewhere else, probably\n $.extend($.fn.jPicker.defaults.window, {\n alphaSupport: true, effects: {type: 'show', speed: 0}\n });\n\n colPicker.jPicker(\n {\n window: {title: $settings.window.pickerTitle},\n images: {clientPath: $settings.images.clientPath},\n color: {active: color, alphaSupport: true}\n },\n function (clr) {\n $this.paint.type = 'solidColor';\n $this.paint.alpha = clr.val('ahex') ? Math.round((clr.val('a') / 255) * 100) : 100;\n $this.paint.solidColor = clr.val('hex') ? clr.val('hex') : 'none';\n $this.paint.radialGradient = null;\n okClicked();\n },\n null,\n function () { cancelClicked(); }\n );\n\n const tabs = $(idref + ' .jGraduate_tabs li');\n tabs.click(function () {\n tabs.removeClass('jGraduate_tab_current');\n $(this).addClass('jGraduate_tab_current');\n $(idref + ' > div').hide();\n const type = $(this).attr('data-type');\n /* const container = */ $(idref + ' .jGraduate_gradPick').show();\n if (type === 'rg' || type === 'lg') {\n // Show/hide appropriate fields\n $('.jGraduate_' + type + '_field').show();\n $('.jGraduate_' + (type === 'lg' ? 'rg' : 'lg') + '_field').hide();\n\n $('#' + id + '_jgraduate_rect')[0].setAttribute('fill', 'url(#' + id + '_' + type + '_jgraduate_grad)');\n\n // Copy stops\n\n curType = type === 'lg' ? 'linearGradient' : 'radialGradient';\n\n $('#' + id + '_jGraduate_OpacInput').val($this.paint.alpha).change();\n\n const newGrad = $('#' + id + '_' + type + '_jgraduate_grad')[0];\n\n if (curGradient !== newGrad) {\n const curStops = $(curGradient).find('stop');\n $(newGrad).empty().append(curStops);\n curGradient = newGrad;\n const sm = spreadMethodOpt.val();\n curGradient.setAttribute('spreadMethod', sm);\n }\n showFocus = type === 'rg' && curGradient.getAttribute('fx') !== null && !(cx === fx && cy === fy);\n $('#' + id + '_jGraduate_focusCoord').toggle(showFocus);\n if (showFocus) {\n $('#' + id + '_jGraduate_match_ctr')[0].checked = false;\n }\n } else {\n $(idref + ' .jGraduate_gradPick').hide();\n $(idref + ' .jGraduate_colPick').show();\n }\n });\n $(idref + ' > div').hide();\n tabs.removeClass('jGraduate_tab_current');\n let tab;\n switch ($this.paint.type) {\n case 'linearGradient':\n tab = $(idref + ' .jGraduate_tab_lingrad');\n break;\n case 'radialGradient':\n tab = $(idref + ' .jGraduate_tab_radgrad');\n break;\n default:\n tab = $(idref + ' .jGraduate_tab_color');\n break;\n }\n $this.show();\n\n // jPicker will try to show after a 0ms timeout, so need to fire this after that\n setTimeout(() => {\n tab.addClass('jGraduate_tab_current').click();\n }, 10);\n });\n };\n return $;\n}\n","/* eslint-disable no-bitwise */\n/**\n * jPicker (Adapted from version 1.1.6)\n *\n * jQuery Plugin for Photoshop style color picker\n *\n * @module jPicker\n * @copyright (c) 2010 Christopher T. Tillman\n * Digital Magic Productions, Inc. ({@link http://www.digitalmagicpro.com/})\n * FREE to use, alter, copy, sell, and especially ENHANCE\n * @license MIT\n *\n * Painstakingly ported from John Dyers' excellent work on his own color picker based on the Prototype framework.\n *\n * John Dyers' website: {@link http://johndyer.name}\n * Color Picker page: {@link http://johndyer.name/photoshop-like-javascript-color-picker/}\n */\n\n/**\n* @external Math\n*/\n/**\n* @memberof external:Math\n* @param {Float} value\n* @param {Float} precision\n* @returns {Float}\n*/\nfunction toFixedNumeric (value, precision) {\n if (precision === undefined) precision = 0;\n return Math.round(value * (10 ** precision)) / (10 ** precision);\n}\n\n/**\n * Whether a value is `null` or `undefined`.\n * @param {any} val\n * @returns {boolean}\n */\nconst isNullish = (val) => {\n return val === null || val === undefined;\n};\n\n/**\n* @function module:jPicker.jPicker\n* @param {external:jQuery} $ The jQuery object to wrap (with {@link external:jQuery.loadingStylesheets}, {@link external:jQuery.fn.$.fn.jPicker}, {@link external:jQuery.fn.$.fn.jPicker.defaults})\n* @returns {external:jQuery}\n*/\nconst jPicker = function ($) {\n if (!$.loadingStylesheets) {\n /**\n * @name loadingStylesheets\n * @type {string[]}\n * @memberof external:jQuery\n */\n $.loadingStylesheets = [];\n }\n const stylesheet = 'jgraduate/css/jPicker.css';\n if (!$.loadingStylesheets.includes(stylesheet)) {\n $.loadingStylesheets.push(stylesheet);\n }\n /**\n * @typedef {PlainObject} module:jPicker.SliderOptions\n * @property {external:jQuery|PlainObject} arrow\n * @property {string} arrow.image Not in use?\n * @property {Float} arrow.width\n * @property {Float} arrow.height\n * @property {PlainObject} map\n * @property {Float} map.width\n * @property {Float} map.height\n */\n\n /**\n * Encapsulate slider functionality for the ColorMap and ColorBar -\n * could be useful to use a jQuery UI draggable for this with certain extensions.\n * @memberof module:jPicker\n * @param {external:jQuery} bar\n * @param {module:jPicker.SliderOptions} options\n * @returns {void}\n */\n class Slider {\n constructor (bar, options) {\n const that = this;\n /**\n * Fire events on the supplied `context`\n * @param {module:jPicker.JPickerInit} context\n * @returns {void}\n */\n function fireChangeEvents (context) {\n changeEvents.forEach((changeEvent) => {\n changeEvent.call(that, that, context);\n });\n }\n\n /**\n * Bind the mousedown to the bar not the arrow for quick snapping to the clicked location.\n * @param {external:jQuery.Event} e\n * @returns {void}\n */\n function mouseDown (e) {\n const off = bar.offset();\n offset = {l: off.left | 0, t: off.top | 0};\n clearTimeout(timeout);\n // using setTimeout for visual updates - once the style is updated the browser will re-render internally allowing the next Javascript to run\n timeout = setTimeout(function () {\n setValuesFromMousePosition.call(that, e);\n }, 0);\n // Bind mousemove and mouseup event to the document so it responds when dragged of of the bar - we will unbind these when on mouseup to save processing\n $(document).bind('mousemove', mouseMove).bind('mouseup', mouseUp);\n e.preventDefault(); // don't try to select anything or drag the image to the desktop\n }\n /**\n * Set the values as the mouse moves.\n * @param {external:jQuery.Event} e\n * @returns {false}\n */\n function mouseMove (e) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n setValuesFromMousePosition.call(that, e);\n }, 0);\n e.stopPropagation();\n e.preventDefault();\n return false;\n }\n /**\n * Unbind the document events - they aren't needed when not dragging.\n * @param {external:jQuery.Event} e\n * @returns {false}\n */\n function mouseUp (e) {\n $(document).unbind('mouseup', mouseUp).unbind('mousemove', mouseMove);\n e.stopPropagation();\n e.preventDefault();\n return false;\n }\n\n /**\n * Calculate mouse position and set value within the current range.\n * @param {Event} e\n * @returns {void}\n */\n function setValuesFromMousePosition (e) {\n const barW = bar.w, // local copies for YUI compressor\n barH = bar.h;\n let locX = e.pageX - offset.l,\n locY = e.pageY - offset.t;\n // keep the arrow within the bounds of the bar\n if (locX < 0) locX = 0;\n else if (locX > barW) locX = barW;\n if (locY < 0) locY = 0;\n else if (locY > barH) locY = barH;\n val.call(that, 'xy', {\n x: ((locX / barW) * rangeX) + minX,\n y: ((locY / barH) * rangeY) + minY\n });\n }\n /**\n *\n * @returns {void}\n */\n function draw () {\n const\n barW = bar.w,\n barH = bar.h,\n arrowW = arrow.w,\n arrowH = arrow.h;\n let arrowOffsetX = 0,\n arrowOffsetY = 0;\n setTimeout(function () {\n if (rangeX > 0) { // range is greater than zero\n // constrain to bounds\n if (x === maxX) arrowOffsetX = barW;\n else arrowOffsetX = ((x / rangeX) * barW) | 0;\n }\n if (rangeY > 0) { // range is greater than zero\n // constrain to bounds\n if (y === maxY) arrowOffsetY = barH;\n else arrowOffsetY = ((y / rangeY) * barH) | 0;\n }\n // if arrow width is greater than bar width, center arrow and prevent horizontal dragging\n if (arrowW >= barW) arrowOffsetX = (barW >> 1) - (arrowW >> 1); // number >> 1 - superfast bitwise divide by two and truncate (move bits over one bit discarding lowest)\n else arrowOffsetX -= arrowW >> 1;\n // if arrow height is greater than bar height, center arrow and prevent vertical dragging\n if (arrowH >= barH) arrowOffsetY = (barH >> 1) - (arrowH >> 1);\n else arrowOffsetY -= arrowH >> 1;\n // set the arrow position based on these offsets\n arrow.css({left: arrowOffsetX + 'px', top: arrowOffsetY + 'px'});\n });\n }\n\n /**\n * Get or set a value.\n * @param {?(\"xy\"|\"x\"|\"y\")} name\n * @param {module:math.XYObject} value\n * @param {module:jPicker.Slider} context\n * @returns {module:math.XYObject|Float|void}\n */\n function val (name, value, context) {\n const set = value !== undefined;\n if (!set) {\n if (isNullish(name)) name = 'xy';\n switch (name.toLowerCase()) {\n case 'x': return x;\n case 'y': return y;\n case 'xy':\n default: return {x, y};\n }\n }\n if (!isNullish(context) && context === that) return undefined;\n let changed = false;\n\n let newX, newY;\n if (isNullish(name)) name = 'xy';\n switch (name.toLowerCase()) {\n case 'x':\n newX = (value && ((value.x && value.x | 0) || value | 0)) || 0;\n break;\n case 'y':\n newY = (value && ((value.y && value.y | 0) || value | 0)) || 0;\n break;\n case 'xy':\n default:\n newX = (value && value.x && value.x | 0) || 0;\n newY = (value && value.y && value.y | 0) || 0;\n break;\n }\n if (!isNullish(newX)) {\n if (newX < minX) newX = minX;\n else if (newX > maxX) newX = maxX;\n if (x !== newX) {\n x = newX;\n changed = true;\n }\n }\n if (!isNullish(newY)) {\n if (newY < minY) newY = minY;\n else if (newY > maxY) newY = maxY;\n if (y !== newY) {\n y = newY;\n changed = true;\n }\n }\n changed && fireChangeEvents.call(that, context || that);\n return undefined;\n }\n\n /**\n * @typedef {PlainObject} module:jPicker.MinMaxRangeX\n * @property {Float} minX\n * @property {Float} maxX\n * @property {Float} rangeX\n */\n /**\n * @typedef {PlainObject} module:jPicker.MinMaxRangeY\n * @property {Float} minY\n * @property {Float} maxY\n * @property {Float} rangeY\n */\n /**\n * @typedef {module:jPicker.MinMaxRangeY|module:jPicker.MinMaxRangeX} module:jPicker.MinMaxRangeXY\n */\n\n /**\n *\n * @param {\"minx\"|\"maxx\"|\"rangex\"|\"miny\"|\"maxy\"|\"rangey\"|\"all\"} name\n * @param {module:jPicker.MinMaxRangeXY} value\n * @returns {module:jPicker.MinMaxRangeXY|module:jPicker.MinMaxRangeX|module:jPicker.MinMaxRangeY|void}\n */\n function range (name, value) {\n const set = value !== undefined;\n if (!set) {\n if (isNullish(name)) name = 'all';\n switch (name.toLowerCase()) {\n case 'minx': return minX;\n case 'maxx': return maxX;\n case 'rangex': return {minX, maxX, rangeX};\n case 'miny': return minY;\n case 'maxy': return maxY;\n case 'rangey': return {minY, maxY, rangeY};\n case 'all':\n default: return {minX, maxX, rangeX, minY, maxY, rangeY};\n }\n }\n let // changed = false,\n newMinX,\n newMaxX,\n newMinY,\n newMaxY;\n if (isNullish(name)) name = 'all';\n switch (name.toLowerCase()) {\n case 'minx':\n newMinX = (value && ((value.minX && value.minX | 0) || value | 0)) || 0;\n break;\n case 'maxx':\n newMaxX = (value && ((value.maxX && value.maxX | 0) || value | 0)) || 0;\n break;\n case 'rangex':\n newMinX = (value && value.minX && value.minX | 0) || 0;\n newMaxX = (value && value.maxX && value.maxX | 0) || 0;\n break;\n case 'miny':\n newMinY = (value && ((value.minY && value.minY | 0) || value | 0)) || 0;\n break;\n case 'maxy':\n newMaxY = (value && ((value.maxY && value.maxY | 0) || value | 0)) || 0;\n break;\n case 'rangey':\n newMinY = (value && value.minY && value.minY | 0) || 0;\n newMaxY = (value && value.maxY && value.maxY | 0) || 0;\n break;\n case 'all':\n default:\n newMinX = (value && value.minX && value.minX | 0) || 0;\n newMaxX = (value && value.maxX && value.maxX | 0) || 0;\n newMinY = (value && value.minY && value.minY | 0) || 0;\n newMaxY = (value && value.maxY && value.maxY | 0) || 0;\n break;\n }\n\n if (!isNullish(newMinX) && minX !== newMinX) {\n minX = newMinX;\n rangeX = maxX - minX;\n }\n if (!isNullish(newMaxX) && maxX !== newMaxX) {\n maxX = newMaxX;\n rangeX = maxX - minX;\n }\n if (!isNullish(newMinY) && minY !== newMinY) {\n minY = newMinY;\n rangeY = maxY - minY;\n }\n if (!isNullish(newMaxY) && maxY !== newMaxY) {\n maxY = newMaxY;\n rangeY = maxY - minY;\n }\n return undefined;\n }\n /**\n * @param {GenericCallback} callback\n * @returns {void}\n */\n function bind (callback) { // eslint-disable-line promise/prefer-await-to-callbacks\n if (typeof callback === 'function') changeEvents.push(callback);\n }\n /**\n * @param {GenericCallback} callback\n * @returns {void}\n */\n function unbind (callback) { // eslint-disable-line promise/prefer-await-to-callbacks\n if (typeof callback !== 'function') return;\n let i;\n while ((i = changeEvents.includes(callback))) changeEvents.splice(i, 1);\n }\n /**\n *\n * @returns {void}\n */\n function destroy () {\n // unbind all possible events and null objects\n $(document).unbind('mouseup', mouseUp).unbind('mousemove', mouseMove);\n bar.unbind('mousedown', mouseDown);\n bar = null;\n arrow = null;\n changeEvents = null;\n }\n let offset,\n timeout,\n x = 0,\n y = 0,\n minX = 0,\n maxX = 100,\n rangeX = 100,\n minY = 0,\n maxY = 100,\n rangeY = 100,\n arrow = bar.find('img:first'), // the arrow image to drag\n changeEvents = [];\n\n $.extend(\n true,\n // public properties, methods, and event bindings - these we need\n // to access from other controls\n that,\n {\n val,\n range,\n bind,\n unbind,\n destroy\n }\n );\n // initialize this control\n arrow.src = options.arrow && options.arrow.image;\n arrow.w = (options.arrow && options.arrow.width) || arrow.width();\n arrow.h = (options.arrow && options.arrow.height) || arrow.height();\n bar.w = (options.map && options.map.width) || bar.width();\n bar.h = (options.map && options.map.height) || bar.height();\n // bind mousedown event\n bar.bind('mousedown', mouseDown);\n bind.call(that, draw);\n }\n }\n\n /**\n * Controls for all the input elements for the typing in color values.\n * @param {external:jQuery} picker\n * @param {external:jQuery.jPicker.Color} color\n * @param {external:jQuery.fn.$.fn.jPicker} bindedHex\n * @param {Float} alphaPrecision\n */\n class ColorValuePicker {\n constructor (picker, color, bindedHex, alphaPrecision) {\n const that = this; // private properties and methods\n const inputs = picker.find('td.Text input');\n // input box key down - use arrows to alter color\n /**\n *\n * @param {Event} e\n * @returns {Event|false|void}\n */\n function keyDown (e) {\n if (e.target.value === '' && e.target !== hex.get(0) && ((!isNullish(bindedHex) && e.target !== bindedHex.get(0)) || isNullish(bindedHex))) return undefined;\n if (!validateKey(e)) return e;\n switch (e.target) {\n case red.get(0):\n switch (e.keyCode) {\n case 38:\n red.val(setValueInRange.call(that, (red.val() << 0) + 1, 0, 255));\n color.val('r', red.val(), e.target);\n return false;\n case 40:\n red.val(setValueInRange.call(that, (red.val() << 0) - 1, 0, 255));\n color.val('r', red.val(), e.target);\n return false;\n }\n break;\n case green.get(0):\n switch (e.keyCode) {\n case 38:\n green.val(setValueInRange.call(that, (green.val() << 0) + 1, 0, 255));\n color.val('g', green.val(), e.target);\n return false;\n case 40:\n green.val(setValueInRange.call(that, (green.val() << 0) - 1, 0, 255));\n color.val('g', green.val(), e.target);\n return false;\n }\n break;\n case blue.get(0):\n switch (e.keyCode) {\n case 38:\n blue.val(setValueInRange.call(that, (blue.val() << 0) + 1, 0, 255));\n color.val('b', blue.val(), e.target);\n return false;\n case 40:\n blue.val(setValueInRange.call(that, (blue.val() << 0) - 1, 0, 255));\n color.val('b', blue.val(), e.target);\n return false;\n }\n break;\n case alpha && alpha.get(0):\n switch (e.keyCode) {\n case 38:\n alpha.val(setValueInRange.call(that, parseFloat(alpha.val()) + 1, 0, 100));\n color.val('a', toFixedNumeric((alpha.val() * 255) / 100, alphaPrecision), e.target);\n return false;\n case 40:\n alpha.val(setValueInRange.call(that, parseFloat(alpha.val()) - 1, 0, 100));\n color.val('a', toFixedNumeric((alpha.val() * 255) / 100, alphaPrecision), e.target);\n return false;\n }\n break;\n case hue.get(0):\n switch (e.keyCode) {\n case 38:\n hue.val(setValueInRange.call(that, (hue.val() << 0) + 1, 0, 360));\n color.val('h', hue.val(), e.target);\n return false;\n case 40:\n hue.val(setValueInRange.call(that, (hue.val() << 0) - 1, 0, 360));\n color.val('h', hue.val(), e.target);\n return false;\n }\n break;\n case saturation.get(0):\n switch (e.keyCode) {\n case 38:\n saturation.val(setValueInRange.call(that, (saturation.val() << 0) + 1, 0, 100));\n color.val('s', saturation.val(), e.target);\n return false;\n case 40:\n saturation.val(setValueInRange.call(that, (saturation.val() << 0) - 1, 0, 100));\n color.val('s', saturation.val(), e.target);\n return false;\n }\n break;\n case value.get(0):\n switch (e.keyCode) {\n case 38:\n value.val(setValueInRange.call(that, (value.val() << 0) + 1, 0, 100));\n color.val('v', value.val(), e.target);\n return false;\n case 40:\n value.val(setValueInRange.call(that, (value.val() << 0) - 1, 0, 100));\n color.val('v', value.val(), e.target);\n return false;\n }\n break;\n }\n return undefined;\n }\n // input box key up - validate value and set color\n /**\n * @param {Event} e\n * @returns {Event|void}\n * @todo Why is this returning an event?\n */\n function keyUp (e) {\n if (e.target.value === '' && e.target !== hex.get(0) &&\n ((!isNullish(bindedHex) && e.target !== bindedHex.get(0)) ||\n isNullish(bindedHex))) return undefined;\n if (!validateKey(e)) return e;\n switch (e.target) {\n case red.get(0):\n red.val(setValueInRange.call(that, red.val(), 0, 255));\n color.val('r', red.val(), e.target);\n break;\n case green.get(0):\n green.val(setValueInRange.call(that, green.val(), 0, 255));\n color.val('g', green.val(), e.target);\n break;\n case blue.get(0):\n blue.val(setValueInRange.call(that, blue.val(), 0, 255));\n color.val('b', blue.val(), e.target);\n break;\n case alpha && alpha.get(0):\n alpha.val(setValueInRange.call(that, alpha.val(), 0, 100));\n color.val('a', toFixedNumeric((alpha.val() * 255) / 100, alphaPrecision), e.target);\n break;\n case hue.get(0):\n hue.val(setValueInRange.call(that, hue.val(), 0, 360));\n color.val('h', hue.val(), e.target);\n break;\n case saturation.get(0):\n saturation.val(setValueInRange.call(that, saturation.val(), 0, 100));\n color.val('s', saturation.val(), e.target);\n break;\n case value.get(0):\n value.val(setValueInRange.call(that, value.val(), 0, 100));\n color.val('v', value.val(), e.target);\n break;\n case hex.get(0):\n hex.val(hex.val().replace(/[^a-fA-F\\d]/g, '').toLowerCase().substring(0, 6));\n bindedHex && bindedHex.val(hex.val());\n color.val('hex', hex.val() !== '' ? hex.val() : null, e.target);\n break;\n case bindedHex && bindedHex.get(0):\n bindedHex.val(bindedHex.val().replace(/[^a-fA-F\\d]/g, '').toLowerCase().substring(0, 6));\n hex.val(bindedHex.val());\n color.val('hex', bindedHex.val() !== '' ? bindedHex.val() : null, e.target);\n break;\n case ahex && ahex.get(0):\n ahex.val(ahex.val().replace(/[^a-fA-F\\d]/g, '').toLowerCase().substring(0, 2));\n color.val('a', !isNullish(ahex.val()) ? parseInt(ahex.val(), 16) : null, e.target);\n break;\n }\n return undefined;\n }\n // input box blur - reset to original if value empty\n /**\n * @param {Event} e\n * @returns {void}\n */\n function blur (e) {\n if (!isNullish(color.val())) {\n switch (e.target) {\n case red.get(0): red.val(color.val('r')); break;\n case green.get(0): green.val(color.val('g')); break;\n case blue.get(0): blue.val(color.val('b')); break;\n case alpha && alpha.get(0): alpha.val(toFixedNumeric((color.val('a') * 100) / 255, alphaPrecision)); break;\n case hue.get(0): hue.val(color.val('h')); break;\n case saturation.get(0): saturation.val(color.val('s')); break;\n case value.get(0): value.val(color.val('v')); break;\n case hex.get(0):\n case bindedHex && bindedHex.get(0):\n hex.val(color.val('hex'));\n bindedHex && bindedHex.val(color.val('hex'));\n break;\n case ahex && ahex.get(0): ahex.val(color.val('ahex').substring(6)); break;\n }\n }\n }\n /**\n * @param {Event} e\n * @returns {boolean}\n */\n function validateKey (e) {\n switch (e.keyCode) {\n case 9:\n case 16:\n case 29:\n case 37:\n case 39:\n return false;\n case 'c'.charCodeAt():\n case 'v'.charCodeAt():\n if (e.ctrlKey) return false;\n }\n return true;\n }\n\n /**\n * Constrain value within range.\n * @param {Float|string} value\n * @param {Float} min\n * @param {Float} max\n * @returns {Float|string} Returns a number or numeric string\n */\n function setValueInRange (value, min, max) {\n if (value === '' || isNaN(value)) return min;\n if (value > max) return max;\n if (value < min) return min;\n return value;\n }\n /**\n * @param {external:jQuery} ui\n * @param {Element} context\n * @returns {void}\n */\n function colorChanged (ui, context) {\n const all = ui.val('all');\n if (context !== red.get(0)) red.val(!isNullish(all) ? all.r : '');\n if (context !== green.get(0)) green.val(!isNullish(all) ? all.g : '');\n if (context !== blue.get(0)) blue.val(!isNullish(all) ? all.b : '');\n if (alpha && context !== alpha.get(0)) alpha.val(!isNullish(all) ? toFixedNumeric((all.a * 100) / 255, alphaPrecision) : '');\n if (context !== hue.get(0)) hue.val(!isNullish(all) ? all.h : '');\n if (context !== saturation.get(0)) saturation.val(!isNullish(all) ? all.s : '');\n if (context !== value.get(0)) value.val(!isNullish(all) ? all.v : '');\n if (context !== hex.get(0) && ((bindedHex && context !== bindedHex.get(0)) || !bindedHex)) hex.val(!isNullish(all) ? all.hex : '');\n if (bindedHex && context !== bindedHex.get(0) && context !== hex.get(0)) bindedHex.val(!isNullish(all) ? all.hex : '');\n if (ahex && context !== ahex.get(0)) ahex.val(!isNullish(all) ? all.ahex.substring(6) : '');\n }\n /**\n * Unbind all events and null objects.\n * @returns {void}\n */\n function destroy () {\n red.add(green).add(blue).add(alpha).add(hue).add(saturation).add(value).add(hex).add(bindedHex).add(ahex).unbind('keyup', keyUp).unbind('blur', blur);\n red.add(green).add(blue).add(alpha).add(hue).add(saturation).add(value).unbind('keydown', keyDown);\n color.unbind(colorChanged);\n red = null;\n green = null;\n blue = null;\n alpha = null;\n hue = null;\n saturation = null;\n value = null;\n hex = null;\n ahex = null;\n }\n let\n red = inputs.eq(3),\n green = inputs.eq(4),\n blue = inputs.eq(5),\n alpha = inputs.length > 7 ? inputs.eq(6) : null,\n hue = inputs.eq(0),\n saturation = inputs.eq(1),\n value = inputs.eq(2),\n hex = inputs.eq(inputs.length > 7 ? 7 : 6),\n ahex = inputs.length > 7 ? inputs.eq(8) : null;\n $.extend(true, that, {\n // public properties and methods\n destroy\n });\n red.add(green).add(blue).add(alpha).add(hue).add(saturation).add(value).add(hex).add(bindedHex).add(ahex).bind('keyup', keyUp).bind('blur', blur);\n red.add(green).add(blue).add(alpha).add(hue).add(saturation).add(value).bind('keydown', keyDown);\n color.bind(colorChanged);\n }\n }\n\n /**\n * @typedef {PlainObject} module:jPicker.JPickerInit\n * @property {Integer} [a]\n * @property {Integer} [b]\n * @property {Integer} [g]\n * @property {Integer} [h]\n * @property {Integer} [r]\n * @property {Integer} [s]\n * @property {Integer} [v]\n * @property {string} [hex]\n * @property {string} [ahex]\n */\n\n /**\n * @namespace {PlainObject} jPicker\n * @memberof external:jQuery\n */\n $.jPicker = /** @lends external:jQuery.jPicker */ {\n /**\n * Array holding references to each active instance of the jPicker control\n * @type {external:jQuery.fn.$.fn.jPicker[]}\n */\n List: [],\n /**\n * Color object - we will be able to assign by any color space type or\n * retrieve any color space info.\n * We want this public so we can optionally assign new color objects to\n * initial values using inputs other than a string hex value (also supported)\n * Note: JSDoc didn't document when expressed here as an ES6 Class.\n * @namespace\n * @class\n * @memberof external:jQuery.jPicker\n * @param {module:jPicker.JPickerInit} init\n * @returns {external:jQuery.jPicker.Color}\n */\n Color: function (init) { // eslint-disable-line object-shorthand\n const that = this;\n /**\n *\n * @param {module:jPicker.Slider} context\n * @returns {void}\n */\n function fireChangeEvents (context) {\n for (let i = 0; i < changeEvents.length; i++) changeEvents[i].call(that, that, context);\n }\n\n /**\n * @param {string|\"ahex\"|\"hex\"|\"all\"|\"\"|null|void} name String composed of letters \"r\", \"g\", \"b\", \"a\", \"h\", \"s\", and/or \"v\"\n * @param {module:jPicker.RGBA|module:jPicker.JPickerInit|string} [value]\n * @param {external:jQuery.jPicker.Color} context\n * @returns {module:jPicker.JPickerInit|string|null|void}\n */\n function val (name, value, context) {\n // Kind of ugly\n const set = Boolean(value);\n if (set && value.ahex === '') value.ahex = '00000000';\n if (!set) {\n let ret;\n if (isNullish(name) || name === '') name = 'all';\n if (isNullish(r)) return null;\n switch (name.toLowerCase()) {\n case 'ahex': return ColorMethods.rgbaToHex({r, g, b, a});\n case 'hex': return val('ahex').substring(0, 6);\n case 'all': return {\n r, g, b, a, h, s, v,\n hex: val.call(that, 'hex'),\n ahex: val.call(that, 'ahex')\n };\n default: {\n ret = {};\n const nameLength = name.length;\n [...name].forEach((ch) => {\n switch (ch) {\n case 'r':\n if (nameLength === 1) ret = r;\n else ret.r = r;\n break;\n case 'g':\n if (nameLength === 1) ret = g;\n else ret.g = g;\n break;\n case 'b':\n if (nameLength === 1) ret = b;\n else ret.b = b;\n break;\n case 'a':\n if (nameLength === 1) ret = a;\n else ret.a = a;\n break;\n case 'h':\n if (nameLength === 1) ret = h;\n else ret.h = h;\n break;\n case 's':\n if (nameLength === 1) ret = s;\n else ret.s = s;\n break;\n case 'v':\n if (nameLength === 1) ret = v;\n else ret.v = v;\n break;\n }\n });\n }\n }\n return typeof ret === 'object' && !Object.keys(ret).length\n ? val.call(that, 'all')\n : ret;\n }\n if (!isNullish(context) && context === that) return undefined;\n if (isNullish(name)) name = '';\n\n let changed = false;\n if (isNullish(value)) {\n if (!isNullish(r)) {\n r = null;\n changed = true;\n }\n if (!isNullish(g)) {\n g = null;\n changed = true;\n }\n if (!isNullish(b)) {\n b = null;\n changed = true;\n }\n if (!isNullish(a)) {\n a = null;\n changed = true;\n }\n if (!isNullish(h)) {\n h = null;\n changed = true;\n }\n if (!isNullish(s)) {\n s = null;\n changed = true;\n }\n if (!isNullish(v)) {\n v = null;\n changed = true;\n }\n changed && fireChangeEvents.call(that, context || that);\n return undefined;\n }\n switch (name.toLowerCase()) {\n case 'ahex':\n case 'hex': {\n const ret = ColorMethods.hexToRgba((value && (value.ahex || value.hex)) || value || 'none');\n val.call(that, 'rgba', {\n r: ret.r,\n g: ret.g,\n b: ret.b,\n a: name === 'ahex'\n ? ret.a\n : !isNullish(a)\n ? a\n : 255\n }, context);\n break;\n } default: {\n if (value && (!isNullish(value.ahex) || !isNullish(value.hex))) {\n val.call(that, 'ahex', value.ahex || value.hex || '00000000', context);\n return undefined;\n }\n const newV = {};\n let rgb = false, hsv = false;\n if (value.r !== undefined && !name.includes('r')) name += 'r';\n if (value.g !== undefined && !name.includes('g')) name += 'g';\n if (value.b !== undefined && !name.includes('b')) name += 'b';\n if (value.a !== undefined && !name.includes('a')) name += 'a';\n if (value.h !== undefined && !name.includes('h')) name += 'h';\n if (value.s !== undefined && !name.includes('s')) name += 's';\n if (value.v !== undefined && !name.includes('v')) name += 'v';\n [...name].forEach((ch) => {\n switch (ch) {\n case 'r':\n if (hsv) return;\n rgb = true;\n newV.r = (value.r && value.r | 0) || (value | 0) || 0;\n if (newV.r < 0) newV.r = 0;\n else if (newV.r > 255) newV.r = 255;\n if (r !== newV.r) {\n ({r} = newV);\n changed = true;\n }\n break;\n case 'g':\n if (hsv) return;\n rgb = true;\n newV.g = (value && value.g && value.g | 0) || (value && value | 0) || 0;\n if (newV.g < 0) newV.g = 0;\n else if (newV.g > 255) newV.g = 255;\n if (g !== newV.g) {\n ({g} = newV);\n changed = true;\n }\n break;\n case 'b':\n if (hsv) return;\n rgb = true;\n newV.b = (value && value.b && value.b | 0) || (value && value | 0) || 0;\n if (newV.b < 0) newV.b = 0;\n else if (newV.b > 255) newV.b = 255;\n if (b !== newV.b) {\n ({b} = newV);\n changed = true;\n }\n break;\n case 'a':\n newV.a = value && !isNullish(value.a) ? value.a | 0 : value | 0;\n if (newV.a < 0) newV.a = 0;\n else if (newV.a > 255) newV.a = 255;\n if (a !== newV.a) {\n ({a} = newV);\n changed = true;\n }\n break;\n case 'h':\n if (rgb) return;\n hsv = true;\n newV.h = (value && value.h && value.h | 0) || (value && value | 0) || 0;\n if (newV.h < 0) newV.h = 0;\n else if (newV.h > 360) newV.h = 360;\n if (h !== newV.h) {\n ({h} = newV);\n changed = true;\n }\n break;\n case 's':\n if (rgb) return;\n hsv = true;\n newV.s = !isNullish(value.s) ? value.s | 0 : value | 0;\n if (newV.s < 0) newV.s = 0;\n else if (newV.s > 100) newV.s = 100;\n if (s !== newV.s) {\n ({s} = newV);\n changed = true;\n }\n break;\n case 'v':\n if (rgb) return;\n hsv = true;\n newV.v = !isNullish(value.v) ? value.v | 0 : value | 0;\n if (newV.v < 0) newV.v = 0;\n else if (newV.v > 100) newV.v = 100;\n if (v !== newV.v) {\n ({v} = newV);\n changed = true;\n }\n break;\n }\n });\n if (changed) {\n if (rgb) {\n r = r || 0;\n g = g || 0;\n b = b || 0;\n const ret = ColorMethods.rgbToHsv({r, g, b});\n ({h, s, v} = ret);\n } else if (hsv) {\n h = h || 0;\n s = !isNullish(s) ? s : 100;\n v = !isNullish(v) ? v : 100;\n const ret = ColorMethods.hsvToRgb({h, s, v});\n ({r, g, b} = ret);\n }\n a = !isNullish(a) ? a : 255;\n fireChangeEvents.call(that, context || that);\n }\n break;\n }\n }\n return undefined;\n }\n /**\n * @param {GenericCallback} callback\n * @returns {void}\n */\n function bind (callback) { // eslint-disable-line promise/prefer-await-to-callbacks\n if (typeof callback === 'function') changeEvents.push(callback);\n }\n /**\n * @param {GenericCallback} callback\n * @returns {void}\n */\n function unbind (callback) { // eslint-disable-line promise/prefer-await-to-callbacks\n if (typeof callback !== 'function') return;\n let i;\n while ((i = changeEvents.includes(callback))) {\n changeEvents.splice(i, 1);\n }\n }\n /**\n * Unset `changeEvents`\n * @returns {void}\n */\n function destroy () {\n changeEvents = null;\n }\n let r, g, b, a, h, s, v, changeEvents = [];\n\n $.extend(true, that, {\n // public properties and methods\n val,\n bind,\n unbind,\n destroy\n });\n if (init) {\n if (!isNullish(init.ahex)) {\n val('ahex', init);\n } else if (!isNullish(init.hex)) {\n val(\n (!isNullish(init.a) ? 'a' : '') + 'hex',\n !isNullish(init.a)\n ? {ahex: init.hex + ColorMethods.intToHex(init.a)}\n : init\n );\n } else if (!isNullish(init.r) && !isNullish(init.g) && !isNullish(init.b)) {\n val('rgb' + (!isNullish(init.a) ? 'a' : ''), init);\n } else if (!isNullish(init.h) && !isNullish(init.s) && !isNullish(init.v)) {\n val('hsv' + (!isNullish(init.a) ? 'a' : ''), init);\n }\n }\n },\n /**\n * color conversion methods - make public to give use to external scripts\n * @namespace\n */\n ColorMethods: {\n /**\n * @typedef {PlainObject} module:jPicker.RGBA\n * @property {Integer} r\n * @property {Integer} g\n * @property {Integer} b\n * @property {Integer} a\n */\n /**\n * @typedef {PlainObject} module:jPicker.RGB\n * @property {Integer} r\n * @property {Integer} g\n * @property {Integer} b\n */\n /**\n * @param {string} hex\n * @returns {module:jPicker.RGBA}\n */\n hexToRgba (hex) {\n if (hex === '' || hex === 'none') return {r: null, g: null, b: null, a: null};\n hex = this.validateHex(hex);\n let r = '00', g = '00', b = '00', a = '255';\n if (hex.length === 6) hex += 'ff';\n if (hex.length > 6) {\n r = hex.substring(0, 2);\n g = hex.substring(2, 4);\n b = hex.substring(4, 6);\n a = hex.substring(6, hex.length);\n } else {\n if (hex.length > 4) {\n r = hex.substring(4, hex.length);\n hex = hex.substring(0, 4);\n }\n if (hex.length > 2) {\n g = hex.substring(2, hex.length);\n hex = hex.substring(0, 2);\n }\n if (hex.length > 0) b = hex.substring(0, hex.length);\n }\n return {\n r: this.hexToInt(r), g: this.hexToInt(g), b: this.hexToInt(b), a: this.hexToInt(a)\n };\n },\n /**\n * @param {string} hex\n * @returns {string}\n */\n validateHex (hex) {\n // if (typeof hex === 'object') return '';\n hex = hex.toLowerCase().replace(/[^a-f\\d]/g, '');\n if (hex.length > 8) hex = hex.substring(0, 8);\n return hex;\n },\n /**\n * @param {module:jPicker.RGBA} rgba\n * @returns {string}\n */\n rgbaToHex (rgba) {\n return this.intToHex(rgba.r) + this.intToHex(rgba.g) + this.intToHex(rgba.b) + this.intToHex(rgba.a);\n },\n /**\n * @param {Integer} dec\n * @returns {string}\n */\n intToHex (dec) {\n let result = (dec | 0).toString(16);\n if (result.length === 1) result = ('0' + result);\n return result.toLowerCase();\n },\n /**\n * @param {string} hex\n * @returns {Integer}\n */\n hexToInt (hex) {\n return parseInt(hex, 16);\n },\n /**\n * @typedef {PlainObject} module:jPicker.HSV\n * @property {Integer} h\n * @property {Integer} s\n * @property {Integer} v\n */\n /**\n * @param {module:jPicker.RGB} rgb\n * @returns {module:jPicker.HSV}\n */\n rgbToHsv (rgb) {\n const r = rgb.r / 255, g = rgb.g / 255, b = rgb.b / 255, hsv = {h: 0, s: 0, v: 0};\n let min = 0, max = 0;\n if (r >= g && r >= b) {\n max = r;\n min = g > b ? b : g;\n } else if (g >= b && g >= r) {\n max = g;\n min = r > b ? b : r;\n } else {\n max = b;\n min = g > r ? r : g;\n }\n hsv.v = max;\n hsv.s = max ? (max - min) / max : 0;\n let delta;\n if (!hsv.s) hsv.h = 0;\n else {\n delta = max - min;\n if (r === max) hsv.h = (g - b) / delta;\n else if (g === max) hsv.h = 2 + (b - r) / delta;\n else hsv.h = 4 + (r - g) / delta;\n hsv.h = parseInt(hsv.h * 60);\n if (hsv.h < 0) hsv.h += 360;\n }\n hsv.s = (hsv.s * 100) | 0;\n hsv.v = (hsv.v * 100) | 0;\n return hsv;\n },\n /**\n * @param {module:jPicker.HSV} hsv\n * @returns {module:jPicker.RGB}\n */\n hsvToRgb (hsv) {\n const rgb = {r: 0, g: 0, b: 0, a: 100};\n let {h, s, v} = hsv;\n if (s === 0) {\n if (v === 0) rgb.r = rgb.g = rgb.b = 0;\n else rgb.r = rgb.g = rgb.b = (v * 255 / 100) | 0;\n } else {\n if (h === 360) h = 0;\n h /= 60;\n s /= 100;\n v /= 100;\n const i = h | 0,\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - (s * f)),\n t = v * (1 - (s * (1 - f)));\n switch (i) {\n case 0:\n rgb.r = v;\n rgb.g = t;\n rgb.b = p;\n break;\n case 1:\n rgb.r = q;\n rgb.g = v;\n rgb.b = p;\n break;\n case 2:\n rgb.r = p;\n rgb.g = v;\n rgb.b = t;\n break;\n case 3:\n rgb.r = p;\n rgb.g = q;\n rgb.b = v;\n break;\n case 4:\n rgb.r = t;\n rgb.g = p;\n rgb.b = v;\n break;\n case 5:\n rgb.r = v;\n rgb.g = p;\n rgb.b = q;\n break;\n }\n rgb.r = (rgb.r * 255) | 0;\n rgb.g = (rgb.g * 255) | 0;\n rgb.b = (rgb.b * 255) | 0;\n }\n return rgb;\n }\n }\n };\n const {Color, List, ColorMethods} = $.jPicker; // local copies for YUI compressor\n /**\n * @function external:jQuery.fn.jPicker\n * @see {@link external:jQuery.fn.$.fn.jPicker}\n */\n\n /**\n * Will be bound to active {@link jQuery.jPicker.Color}\n * @callback module:jPicker.LiveCallback\n * @param {external:jQuery} ui\n * @param {Element} context\n * @returns {void}\n */\n /**\n * @callback module:jPicker.CommitCallback\n * @param {external:jQuery.jPicker.Color} activeColor\n * @param {external:jQuery} okButton\n * @returns {void} Return value not used.\n */\n /**\n * @callback module:jPicker.CancelCallback\n * @param {external:jQuery.jPicker.Color} activeColor\n * @param {external:jQuery} cancelButton\n * @returns {void} Return value not used.\n */\n /**\n * While it would seem this should specify the name `jPicker` for JSDoc, that doesn't\n * get us treated as a function as well as a namespace (even with `@function name`),\n * so we use an approach to add a redundant `$.fn.` in the name.\n * @namespace\n * @memberof external:jQuery.fn\n * @param {external:jQuery.fn.jPickerOptions} options\n * @param {module:jPicker.CommitCallback} [commitCallback]\n * @param {module:jPicker.LiveCallback} [liveCallback]\n * @param {module:jPicker.CancelCallback} [cancelCallback]\n * @returns {external:jQuery}\n */\n $.fn.jPicker = function (options, commitCallback, liveCallback, cancelCallback) {\n return this.each(function () {\n const that = this,\n settings = $.extend(true, {}, $.fn.jPicker.defaults, options); // local copies for YUI compressor\n if ($(that).get(0).nodeName.toLowerCase() === 'input') { // Add color picker icon if binding to an input element and bind the events to the input\n $.extend(true, settings, {\n window: {\n bindToInput: true,\n expandable: true,\n input: $(that)\n }\n });\n if ($(that).val() === '') {\n settings.color.active = new Color({hex: null});\n settings.color.current = new Color({hex: null});\n } else if (ColorMethods.validateHex($(that).val())) {\n settings.color.active = new Color({hex: $(that).val(), a: settings.color.active.val('a')});\n settings.color.current = new Color({hex: $(that).val(), a: settings.color.active.val('a')});\n }\n }\n if (settings.window.expandable) {\n $(that).after('    ');\n } else {\n settings.window.liveUpdate = false; // Basic control binding for inline use - You will need to override the liveCallback or commitCallback function to retrieve results\n }\n const isLessThanIE7 = parseFloat(navigator.appVersion.split('MSIE')[1]) < 7 && document.body.filters; // needed to run the AlphaImageLoader function for IE6\n // set color mode and update visuals for the new color mode\n /**\n *\n * @param {\"h\"|\"s\"|\"v\"|\"r\"|\"g\"|\"b\"|\"a\"} colorMode\n * @throws {Error} Invalid mode\n * @returns {void}\n */\n function setColorMode (colorMode) {\n const {active} = color, // local copies for YUI compressor\n // {clientPath} = images,\n hex = active.val('hex');\n let rgbMap, rgbBar;\n settings.color.mode = colorMode;\n switch (colorMode) {\n case 'h':\n setTimeout(function () {\n setBG.call(that, colorMapDiv, 'transparent');\n setImgLoc.call(that, colorMapL1, 0);\n setAlpha.call(that, colorMapL1, 100);\n setImgLoc.call(that, colorMapL2, 260);\n setAlpha.call(that, colorMapL2, 100);\n setBG.call(that, colorBarDiv, 'transparent');\n setImgLoc.call(that, colorBarL1, 0);\n setAlpha.call(that, colorBarL1, 100);\n setImgLoc.call(that, colorBarL2, 260);\n setAlpha.call(that, colorBarL2, 100);\n setImgLoc.call(that, colorBarL3, 260);\n setAlpha.call(that, colorBarL3, 100);\n setImgLoc.call(that, colorBarL4, 260);\n setAlpha.call(that, colorBarL4, 100);\n setImgLoc.call(that, colorBarL6, 260);\n setAlpha.call(that, colorBarL6, 100);\n }, 0);\n colorMap.range('all', {minX: 0, maxX: 100, minY: 0, maxY: 100});\n colorBar.range('rangeY', {minY: 0, maxY: 360});\n if (isNullish(active.val('ahex'))) break;\n colorMap.val('xy', {x: active.val('s'), y: 100 - active.val('v')}, colorMap);\n colorBar.val('y', 360 - active.val('h'), colorBar);\n break;\n case 's':\n setTimeout(function () {\n setBG.call(that, colorMapDiv, 'transparent');\n setImgLoc.call(that, colorMapL1, -260);\n setImgLoc.call(that, colorMapL2, -520);\n setImgLoc.call(that, colorBarL1, -260);\n setImgLoc.call(that, colorBarL2, -520);\n setImgLoc.call(that, colorBarL6, 260);\n setAlpha.call(that, colorBarL6, 100);\n }, 0);\n colorMap.range('all', {minX: 0, maxX: 360, minY: 0, maxY: 100});\n colorBar.range('rangeY', {minY: 0, maxY: 100});\n if (isNullish(active.val('ahex'))) break;\n colorMap.val('xy', {x: active.val('h'), y: 100 - active.val('v')}, colorMap);\n colorBar.val('y', 100 - active.val('s'), colorBar);\n break;\n case 'v':\n setTimeout(function () {\n setBG.call(that, colorMapDiv, '000000');\n setImgLoc.call(that, colorMapL1, -780);\n setImgLoc.call(that, colorMapL2, 260);\n setBG.call(that, colorBarDiv, hex);\n setImgLoc.call(that, colorBarL1, -520);\n setImgLoc.call(that, colorBarL2, 260);\n setAlpha.call(that, colorBarL2, 100);\n setImgLoc.call(that, colorBarL6, 260);\n setAlpha.call(that, colorBarL6, 100);\n }, 0);\n colorMap.range('all', {minX: 0, maxX: 360, minY: 0, maxY: 100});\n colorBar.range('rangeY', {minY: 0, maxY: 100});\n if (isNullish(active.val('ahex'))) break;\n colorMap.val('xy', {x: active.val('h'), y: 100 - active.val('s')}, colorMap);\n colorBar.val('y', 100 - active.val('v'), colorBar);\n break;\n case 'r':\n rgbMap = -1040;\n rgbBar = -780;\n colorMap.range('all', {minX: 0, maxX: 255, minY: 0, maxY: 255});\n colorBar.range('rangeY', {minY: 0, maxY: 255});\n if (isNullish(active.val('ahex'))) break;\n colorMap.val('xy', {x: active.val('b'), y: 255 - active.val('g')}, colorMap);\n colorBar.val('y', 255 - active.val('r'), colorBar);\n break;\n case 'g':\n rgbMap = -1560;\n rgbBar = -1820;\n colorMap.range('all', {minX: 0, maxX: 255, minY: 0, maxY: 255});\n colorBar.range('rangeY', {minY: 0, maxY: 255});\n if (isNullish(active.val('ahex'))) break;\n colorMap.val('xy', {x: active.val('b'), y: 255 - active.val('r')}, colorMap);\n colorBar.val('y', 255 - active.val('g'), colorBar);\n break;\n case 'b':\n rgbMap = -2080;\n rgbBar = -2860;\n colorMap.range('all', {minX: 0, maxX: 255, minY: 0, maxY: 255});\n colorBar.range('rangeY', {minY: 0, maxY: 255});\n if (isNullish(active.val('ahex'))) break;\n colorMap.val('xy', {x: active.val('r'), y: 255 - active.val('g')}, colorMap);\n colorBar.val('y', 255 - active.val('b'), colorBar);\n break;\n case 'a':\n setTimeout(function () {\n setBG.call(that, colorMapDiv, 'transparent');\n setImgLoc.call(that, colorMapL1, -260);\n setImgLoc.call(that, colorMapL2, -520);\n setImgLoc.call(that, colorBarL1, 260);\n setImgLoc.call(that, colorBarL2, 260);\n setAlpha.call(that, colorBarL2, 100);\n setImgLoc.call(that, colorBarL6, 0);\n setAlpha.call(that, colorBarL6, 100);\n }, 0);\n colorMap.range('all', {minX: 0, maxX: 360, minY: 0, maxY: 100});\n colorBar.range('rangeY', {minY: 0, maxY: 255});\n if (isNullish(active.val('ahex'))) break;\n colorMap.val('xy', {x: active.val('h'), y: 100 - active.val('v')}, colorMap);\n colorBar.val('y', 255 - active.val('a'), colorBar);\n break;\n default:\n throw new Error('Invalid Mode');\n }\n switch (colorMode) {\n case 'h':\n break;\n case 's':\n case 'v':\n case 'a':\n setTimeout(function () {\n setAlpha.call(that, colorMapL1, 100);\n setAlpha.call(that, colorBarL1, 100);\n setImgLoc.call(that, colorBarL3, 260);\n setAlpha.call(that, colorBarL3, 100);\n setImgLoc.call(that, colorBarL4, 260);\n setAlpha.call(that, colorBarL4, 100);\n }, 0);\n break;\n case 'r':\n case 'g':\n case 'b':\n setTimeout(function () {\n setBG.call(that, colorMapDiv, 'transparent');\n setBG.call(that, colorBarDiv, 'transparent');\n setAlpha.call(that, colorBarL1, 100);\n setAlpha.call(that, colorMapL1, 100);\n setImgLoc.call(that, colorMapL1, rgbMap);\n setImgLoc.call(that, colorMapL2, rgbMap - 260);\n setImgLoc.call(that, colorBarL1, rgbBar - 780);\n setImgLoc.call(that, colorBarL2, rgbBar - 520);\n setImgLoc.call(that, colorBarL3, rgbBar);\n setImgLoc.call(that, colorBarL4, rgbBar - 260);\n setImgLoc.call(that, colorBarL6, 260);\n setAlpha.call(that, colorBarL6, 100);\n }, 0);\n break;\n }\n if (isNullish(active.val('ahex'))) return;\n activeColorChanged.call(that, active);\n }\n /**\n * Update color when user changes text values.\n * @param {external:jQuery} ui\n * @param {?module:jPicker.Slider} context\n * @returns {void}\n */\n function activeColorChanged (ui, context) {\n if (isNullish(context) || (context !== colorBar && context !== colorMap)) positionMapAndBarArrows.call(that, ui, context);\n setTimeout(function () {\n updatePreview.call(that, ui);\n updateMapVisuals.call(that, ui);\n updateBarVisuals.call(that, ui);\n }, 0);\n }\n\n /**\n * User has dragged the ColorMap pointer.\n * @param {external:jQuery} ui\n * @param {?module:jPicker.Slider} context\n * @returns {void}\n */\n function mapValueChanged (ui, context) {\n const {active} = color;\n if (context !== colorMap && isNullish(active.val())) return;\n const xy = ui.val('all');\n switch (settings.color.mode) {\n case 'h':\n active.val('sv', {s: xy.x, v: 100 - xy.y}, context);\n break;\n case 's':\n case 'a':\n active.val('hv', {h: xy.x, v: 100 - xy.y}, context);\n break;\n case 'v':\n active.val('hs', {h: xy.x, s: 100 - xy.y}, context);\n break;\n case 'r':\n active.val('gb', {g: 255 - xy.y, b: xy.x}, context);\n break;\n case 'g':\n active.val('rb', {r: 255 - xy.y, b: xy.x}, context);\n break;\n case 'b':\n active.val('rg', {r: xy.x, g: 255 - xy.y}, context);\n break;\n }\n }\n\n /**\n * User has dragged the ColorBar slider.\n * @param {external:jQuery} ui\n * @param {?module:jPicker.Slider} context\n * @returns {void}\n */\n function colorBarValueChanged (ui, context) {\n const {active} = color;\n if (context !== colorBar && isNullish(active.val())) return;\n switch (settings.color.mode) {\n case 'h':\n active.val('h', {h: 360 - ui.val('y')}, context);\n break;\n case 's':\n active.val('s', {s: 100 - ui.val('y')}, context);\n break;\n case 'v':\n active.val('v', {v: 100 - ui.val('y')}, context);\n break;\n case 'r':\n active.val('r', {r: 255 - ui.val('y')}, context);\n break;\n case 'g':\n active.val('g', {g: 255 - ui.val('y')}, context);\n break;\n case 'b':\n active.val('b', {b: 255 - ui.val('y')}, context);\n break;\n case 'a':\n active.val('a', 255 - ui.val('y'), context);\n break;\n }\n }\n\n /**\n * Position map and bar arrows to match current color.\n * @param {external:jQuery} ui\n * @param {?module:jPicker.Slider} context\n * @returns {void}\n */\n function positionMapAndBarArrows (ui, context) {\n if (context !== colorMap) {\n switch (settings.color.mode) {\n case 'h': {\n const sv = ui.val('sv');\n colorMap.val('xy', {x: !isNullish(sv) ? sv.s : 100, y: 100 - (!isNullish(sv) ? sv.v : 100)}, context);\n break;\n } case 's':\n // Fall through\n case 'a': {\n const hv = ui.val('hv');\n colorMap.val('xy', {x: (hv && hv.h) || 0, y: 100 - (!isNullish(hv) ? hv.v : 100)}, context);\n break;\n } case 'v': {\n const hs = ui.val('hs');\n colorMap.val('xy', {x: (hs && hs.h) || 0, y: 100 - (!isNullish(hs) ? hs.s : 100)}, context);\n break;\n } case 'r': {\n const bg = ui.val('bg');\n colorMap.val('xy', {x: (bg && bg.b) || 0, y: 255 - ((bg && bg.g) || 0)}, context);\n break;\n } case 'g': {\n const br = ui.val('br');\n colorMap.val('xy', {x: (br && br.b) || 0, y: 255 - ((br && br.r) || 0)}, context);\n break;\n } case 'b': {\n const rg = ui.val('rg');\n colorMap.val('xy', {x: (rg && rg.r) || 0, y: 255 - ((rg && rg.g) || 0)}, context);\n break;\n }\n }\n }\n if (context !== colorBar) {\n switch (settings.color.mode) {\n case 'h':\n colorBar.val('y', 360 - (ui.val('h') || 0), context);\n break;\n case 's': {\n const s = ui.val('s');\n colorBar.val('y', 100 - (!isNullish(s) ? s : 100), context);\n break;\n } case 'v': {\n const v = ui.val('v');\n colorBar.val('y', 100 - (!isNullish(v) ? v : 100), context);\n break;\n } case 'r':\n colorBar.val('y', 255 - (ui.val('r') || 0), context);\n break;\n case 'g':\n colorBar.val('y', 255 - (ui.val('g') || 0), context);\n break;\n case 'b':\n colorBar.val('y', 255 - (ui.val('b') || 0), context);\n break;\n case 'a': {\n const a = ui.val('a');\n colorBar.val('y', 255 - (!isNullish(a) ? a : 255), context);\n break;\n }\n }\n }\n }\n /**\n * @param {external:jQuery} ui\n * @returns {void}\n */\n function updatePreview (ui) {\n try {\n const all = ui.val('all');\n activePreview.css({backgroundColor: (all && '#' + all.hex) || 'transparent'});\n setAlpha.call(that, activePreview, (all && toFixedNumeric((all.a * 100) / 255, 4)) || 0);\n } catch (e) { }\n }\n /**\n * @param {external:jQuery} ui\n * @returns {void}\n */\n function updateMapVisuals (ui) {\n switch (settings.color.mode) {\n case 'h':\n setBG.call(that, colorMapDiv, new Color({h: ui.val('h') || 0, s: 100, v: 100}).val('hex'));\n break;\n case 's':\n case 'a': {\n const s = ui.val('s');\n setAlpha.call(that, colorMapL2, 100 - (!isNullish(s) ? s : 100));\n break;\n } case 'v': {\n const v = ui.val('v');\n setAlpha.call(that, colorMapL1, !isNullish(v) ? v : 100);\n break;\n } case 'r':\n setAlpha.call(that, colorMapL2, toFixedNumeric((ui.val('r') || 0) / 255 * 100, 4));\n break;\n case 'g':\n setAlpha.call(that, colorMapL2, toFixedNumeric((ui.val('g') || 0) / 255 * 100, 4));\n break;\n case 'b':\n setAlpha.call(that, colorMapL2, toFixedNumeric((ui.val('b') || 0) / 255 * 100));\n break;\n }\n const a = ui.val('a');\n setAlpha.call(that, colorMapL3, toFixedNumeric(((255 - (a || 0)) * 100) / 255, 4));\n }\n /**\n * @param {external:jQuery} ui\n * @returns {void}\n */\n function updateBarVisuals (ui) {\n switch (settings.color.mode) {\n case 'h': {\n const a = ui.val('a');\n setAlpha.call(that, colorBarL5, toFixedNumeric(((255 - (a || 0)) * 100) / 255, 4));\n break;\n } case 's': {\n const hva = ui.val('hva'),\n saturatedColor = new Color({h: (hva && hva.h) || 0, s: 100, v: !isNullish(hva) ? hva.v : 100});\n setBG.call(that, colorBarDiv, saturatedColor.val('hex'));\n setAlpha.call(that, colorBarL2, 100 - (!isNullish(hva) ? hva.v : 100));\n setAlpha.call(that, colorBarL5, toFixedNumeric(((255 - ((hva && hva.a) || 0)) * 100) / 255, 4));\n break;\n } case 'v': {\n const hsa = ui.val('hsa'),\n valueColor = new Color({h: (hsa && hsa.h) || 0, s: !isNullish(hsa) ? hsa.s : 100, v: 100});\n setBG.call(that, colorBarDiv, valueColor.val('hex'));\n setAlpha.call(that, colorBarL5, toFixedNumeric(((255 - ((hsa && hsa.a) || 0)) * 100) / 255, 4));\n break;\n } case 'r':\n case 'g':\n case 'b': {\n const rgba = ui.val('rgba');\n let hValue = 0, vValue = 0;\n if (settings.color.mode === 'r') {\n hValue = (rgba && rgba.b) || 0;\n vValue = (rgba && rgba.g) || 0;\n } else if (settings.color.mode === 'g') {\n hValue = (rgba && rgba.b) || 0;\n vValue = (rgba && rgba.r) || 0;\n } else if (settings.color.mode === 'b') {\n hValue = (rgba && rgba.r) || 0;\n vValue = (rgba && rgba.g) || 0;\n }\n const middle = vValue > hValue ? hValue : vValue;\n setAlpha.call(that, colorBarL2, hValue > vValue ? toFixedNumeric(((hValue - vValue) / (255 - vValue)) * 100, 4) : 0);\n setAlpha.call(that, colorBarL3, vValue > hValue ? toFixedNumeric(((vValue - hValue) / (255 - hValue)) * 100, 4) : 0);\n setAlpha.call(that, colorBarL4, toFixedNumeric((middle / 255) * 100, 4));\n setAlpha.call(that, colorBarL5, toFixedNumeric(((255 - ((rgba && rgba.a) || 0)) * 100) / 255, 4));\n break;\n } case 'a': {\n const a = ui.val('a');\n setBG.call(that, colorBarDiv, ui.val('hex') || '000000');\n setAlpha.call(that, colorBarL5, !isNullish(a) ? 0 : 100);\n setAlpha.call(that, colorBarL6, !isNullish(a) ? 100 : 0);\n break;\n }\n }\n }\n /**\n * @param {external:jQuery} el\n * @param {string} [c=\"transparent\"]\n * @returns {void}\n */\n function setBG (el, c) {\n el.css({backgroundColor: (c && c.length === 6 && '#' + c) || 'transparent'});\n }\n\n /**\n * @param {external:jQuery} img\n * @param {string} src The image source\n * @returns {void}\n */\n function setImg (img, src) {\n if (isLessThanIE7 && (src.includes('AlphaBar.png') || src.includes('Bars.png') || src.includes('Maps.png'))) {\n img.attr('pngSrc', src);\n img.css({backgroundImage: 'none', filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\\'' + src + '\\', sizingMethod=\\'scale\\')'});\n } else img.css({backgroundImage: 'url(\\'' + src + '\\')'});\n }\n /**\n * @param {external:jQuery} img\n * @param {Float} y\n * @returns {void}\n */\n function setImgLoc (img, y) {\n img.css({top: y + 'px'});\n }\n /**\n * @param {external:jQuery} obj\n * @param {Float} alpha\n * @returns {void}\n */\n function setAlpha (obj, alpha) {\n obj.css({visibility: alpha > 0 ? 'visible' : 'hidden'});\n if (alpha > 0 && alpha < 100) {\n if (isLessThanIE7) {\n const src = obj.attr('pngSrc');\n if (!isNullish(src) && (\n src.includes('AlphaBar.png') || src.includes('Bars.png') || src.includes('Maps.png')\n )) {\n obj.css({\n filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\\'' + src +\n '\\', sizingMethod=\\'scale\\') progid:DXImageTransform.Microsoft.Alpha(opacity=' + alpha + ')'\n });\n } else obj.css({opacity: toFixedNumeric(alpha / 100, 4)});\n } else obj.css({opacity: toFixedNumeric(alpha / 100, 4)});\n } else if (alpha === 0 || alpha === 100) {\n if (isLessThanIE7) {\n const src = obj.attr('pngSrc');\n if (!isNullish(src) && (\n src.includes('AlphaBar.png') || src.includes('Bars.png') || src.includes('Maps.png')\n )) {\n obj.css({\n filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\\'' + src +\n '\\', sizingMethod=\\'scale\\')'\n });\n } else obj.css({opacity: ''});\n } else obj.css({opacity: ''});\n }\n }\n\n /**\n * Revert color to original color when opened.\n * @returns {void}\n */\n function revertColor () {\n color.active.val('ahex', color.current.val('ahex'));\n }\n /**\n * Commit the color changes.\n * @returns {void}\n */\n function commitColor () {\n color.current.val('ahex', color.active.val('ahex'));\n }\n /**\n * @param {Event} e\n * @returns {void}\n */\n function radioClicked (e) {\n $(this).parents('tbody:first').find('input:radio[value!=\"' + e.target.value + '\"]').removeAttr('checked');\n setColorMode.call(that, e.target.value);\n }\n /**\n *\n * @returns {void}\n */\n function currentClicked () {\n revertColor.call(that);\n }\n /**\n *\n * @returns {void}\n */\n function cancelClicked () {\n revertColor.call(that);\n settings.window.expandable && hide.call(that);\n typeof cancelCallback === 'function' && cancelCallback.call(that, color.active, cancelButton);\n }\n /**\n *\n * @returns {void}\n */\n function okClicked () {\n commitColor.call(that);\n settings.window.expandable && hide.call(that);\n typeof commitCallback === 'function' && commitCallback.call(that, color.active, okButton);\n }\n /**\n *\n * @returns {void}\n */\n function iconImageClicked () {\n show.call(that);\n }\n /**\n * @param {external:jQuery} ui\n * @returns {void}\n */\n function currentColorChanged (ui) {\n const hex = ui.val('hex');\n currentPreview.css({backgroundColor: (hex && '#' + hex) || 'transparent'});\n setAlpha.call(that, currentPreview, toFixedNumeric(((ui.val('a') || 0) * 100) / 255, 4));\n }\n /**\n * @param {external:jQuery} ui\n * @returns {void}\n */\n function expandableColorChanged (ui) {\n const hex = ui.val('hex');\n const va = ui.val('va');\n iconColor.css({backgroundColor: (hex && '#' + hex) || 'transparent'});\n setAlpha.call(that, iconAlpha, toFixedNumeric(((255 - ((va && va.a) || 0)) * 100) / 255, 4));\n if (settings.window.bindToInput && settings.window.updateInputColor) {\n settings.window.input.css({\n backgroundColor: (hex && '#' + hex) || 'transparent',\n color: isNullish(va) || va.v > 75 ? '#000000' : '#ffffff'\n });\n }\n }\n /**\n * @param {Event} e\n * @returns {void}\n */\n function moveBarMouseDown (e) {\n // const {element} = settings.window, // local copies for YUI compressor\n // {page} = settings.window;\n elementStartX = parseInt(container.css('left'));\n elementStartY = parseInt(container.css('top'));\n pageStartX = e.pageX;\n pageStartY = e.pageY;\n // bind events to document to move window - we will unbind these on mouseup\n $(document).bind('mousemove', documentMouseMove).bind('mouseup', documentMouseUp);\n e.preventDefault(); // prevent attempted dragging of the column\n }\n /**\n * @param {Event} e\n * @returns {false}\n */\n function documentMouseMove (e) {\n container.css({\n left: elementStartX - (pageStartX - e.pageX) + 'px',\n top: elementStartY - (pageStartY - e.pageY) + 'px'\n });\n if (settings.window.expandable && !$.support.boxModel) {\n container.prev().css({\n left: container.css('left'),\n top: container.css('top')\n });\n }\n e.stopPropagation();\n e.preventDefault();\n return false;\n }\n /**\n * @param {Event} e\n * @returns {false}\n */\n function documentMouseUp (e) {\n $(document).unbind('mousemove', documentMouseMove).unbind('mouseup', documentMouseUp);\n e.stopPropagation();\n e.preventDefault();\n return false;\n }\n /**\n * @param {Event} e\n * @returns {false}\n */\n function quickPickClicked (e) {\n e.preventDefault();\n e.stopPropagation();\n color.active.val('ahex', $(this).attr('title') || null, e.target);\n return false;\n }\n /**\n *\n * @returns {void}\n */\n function show () {\n color.current.val('ahex', color.active.val('ahex'));\n /**\n *\n * @returns {void}\n */\n function attachIFrame () {\n if (!settings.window.expandable || $.support.boxModel) return;\n const table = container.find('table:first');\n container.before(''); +const iframe = $(''); iframe[0].src = frameBase + framePath + (location.href.includes('?') // ? location.href.replace(/\?(?.*)$/, '&$') diff --git a/editor/embedapi.js b/editor/embedapi.js index b712c637..b41a6e9b 100644 --- a/editor/embedapi.js +++ b/editor/embedapi.js @@ -1,5 +1,6 @@ /** -* Handles underlying communication between the embedding window and the editor frame +* Handles underlying communication between the embedding window and the +* editor frame. * @module EmbeddedSVGEdit */ @@ -36,7 +37,10 @@ function getCallbackSetter (funcName) { * avoid using JSON parsing (and its limitations) in the case * of same domain control. * @param {module:EmbeddedSVGEdit.EmbeddedSVGEdit} t The `this` value -* @param {JSON} data +* @param {PlainObject} data +* @param {JSON} data.result +* @param {string} data.error +* @param {Integer} data.id * @returns {void} */ function addCallback (t, {result, error, id: callbackID}) { diff --git a/editor/extensions/ext-arrows.js b/editor/extensions/ext-arrows.js index e8be7be0..7fad7f07 100644 --- a/editor/extensions/ext-arrows.js +++ b/editor/extensions/ext-arrows.js @@ -1,5 +1,5 @@ /** - * ext-arrows.js + * @file ext-arrows.js * * @license MIT * diff --git a/editor/extensions/ext-closepath.js b/editor/extensions/ext-closepath.js index 7482eb8e..47299d29 100644 --- a/editor/extensions/ext-closepath.js +++ b/editor/extensions/ext-closepath.js @@ -1,5 +1,5 @@ /** - * ext-closepath.js + * @file ext-closepath.js * * @license MIT * diff --git a/editor/extensions/ext-connector.js b/editor/extensions/ext-connector.js index c484d070..48284e6f 100644 --- a/editor/extensions/ext-connector.js +++ b/editor/extensions/ext-connector.js @@ -1,6 +1,6 @@ /* eslint-disable unicorn/no-fn-reference-in-iterator */ /** - * ext-connector.js + * @file ext-connector.js * * @license MIT * diff --git a/editor/extensions/ext-eyedropper.js b/editor/extensions/ext-eyedropper.js index 6dee99fa..49a23e8a 100644 --- a/editor/extensions/ext-eyedropper.js +++ b/editor/extensions/ext-eyedropper.js @@ -1,5 +1,5 @@ /** - * ext-eyedropper.js + * @file ext-eyedropper.js * * @license MIT * diff --git a/editor/extensions/ext-foreignobject.js b/editor/extensions/ext-foreignobject.js index c89e8ef9..31a83693 100644 --- a/editor/extensions/ext-foreignobject.js +++ b/editor/extensions/ext-foreignobject.js @@ -1,5 +1,5 @@ /** - * ext-foreignobject.js + * @file ext-foreignobject.js * * @license Apache-2.0 * diff --git a/editor/extensions/ext-grid.js b/editor/extensions/ext-grid.js index d7635493..cba3eb91 100644 --- a/editor/extensions/ext-grid.js +++ b/editor/extensions/ext-grid.js @@ -1,5 +1,5 @@ /** - * ext-grid.js + * @file ext-grid.js * * @license Apache-2.0 * diff --git a/editor/extensions/ext-helloworld.js b/editor/extensions/ext-helloworld.js index b36bf892..fbe2dfa4 100644 --- a/editor/extensions/ext-helloworld.js +++ b/editor/extensions/ext-helloworld.js @@ -1,5 +1,5 @@ /** - * ext-helloworld.js + * @file ext-helloworld.js * * @license MIT * diff --git a/editor/extensions/ext-imagelib.js b/editor/extensions/ext-imagelib.js index 3f216209..d78da7cf 100644 --- a/editor/extensions/ext-imagelib.js +++ b/editor/extensions/ext-imagelib.js @@ -1,5 +1,5 @@ /** - * ext-imagelib.js + * @file ext-imagelib.js * * @license MIT * @@ -22,8 +22,12 @@ export default { imagelibStrings.imgLibs = imagelibStrings.imgLibs.map(({name, url, description}) => { // Todo: Adopt some standard formatting library like `fluent.js` instead url = url + // Keep these regexes as is in prep. for switching to `u` flag + // which will require escaping + // eslint-disable-next-line unicorn/better-regex .replace(/\{path\}/g, extIconsPath) .replace( + // eslint-disable-next-line unicorn/better-regex /\{modularVersion\}/g, modularVersion ? (imagelibStrings.moduleEnding || '-es') @@ -75,8 +79,43 @@ export default { let transferStopped = false; let preview, submit; - // Receive `postMessage` data - window.addEventListener('message', async function ({origin, data: response}) { // eslint-disable-line no-shadow + /** + * Contains the SVG to insert. + * @typedef {PlainObject} ImageLibMessage + * @property {"imagelib"} namespace Required to distinguish from any other messages of app. + * @property {string} href Set to same value as previous `ImageLibMetaMessage` `id`. + * @property {string} data The response (as an SVG string or URL) + */ + + /** + * Used for setting meta-data before images are retrieved. + * @typedef {PlainObject} ImageLibMetaMessage + * @property {"imagelib"} namespace Required to distinguish from any other messages of app. + * @property {string} name If the subsequent response is an SVG string or if `preview_url` + * is present, will be used as the title for the preview image. When an + * SVG string is present, will default to the first ``'s contents or + * "(SVG #<Length of response>)" if none is present. Otherwise, if `preview_url` + * is present, will default to the empty string. Though `name` may be falsy, + * it is always expected to be present for meta messages. + * @property {string} id Identifier (the expected `href` for a subsequent response message); + * used for ensuring the subsequent response can be tied to this `ImageLibMetaMessage` object. + * @property {string} [preview_url] When import mode is multiple, used to set an image + * source along with the name/title. If the subsequent response is an SVG string + * and there is no `preview_url`, the default will just be to show the + * name/title. If the response is not an SVG string, the default will be to + * show that response (i.e., the URL). + * @property {string} entry Set automatically with div holding retrieving + * message (until ready to delete) + * @todo Should use a separate Map instead of `entry` + */ + + /** + * @param {PlainObject} cfg + * @param {string} cfg.origin + * @param {ImageLibMetaMessage|ImageLibMessage|string} cfg.data String is deprecated when parsed to JSON `ImageLibMessage` + * @returns {void} + */ + async function onMessage ({origin, data: response}) { // eslint-disable-line no-shadow if (!response || !['string', 'object'].includes(typeof response)) { // Do nothing return; @@ -150,7 +189,6 @@ export default { if (mode !== 'm') { await $.process_cancel(message); - // eslint-disable-next-line require-atomic-updates transferStopped = true; // Should a message be sent back to the frame? @@ -233,7 +271,7 @@ export default { $(this).html( $('<span>').append( $('<img>').attr('src', curMeta.preview_url), - document.createTextNode(title) + title ) ); } else { @@ -251,11 +289,9 @@ export default { } else { if (curMeta && curMeta.preview_url) { title = curMeta.name || ''; - } - if (curMeta && curMeta.preview_url) { entry = $('<span>').append( $('<img>').attr('src', curMeta.preview_url), - document.createTextNode(title) + title ); } else { entry = $('<img>').attr('src', response); @@ -286,7 +322,10 @@ export default { break; } } - }, true); + } + + // Receive `postMessage` data + window.addEventListener('message', onMessage, true); /** * @param {boolean} show @@ -346,7 +385,7 @@ export default { const allLibs = imagelibStrings.select_lib; const libOpts = $('<ul id=imglib_opts>').appendTo(browser); - const frame = $('<iframe/>').prependTo(browser).hide().wrap('<div id=lib_framewrap>'); + const frame = $('<iframe src="javascript:0"/>').prependTo(browser).hide().wrap('<div id=lib_framewrap>'); const header = $('<h1>').prependTo(browser).text(allLibs).css({ position: 'absolute', diff --git a/editor/extensions/ext-markers.js b/editor/extensions/ext-markers.js index 67f1509e..c521eff1 100644 --- a/editor/extensions/ext-markers.js +++ b/editor/extensions/ext-markers.js @@ -1,5 +1,5 @@ /** - * ext-markers.js + * @file ext-markers.js * * @license Apache-2.0 * diff --git a/editor/extensions/ext-mathjax.js b/editor/extensions/ext-mathjax.js index d4594bfd..f5fa0f0c 100644 --- a/editor/extensions/ext-mathjax.js +++ b/editor/extensions/ext-mathjax.js @@ -1,6 +1,6 @@ /* globals MathJax */ /** - * ext-mathjax.js + * @file ext-mathjax.js * * @license MIT * diff --git a/editor/extensions/ext-overview_window.js b/editor/extensions/ext-overview_window.js index d918e37c..8910c79d 100644 --- a/editor/extensions/ext-overview_window.js +++ b/editor/extensions/ext-overview_window.js @@ -1,5 +1,5 @@ /** - * ext-overview_window.js + * @file ext-overview_window.js * * @license MIT * @@ -14,7 +14,7 @@ export default { // https://code.google.com/p/chromium/issues/detail?id=565120. if (isChrome()) { const verIndex = navigator.userAgent.indexOf('Chrome/') + 7; - const chromeVersion = parseInt(navigator.userAgent.substring(verIndex)); + const chromeVersion = Number.parseInt(navigator.userAgent.substring(verIndex)); if (chromeVersion < 49) { return undefined; } @@ -37,12 +37,12 @@ export default { // Define dynamic animation of the view box. const updateViewBox = function () { - const portHeight = parseFloat($('#workarea').css('height')); - const portWidth = parseFloat($('#workarea').css('width')); + const portHeight = Number.parseFloat($('#workarea').css('height')); + const portWidth = Number.parseFloat($('#workarea').css('width')); const portX = $('#workarea').scrollLeft(); const portY = $('#workarea').scrollTop(); - const windowWidth = parseFloat($('#svgcanvas').css('width')); - const windowHeight = parseFloat($('#svgcanvas').css('height')); + const windowWidth = Number.parseFloat($('#svgcanvas').css('width')); + const windowHeight = Number.parseFloat($('#svgcanvas').css('height')); const overviewWidth = $('#overviewMiniView').attr('width'); const overviewHeight = $('#overviewMiniView').attr('height'); @@ -93,12 +93,12 @@ export default { // Set up the overview window as a controller for the view port. overviewWindowGlobals.viewBoxDragging = false; const updateViewPortFromViewBox = function () { - const windowWidth = parseFloat($('#svgcanvas').css('width')); - const windowHeight = parseFloat($('#svgcanvas').css('height')); + const windowWidth = Number.parseFloat($('#svgcanvas').css('width')); + const windowHeight = Number.parseFloat($('#svgcanvas').css('height')); const overviewWidth = $('#overviewMiniView').attr('width'); const overviewHeight = $('#overviewMiniView').attr('height'); - const viewBoxX = parseFloat($('#overview_window_view_box').css('left')); - const viewBoxY = parseFloat($('#overview_window_view_box').css('top')); + const viewBoxX = Number.parseFloat($('#overview_window_view_box').css('left')); + const viewBoxY = Number.parseFloat($('#overview_window_view_box').css('top')); const portX = viewBoxX / overviewWidth * windowWidth; const portY = viewBoxY / overviewHeight * windowHeight; @@ -118,8 +118,8 @@ export default { const mouseY = (evt.offsetY || evt.originalEvent.layerY); const overviewWidth = $('#overviewMiniView').attr('width'); const overviewHeight = $('#overviewMiniView').attr('height'); - const viewBoxWidth = parseFloat($('#overview_window_view_box').css('min-width')); - const viewBoxHeight = parseFloat($('#overview_window_view_box').css('min-height')); + const viewBoxWidth = Number.parseFloat($('#overview_window_view_box').css('min-width')); + const viewBoxHeight = Number.parseFloat($('#overview_window_view_box').css('min-height')); let viewBoxX = mouseX - 0.5 * viewBoxWidth; let viewBoxY = mouseY - 0.5 * viewBoxHeight; diff --git a/editor/extensions/ext-panning.js b/editor/extensions/ext-panning.js index 0b8e2251..2a581b75 100644 --- a/editor/extensions/ext-panning.js +++ b/editor/extensions/ext-panning.js @@ -1,5 +1,5 @@ /** - * ext-panning.js + * @file ext-panning.js * * @license MIT * diff --git a/editor/extensions/ext-placemark.js b/editor/extensions/ext-placemark.js index 34c095ae..55d7e398 100644 --- a/editor/extensions/ext-placemark.js +++ b/editor/extensions/ext-placemark.js @@ -1,5 +1,5 @@ /** - * ext-placemark.js + * @file ext-placemark.js * * * @copyright 2010 CloudCanvas, Inc. All rights reserved @@ -106,7 +106,7 @@ export default { */ function updateFont (font) { font = font.split(' '); - const fontSize = parseInt(font.pop()); + const fontSize = Number.parseInt(font.pop()); font = font.join(' '); selElems.forEach((elem) => { if (elem && elem.getAttribute('class').includes('placemark')) { @@ -356,7 +356,7 @@ export default { const id = svgCanvas.getNextId(); const items = $('#placemarkText').val().split(';'); let font = $('#placemarkFont').val().split(' '); - const fontSize = parseInt(font.pop()); + const fontSize = Number.parseInt(font.pop()); font = font.join(' '); const x0 = opts.start_x + 10, y0 = opts.start_y + 10; let maxlen = 0; diff --git a/editor/extensions/ext-polygon.js b/editor/extensions/ext-polygon.js index 88a2b327..df026dd7 100644 --- a/editor/extensions/ext-polygon.js +++ b/editor/extensions/ext-polygon.js @@ -1,5 +1,5 @@ /** - * ext-polygon.js + * @file ext-polygon.js * * * @copyright 2010 CloudCanvas, Inc. All rights reserved diff --git a/editor/extensions/ext-server_moinsave.js b/editor/extensions/ext-server_moinsave.js index ba452a6c..6725c255 100644 --- a/editor/extensions/ext-server_moinsave.js +++ b/editor/extensions/ext-server_moinsave.js @@ -1,5 +1,5 @@ /** - * ext-server_moinsave.js + * @file ext-server_moinsave.js * * @license (MIT OR GPL-2.0-or-later) * @@ -22,14 +22,14 @@ export default { // with `getBBox` in browser.js `supportsPathBBox_`) /* const target = */ $( `<iframe name="output_frame" title="${strings.hiddenframe}" - style="width: 0; height: 0;" src="#"/>` + style="width: 0; height: 0;" src="data:text/html;base64,PGh0bWw+PC9odG1sPg=="/>` ).appendTo('body'); svgEditor.setCustomHandlers({ async save (win, data) { const svg = '<?xml version="1.0"?>\n' + data; - const qstr = $.param.querystring(); - const [, name] = qstr.substr(9).split('/+get/'); + const {pathname} = new URL(location); + const name = pathname.replace(/\/+get\//, ''); const svgData = encode64(svg); if (!$('#export_canvas').length) { $('<canvas>', {id: 'export_canvas'}).hide().appendTo('body'); diff --git a/editor/extensions/ext-server_opensave.js b/editor/extensions/ext-server_opensave.js index e5a2adfd..86149dd6 100644 --- a/editor/extensions/ext-server_opensave.js +++ b/editor/extensions/ext-server_opensave.js @@ -1,5 +1,5 @@ /** - * ext-server_opensave.js + * @file ext-server_opensave.js * * @license MIT * @@ -74,7 +74,7 @@ export default { // with `getBBox` in browser.js `supportsPathBBox_`) $( `<iframe name="output_frame" title="${strings.hiddenframe}" - style="width: 0; height: 0;" src="#"/>` + style="width: 0; height: 0;" src="data:text/html;base64,PGh0bWw+"/>` ).appendTo('body'); svgEditor.setCustomHandlers({ save (win, data) { diff --git a/editor/extensions/ext-shapes.js b/editor/extensions/ext-shapes.js index 8c9b4940..49084bde 100644 --- a/editor/extensions/ext-shapes.js +++ b/editor/extensions/ext-shapes.js @@ -1,5 +1,5 @@ /** - * ext-shapes.js + * @file ext-shapes.js * * @license MIT * diff --git a/editor/extensions/ext-star.js b/editor/extensions/ext-star.js index 1427c549..c1042360 100644 --- a/editor/extensions/ext-star.js +++ b/editor/extensions/ext-star.js @@ -1,5 +1,5 @@ /** - * ext-star.js + * @file ext-star.js * * * @copyright 2010 CloudCanvas, Inc. All rights reserved diff --git a/editor/extensions/ext-storage.js b/editor/extensions/ext-storage.js index e35d36b8..98a2b266 100644 --- a/editor/extensions/ext-storage.js +++ b/editor/extensions/ext-storage.js @@ -1,5 +1,5 @@ /** - * ext-storage.js + * @file ext-storage.js * * This extension allows automatic saving of the SVG canvas contents upon * page unload (which can later be automatically retrieved upon future @@ -8,18 +8,17 @@ * The functionality was originally part of the SVG Editor, but moved to a * separate extension to make the setting behavior optional, and adapted * to inform the user of its setting of local data. - * Dependencies: * - * 1. jQuery BBQ (for deparam) * @license MIT * * @copyright 2010 Brett Zamir - * @todo Revisit on whether to use $.pref over directly setting curConfig in all - * extensions for a more public API (not only for extPath and imagePath, - * but other currently used config in the extensions) + * @todo Revisit on whether to use `svgEditor.pref` over directly setting + * `curConfig` in all extensions for a more public API (not only for `extPath` + * and `imagePath`, but other currently used config in the extensions) * @todo We might provide control of storage settings through the UI besides the * initial (or URL-forced) dialog. * */ + export default { name: 'storage', init ({$}) { @@ -41,7 +40,7 @@ export default { // would thereby be set with an empty value, erasing any of the // user's prior work. To change this behavior so that no use of storage // or adding of new storage takes place regardless of settings, set - // the "noStorageOnLoad" config setting to true in svgedit-config-iife.js. + // the "noStorageOnLoad" config setting to true in svgedit-config-*.js. noStorageOnLoad, forceStorage } = svgEditor.curConfig; @@ -51,6 +50,7 @@ export default { * Replace `storagePrompt` parameter within URL. * @param {string} val * @returns {void} + * @todo Replace the string manipulation with `searchParams.set` */ function replaceStoragePrompt (val) { val = val ? 'storagePrompt=' + val : ''; @@ -166,7 +166,7 @@ export default { return { name: 'storage', async langReady ({importLocale}) { - const {storagePrompt} = $.deparam.querystring(true); + const storagePrompt = new URL(top.location).searchParams.get('storagePrompt'); const confirmSetStorage = await importLocale(); const { @@ -190,13 +190,13 @@ export default { // If the URL has been explicitly set to always prompt the // user (e.g., so one can be pointed to a URL where one // can alter one's settings, say to prevent future storage)... - storagePrompt === true || + storagePrompt === 'true' || ( // ...or...if the URL at least doesn't explicitly prevent a // storage prompt (as we use for users who // don't want to set cookies at all but who don't want // continual prompts about it)... - storagePrompt !== false && + storagePrompt !== 'false' && // ...and this user hasn't previously indicated a desire for storage !document.cookie.match(/(?:^|;\s*)svgeditstore=(?:prefsAndContent|prefsOnly)/) ) @@ -247,13 +247,12 @@ export default { // doesn't even want to remember their not wanting // storage, so we don't set the cookie or continue on with // setting storage on beforeunload - // eslint-disable-next-line require-atomic-updates document.cookie = 'svgeditstore=' + encodeURIComponent(pref) + '; expires=Fri, 31 Dec 9999 23:59:59 GMT'; // 'prefsAndContent' | 'prefsOnly' // If the URL was configured to always insist on a prompt, if // the user does indicate a wish to store their info, we // don't want ask them again upon page refresh so move // them instead to a URL which does not always prompt - if (storagePrompt === true && checked) { + if (storagePrompt === 'true' && checked) { replaceStoragePrompt(); return; } diff --git a/editor/extensions/ext-webappfind.js b/editor/extensions/ext-webappfind.js index 434d6cff..4eb86c08 100644 --- a/editor/extensions/ext-webappfind.js +++ b/editor/extensions/ext-webappfind.js @@ -1,5 +1,6 @@ /** -* Depends on Firefox add-on and executables from {@link https://github.com/brettz9/webappfind} +* Depends on Firefox add-on and executables from +* {@link https://github.com/brettz9/webappfind}. * @author Brett Zamir * @license MIT * @todo See WebAppFind Readme for SVG-related todos @@ -19,7 +20,9 @@ export default { 'message', /** * @param {external:Window} win - * @param {module:svgcanvas.SvgCanvas#event:message} data + * @param {PlainObject} info + * @param {module:svgcanvas.SvgCanvas#event:message} info.data + * @param {string} info.origin * @listens module:svgcanvas.SvgCanvas#event:message * @throws {Error} Unexpected event type * @returns {void} diff --git a/editor/extensions/ext-xdomain-messaging.js b/editor/extensions/ext-xdomain-messaging.js index 527d5a61..78b3144a 100644 --- a/editor/extensions/ext-xdomain-messaging.js +++ b/editor/extensions/ext-xdomain-messaging.js @@ -1,7 +1,7 @@ /** * Should not be needed for same domain control (just call via child frame), * but an API common for cross-domain and same domain use can be found -* in embedapi.js with a demo at embedapi.html +* in embedapi.js with a demo at embedapi.html. */ export default { name: 'xdomain-messaging', diff --git a/editor/extensions/imagelib/index-es.html b/editor/extensions/imagelib/index-es.html index 420fe50b..3e782dee 100644 --- a/editor/extensions/imagelib/index-es.html +++ b/editor/extensions/imagelib/index-es.html @@ -6,8 +6,8 @@ <link rel="icon" type="image/png" href="../../images/logo.png" /> <!-- Lacking browser support --> - <script nomodule="" src="redirect-on-no-module-support.js"></script> - <script type="module" src="redirect-on-lacking-support.js"></script> + <script nomodule="" src="../../redirect-on-no-module-support.js"></script> + <script type="module" src="../../redirect-on-lacking-support.js"></script> <!-- As yet no ES6 --> <script src="../../jquery.min.js"></script> diff --git a/editor/extensions/imagelib/index.html b/editor/extensions/imagelib/index.html index 803f178d..12a0c89e 100644 --- a/editor/extensions/imagelib/index.html +++ b/editor/extensions/imagelib/index.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<!-- AUTO-GENERATED FROM imagelib/index-es.html; DO NOT EDIT; use build-html.js to build --> +<!-- AUTO-GENERATED FROM imagelib/index-es.html; DO NOT EDIT; use build/build-html.js to build --> <html> <head> <meta charset="utf-8" /> @@ -7,8 +7,8 @@ <link rel="icon" type="image/png" href="../../images/logo.png" /> <!-- Lacking browser support --> - - <script type="module" src="redirect-on-lacking-support.js"></script> + <script nomodule="" src="../../redirect-on-no-module-support.js"></script> + <script type="module" src="../../redirect-on-lacking-support.js"></script> <!-- As yet no ES6 --> <script src="../../jquery.min.js"></script> diff --git a/editor/extensions/imagelib/openclipart-es.html b/editor/extensions/imagelib/openclipart-es.html index a1bab9d9..604a84e9 100644 --- a/editor/extensions/imagelib/openclipart-es.html +++ b/editor/extensions/imagelib/openclipart-es.html @@ -6,8 +6,8 @@ <link rel="icon" type="image/png" href="../../images/logo.png" /> <!-- Lacking browser support --> - <script nomodule="" src="redirect-on-no-module-support.js"></script> - <script type="module" src="redirect-on-lacking-support.js"></script> + <script nomodule="" src="../../redirect-on-no-module-support.js"></script> + <script type="module" src="../../redirect-on-lacking-support.js"></script> <!-- Browser polyfills --> <script src="../../external/dom-polyfill/dom-polyfill.js"></script> diff --git a/editor/extensions/imagelib/openclipart.html b/editor/extensions/imagelib/openclipart.html index ee6dae45..78616166 100644 --- a/editor/extensions/imagelib/openclipart.html +++ b/editor/extensions/imagelib/openclipart.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<!-- AUTO-GENERATED FROM imagelib/openclipart-es.html; DO NOT EDIT; use build-html.js to build --> +<!-- AUTO-GENERATED FROM imagelib/openclipart-es.html; DO NOT EDIT; use build/build-html.js to build --> <html lang="en" dir="ltr"> <head> <meta charset="utf-8" /> @@ -7,8 +7,8 @@ <link rel="icon" type="image/png" href="../../images/logo.png" /> <!-- Lacking browser support --> - - <script type="module" src="redirect-on-lacking-support.js"></script> + <script nomodule="" src="../../redirect-on-no-module-support.js"></script> + <script type="module" src="../../redirect-on-lacking-support.js"></script> <!-- Browser polyfills --> <script src="../../../dist/dom-polyfill.js"></script> diff --git a/editor/external/core-js-bundle/minified.js b/editor/external/core-js-bundle/minified.js index 83cf5c5e..8a0e9196 100644 --- a/editor/external/core-js-bundle/minified.js +++ b/editor/external/core-js-bundle/minified.js @@ -1,12 +1,12 @@ /** - * core-js 3.6.0 + * core-js 3.6.4 * https://github.com/zloirock/core-js * License: http://rock.mit-license.org - * © 2019 Denis Pushkarev (zloirock.ru) + * © 2020 Denis Pushkarev (zloirock.ru) */ -!function(qt){"use strict";function __webpack_require__(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,__webpack_require__),r.l=!0,r.exports}var e,n;n={},__webpack_require__.m=e=[function(t,r,e){e(1),e(62),e(63),e(64),e(65),e(66),e(67),e(68),e(69),e(70),e(71),e(72),e(73),e(74),e(75),e(76),e(81),e(84),e(86),e(88),e(89),e(90),e(91),e(93),e(94),e(96),e(105),e(106),e(107),e(108),e(116),e(117),e(119),e(120),e(121),e(123),e(124),e(125),e(126),e(127),e(128),e(130),e(131),e(132),e(133),e(140),e(141),e(143),e(144),e(145),e(149),e(150),e(152),e(153),e(155),e(156),e(157),e(158),e(159),e(160),e(167),e(169),e(170),e(171),e(173),e(174),e(176),e(177),e(179),e(180),e(181),e(182),e(183),e(184),e(185),e(186),e(187),e(188),e(189),e(192),e(193),e(195),e(197),e(198),e(199),e(200),e(201),e(203),e(205),e(207),e(208),e(210),e(211),e(213),e(214),e(215),e(216),e(218),e(219),e(220),e(221),e(222),e(223),e(224),e(226),e(227),e(228),e(229),e(230),e(231),e(232),e(233),e(234),e(235),e(237),e(238),e(239),e(240),e(249),e(250),e(251),e(252),e(253),e(254),e(255),e(256),e(257),e(258),e(259),e(260),e(261),e(262),e(263),e(264),e(268),e(270),e(271),e(272),e(273),e(274),e(275),e(277),e(280),e(281),e(282),e(283),e(287),e(288),e(290),e(291),e(292),e(293),e(294),e(295),e(296),e(297),e(299),e(300),e(301),e(304),e(305),e(306),e(307),e(308),e(309),e(310),e(311),e(312),e(313),e(314),e(315),e(316),e(322),e(323),e(324),e(325),e(326),e(327),e(328),e(329),e(330),e(331),e(332),e(333),e(334),e(335),e(336),e(337),e(338),e(339),e(340),e(341),e(342),e(343),e(344),e(345),e(346),e(347),e(348),e(349),e(350),e(351),e(352),e(353),e(354),e(355),e(357),e(358),e(359),e(360),e(361),e(362),e(364),e(366),e(367),e(369),e(370),e(371),e(373),e(374),e(375),e(376),e(377),e(378),e(379),e(380),e(382),e(383),e(384),e(385),e(387),e(388),e(389),e(390),e(391),e(392),e(393),e(394),e(395),e(396),e(397),e(398),e(399),e(401),e(404),e(405),e(406),e(407),e(409),e(410),e(412),e(413),e(414),e(415),e(416),e(417),e(419),e(420),e(421),e(422),e(424),e(425),e(426),e(427),e(428),e(430),e(431),e(432),e(433),e(434),e(435),e(436),e(437),e(438),e(439),e(440),e(442),e(443),e(444),e(445),e(446),e(447),e(448),e(450),e(451),e(452),e(453),e(454),e(455),e(456),e(457),e(458),e(460),e(461),e(462),e(464),e(465),e(466),e(467),e(468),e(469),e(470),e(471),e(472),e(473),e(474),e(475),e(476),e(477),e(478),e(479),e(480),e(481),e(482),e(483),e(484),e(485),e(486),e(487),e(488),e(489),e(490),e(491),e(492),e(493),e(494),e(495),e(497),e(498),e(499),e(500),e(501),e(505),t.exports=e(504)},function(t,r,e){var n=e(2),o=e(3),i=e(34),a=e(29),u=e(5),c=e(45),f=e(46),s=e(6),l=e(15),p=e(47),h=e(14),g=e(20),v=e(48),d=e(9),y=e(13),m=e(8),b=e(49),x=e(51),w=e(36),S=e(53),A=e(43),I=e(4),E=e(19),O=e(7),M=e(18),R=e(21),T=e(28),_=e(27),j=e(31),k=e(30),P=e(54),F=e(55),N=e(56),L=e(57),U=e(25),D=e(58).forEach,C=_("hidden"),B="Symbol",q="prototype",z=P("toPrimitive"),W=U.set,V=U.getterFor(B),G=Object[q],K=o.Symbol,Y=i("JSON","stringify"),$=I.f,J=E.f,X=S.f,H=O.f,Q=T("symbols"),Z=T("op-symbols"),tt=T("string-to-symbol-registry"),rt=T("symbol-to-string-registry"),et=T("wks"),nt=o.QObject,ot=!nt||!nt[q]||!nt[q].findChild,it=u&&s(function(){return 7!=b(J({},"a",{get:function(){return J(this,"a",{value:7}).a}})).a})?function(t,r,e){var n=$(G,r);n&&delete G[r],J(t,r,e),n&&t!==G&&J(G,r,n)}:J,at=function(t,r){var e=Q[t]=b(K[q]);return W(e,{type:B,tag:t,description:r}),u||(e.description=r),e},ut=c&&"symbol"==typeof K.iterator?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof K},ct=function defineProperty(t,r,e){t===G&&ct(Z,r,e),g(t);var n=y(r,!0);return g(e),l(Q,n)?(e.enumerable?(l(t,C)&&t[C][n]&&(t[C][n]=!1),e=b(e,{enumerable:m(0,!1)})):(l(t,C)||J(t,C,m(1,{})),t[C][n]=!0),it(t,n,e)):J(t,n,e)},ft=function defineProperties(r,t){g(r);var e=d(t),n=x(e).concat(ht(e));return D(n,function(t){u&&!st.call(e,t)||ct(r,t,e[t])}),r},st=function propertyIsEnumerable(t){var r=y(t,!0),e=H.call(this,r);return!(this===G&&l(Q,r)&&!l(Z,r))&&(!(e||!l(this,r)||!l(Q,r)||l(this,C)&&this[C][r])||e)},lt=function getOwnPropertyDescriptor(t,r){var e=d(t),n=y(r,!0);if(e!==G||!l(Q,n)||l(Z,n)){var o=$(e,n);return!o||!l(Q,n)||l(e,C)&&e[C][n]||(o.enumerable=!0),o}},pt=function getOwnPropertyNames(t){var r=X(d(t)),e=[];return D(r,function(t){l(Q,t)||l(j,t)||e.push(t)}),e},ht=function getOwnPropertySymbols(t){var r=t===G,e=X(r?Z:d(t)),n=[];return D(e,function(t){!l(Q,t)||r&&!l(G,t)||n.push(Q[t])}),n};c||(R((K=function Symbol(){if(this instanceof K)throw TypeError("Symbol is not a constructor");var t=arguments.length&&arguments[0]!==qt?String(arguments[0]):qt,r=k(t),e=function(t){this===G&&e.call(Z,t),l(this,C)&&l(this[C],r)&&(this[C][r]=!1),it(this,r,m(1,t))};return u&&ot&&it(G,r,{configurable:!0,set:e}),at(r,t)})[q],"toString",function toString(){return V(this).tag}),O.f=st,E.f=ct,I.f=lt,w.f=S.f=pt,A.f=ht,u&&(J(K[q],"description",{configurable:!0,get:function description(){return V(this).description}}),a||R(G,"propertyIsEnumerable",st,{unsafe:!0}))),f||(F.f=function(t){return at(P(t),t)}),n({global:!0,wrap:!0,forced:!c,sham:!c},{Symbol:K}),D(x(et),function(t){N(t)}),n({target:B,stat:!0,forced:!c},{"for":function(t){var r=String(t);if(l(tt,r))return tt[r];var e=K(r);return rt[tt[r]=e]=r,e},keyFor:function keyFor(t){if(!ut(t))throw TypeError(t+" is not a symbol");if(l(rt,t))return rt[t]},useSetter:function(){ot=!0},useSimple:function(){ot=!1}}),n({target:"Object",stat:!0,forced:!c,sham:!u},{create:function create(t,r){return r===qt?b(t):ft(b(t),r)},defineProperty:ct,defineProperties:ft,getOwnPropertyDescriptor:lt}),n({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:pt,getOwnPropertySymbols:ht}),n({target:"Object",stat:!0,forced:s(function(){A.f(1)})},{getOwnPropertySymbols:function getOwnPropertySymbols(t){return A.f(v(t))}}),Y&&n({target:"JSON",stat:!0,forced:!c||s(function(){var t=K();return"[null]"!=Y([t])||"{}"!=Y({a:t})||"{}"!=Y(Object(t))})},{stringify:function stringify(t,r,e){for(var n,o=[t],i=1;i<arguments.length;)o.push(arguments[i++]);if((h(n=r)||t!==qt)&&!ut(t))return p(r)||(r=function(t,r){if("function"==typeof n&&(r=n.call(this,t,r)),!ut(r))return r}),o[1]=r,Y.apply(null,o)}});K[q][z]||M(K[q],z,K[q].valueOf),L(K,B),j[C]=!0},function(t,r,e){var s=e(3),l=e(4).f,p=e(18),h=e(21),g=e(22),v=e(32),d=e(44);t.exports=function(t,r){var e,n,o,i,a,u=t.target,c=t.global,f=t.stat;if(e=c?s:f?s[u]||g(u,{}):(s[u]||{}).prototype)for(n in r){if(i=r[n],o=t.noTargetGet?(a=l(e,n))&&a.value:e[n],!d(c?n:u+(f?".":"#")+n,t.forced)&&o!==qt){if(typeof i==typeof o)continue;v(i,o)}(t.sham||o&&o.sham)&&p(i,"sham",!0),h(e,n,i,t)}}},function(t,r){var e=function(t){return t&&t.Math==Math&&t};t.exports=e("object"==typeof globalThis&&globalThis)||e("object"==typeof window&&window)||e("object"==typeof self&&self)||e("object"==typeof global&&global)||Function("return this")()},function(t,r,e){var n=e(5),o=e(7),i=e(8),a=e(9),u=e(13),c=e(15),f=e(16),s=Object.getOwnPropertyDescriptor;r.f=n?s:function getOwnPropertyDescriptor(t,r){if(t=a(t),r=u(r,!0),f)try{return s(t,r)}catch(e){}if(c(t,r))return i(!o.f.call(t,r),t[r])}},function(t,r,e){var n=e(6);t.exports=!n(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,r){t.exports=function(t){try{return!!t()}catch(r){return!0}}},function(t,r,e){var n={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!n.call({1:2},1);r.f=i?function propertyIsEnumerable(t){var r=o(this,t);return!!r&&r.enumerable}:n},function(t,r){t.exports=function(t,r){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:r}}},function(t,r,e){var n=e(10),o=e(12);t.exports=function(t){return n(o(t))}},function(t,r,e){var n=e(6),o=e(11),i="".split;t.exports=n(function(){return!Object("z").propertyIsEnumerable(0)})?function(t){return"String"==o(t)?i.call(t,""):Object(t)}:Object},function(t,r){var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},function(t,r){t.exports=function(t){if(t==qt)throw TypeError("Can't call method on "+t);return t}},function(t,r,e){var o=e(14);t.exports=function(t,r){if(!o(t))return t;var e,n;if(r&&"function"==typeof(e=t.toString)&&!o(n=e.call(t)))return n;if("function"==typeof(e=t.valueOf)&&!o(n=e.call(t)))return n;if(!r&&"function"==typeof(e=t.toString)&&!o(n=e.call(t)))return n;throw TypeError("Can't convert object to primitive value")}},function(t,r){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,r){var e={}.hasOwnProperty;t.exports=function(t,r){return e.call(t,r)}},function(t,r,e){var n=e(5),o=e(6),i=e(17);t.exports=!n&&!o(function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})},function(t,r,e){var n=e(3),o=e(14),i=n.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},function(t,r,e){var n=e(5),o=e(19),i=e(8);t.exports=n?function(t,r,e){return o.f(t,r,i(1,e))}:function(t,r,e){return t[r]=e,t}},function(t,r,e){var n=e(5),o=e(16),i=e(20),a=e(13),u=Object.defineProperty;r.f=n?u:function defineProperty(t,r,e){if(i(t),r=a(r,!0),i(e),o)try{return u(t,r,e)}catch(n){}if("get"in e||"set"in e)throw TypeError("Accessors not supported");return"value"in e&&(t[r]=e.value),t}},function(t,r,e){var n=e(14);t.exports=function(t){if(!n(t))throw TypeError(String(t)+" is not an object");return t}},function(t,r,e){var u=e(3),c=e(18),f=e(15),s=e(22),n=e(23),o=e(25),i=o.get,l=o.enforce,p=String(String).split("String");(t.exports=function(t,r,e,n){var o=!!n&&!!n.unsafe,i=!!n&&!!n.enumerable,a=!!n&&!!n.noTargetGet;"function"==typeof e&&("string"!=typeof r||f(e,"name")||c(e,"name",r),l(e).source=p.join("string"==typeof r?r:"")),t!==u?(o?!a&&t[r]&&(i=!0):delete t[r],i?t[r]=e:c(t,r,e)):i?t[r]=e:s(r,e)})(Function.prototype,"toString",function toString(){return"function"==typeof this&&i(this).source||n(this)})},function(t,r,e){var n=e(3),o=e(18);t.exports=function(t,r){try{o(n,t,r)}catch(e){n[t]=r}return r}},function(t,r,e){var n=e(24),o=Function.toString;"function"!=typeof n.inspectSource&&(n.inspectSource=function(t){return o.call(t)}),t.exports=n.inspectSource},function(t,r,e){var n=e(3),o=e(22),i="__core-js_shared__",a=n[i]||o(i,{});t.exports=a},function(t,r,e){var n,o,i,a=e(26),u=e(3),c=e(14),f=e(18),s=e(15),l=e(27),p=e(31);if(a){var h=new u.WeakMap,g=h.get,v=h.has,d=h.set;n=function(t,r){return d.call(h,t,r),r},o=function(t){return g.call(h,t)||{}},i=function(t){return v.call(h,t)}}else{var y=l("state");p[y]=!0,n=function(t,r){return f(t,y,r),r},o=function(t){return s(t,y)?t[y]:{}},i=function(t){return s(t,y)}}t.exports={set:n,get:o,has:i,enforce:function(t){return i(t)?o(t):n(t,{})},getterFor:function(e){return function(t){var r;if(!c(t)||(r=o(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}}}},function(t,r,e){var n=e(3),o=e(23),i=n.WeakMap;t.exports="function"==typeof i&&/native code/.test(o(i))},function(t,r,e){var n=e(28),o=e(30),i=n("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,r,e){var n=e(29),o=e(24);(t.exports=function(t,r){return o[t]||(o[t]=r!==qt?r:{})})("versions",[]).push({version:"3.6.0",mode:n?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,r){t.exports=!1},function(t,r){var e=0,n=Math.random();t.exports=function(t){return"Symbol("+String(t===qt?"":t)+")_"+(++e+n).toString(36)}},function(t,r){t.exports={}},function(t,r,e){var u=e(15),c=e(33),f=e(4),s=e(19);t.exports=function(t,r){for(var e=c(r),n=s.f,o=f.f,i=0;i<e.length;i++){var a=e[i];u(t,a)||n(t,a,o(r,a))}}},function(t,r,e){var n=e(34),o=e(36),i=e(43),a=e(20);t.exports=n("Reflect","ownKeys")||function ownKeys(t){var r=o.f(a(t)),e=i.f;return e?r.concat(e(t)):r}},function(t,r,e){var n=e(35),o=e(3),i=function(t){return"function"==typeof t?t:qt};t.exports=function(t,r){return arguments.length<2?i(n[t])||i(o[t]):n[t]&&n[t][r]||o[t]&&o[t][r]}},function(t,r,e){var n=e(3);t.exports=n},function(t,r,e){var n=e(37),o=e(42).concat("length","prototype");r.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return n(t,o)}},function(t,r,e){var a=e(15),u=e(9),c=e(38).indexOf,f=e(31);t.exports=function(t,r){var e,n=u(t),o=0,i=[];for(e in n)!a(f,e)&&a(n,e)&&i.push(e);for(;o<r.length;)a(n,e=r[o++])&&(~c(i,e)||i.push(e));return i}},function(t,r,e){var c=e(9),f=e(39),s=e(41),n=function(u){return function(t,r,e){var n,o=c(t),i=f(o.length),a=s(e,i);if(u&&r!=r){for(;a<i;)if((n=o[a++])!=n)return!0}else for(;a<i;a++)if((u||a in o)&&o[a]===r)return u||a||0;return!u&&-1}};t.exports={includes:n(!0),indexOf:n(!1)}},function(t,r,e){var n=e(40),o=Math.min;t.exports=function(t){return 0<t?o(n(t),9007199254740991):0}},function(t,r){var e=Math.ceil,n=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(0<t?n:e)(t)}},function(t,r,e){var n=e(40),o=Math.max,i=Math.min;t.exports=function(t,r){var e=n(t);return e<0?o(e+r,0):i(e,r)}},function(t,r){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,r){r.f=Object.getOwnPropertySymbols},function(t,r,e){var n=e(6),o=/#|\.prototype\./,i=function(t,r){var e=u[a(t)];return e==f||e!=c&&("function"==typeof r?n(r):!!r)},a=i.normalize=function(t){return String(t).replace(o,".").toLowerCase()},u=i.data={},c=i.NATIVE="N",f=i.POLYFILL="P";t.exports=i},function(t,r,e){var n=e(6);t.exports=!!Object.getOwnPropertySymbols&&!n(function(){return!String(Symbol())})},function(t,r,e){var n=e(45);t.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol()},function(t,r,e){var n=e(11);t.exports=Array.isArray||function isArray(t){return"Array"==n(t)}},function(t,r,e){var n=e(12);t.exports=function(t){return Object(n(t))}},function(t,r,e){var o,n=e(20),i=e(50),a=e(42),u=e(31),c=e(52),f=e(17),s=e(27),l="prototype",p="script",h=s("IE_PROTO"),g=function(){},v=function(t){return"<script>"+t+"</"+p+">"},d=function(){try{o=document.domain&&new ActiveXObject("htmlfile")}catch(n){}var t,r;d=o?function(t){t.write(v("")),t.close();var r=t.parentWindow.Object;return t=null,r}(o):((r=f("iframe")).style.display="none",c.appendChild(r),r.src=String("javascript:"),(t=r.contentWindow.document).open(),t.write(v("document.F=Object")),t.close(),t.F);for(var e=a.length;e--;)delete d[l][a[e]];return d()};u[h]=!0,t.exports=Object.create||function create(t,r){var e;return null!==t?(g[l]=n(t),e=new g,g[l]=null,e[h]=t):e=d(),r===qt?e:i(e,r)}},function(t,r,e){var n=e(5),a=e(19),u=e(20),c=e(51);t.exports=n?Object.defineProperties:function defineProperties(t,r){u(t);for(var e,n=c(r),o=n.length,i=0;i<o;)a.f(t,e=n[i++],r[e]);return t}},function(t,r,e){var n=e(37),o=e(42);t.exports=Object.keys||function keys(t){return n(t,o)}},function(t,r,e){var n=e(34);t.exports=n("document","documentElement")},function(t,r,e){var n=e(9),o=e(36).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function getOwnPropertyNames(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(r){return a.slice()}}(t):o(n(t))}},function(t,r,e){var n=e(3),o=e(28),i=e(15),a=e(30),u=e(45),c=e(46),f=o("wks"),s=n.Symbol,l=c?s:a;t.exports=function(t){return i(f,t)||(u&&i(s,t)?f[t]=s[t]:f[t]=l("Symbol."+t)),f[t]}},function(t,r,e){var n=e(54);r.f=n},function(t,r,e){var n=e(35),o=e(15),i=e(55),a=e(19).f;t.exports=function(t){var r=n.Symbol||(n.Symbol={});o(r,t)||a(r,t,{value:i.f(t)})}},function(t,r,e){var n=e(19).f,o=e(15),i=e(54)("toStringTag");t.exports=function(t,r,e){t&&!o(t=e?t:t.prototype,i)&&n(t,i,{configurable:!0,value:r})}},function(t,r,e){var x=e(59),w=e(10),S=e(48),A=e(39),I=e(61),E=[].push,n=function(h){var g=1==h,v=2==h,d=3==h,y=4==h,m=6==h,b=5==h||m;return function(t,r,e,n){for(var o,i,a=S(t),u=w(a),c=x(r,e,3),f=A(u.length),s=0,l=n||I,p=g?l(t,f):v?l(t,0):qt;s<f;s++)if((b||s in u)&&(i=c(o=u[s],s,a),h))if(g)p[s]=i;else if(i)switch(h){case 3:return!0;case 5:return o;case 6:return s;case 2:E.call(p,o)}else if(y)return!1;return m?-1:d||y?y:p}};t.exports={forEach:n(0),map:n(1),filter:n(2),some:n(3),every:n(4),find:n(5),findIndex:n(6)}},function(t,r,e){var i=e(60);t.exports=function(n,o,t){if(i(n),o===qt)return n;switch(t){case 0:return function(){return n.call(o)};case 1:return function(t){return n.call(o,t)};case 2:return function(t,r){return n.call(o,t,r)};case 3:return function(t,r,e){return n.call(o,t,r,e)}}return function(){return n.apply(o,arguments)}}},function(t,r){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},function(t,r,e){var n=e(14),o=e(47),i=e(54)("species");t.exports=function(t,r){var e;return o(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!o(e.prototype)?n(e)&&null===(e=e[i])&&(e=qt):e=qt),new(e===qt?Array:e)(0===r?0:r)}},function(t,r,e){var n=e(2),o=e(5),i=e(3),a=e(15),u=e(14),c=e(19).f,f=e(32),s=i.Symbol;if(o&&"function"==typeof s&&(!("description"in s.prototype)||s().description!==qt)){var l={},p=function Symbol(){var t=arguments.length<1||arguments[0]===qt?qt:String(arguments[0]),r=this instanceof p?new s(t):t===qt?s():s(t);return""===t&&(l[r]=!0),r};f(p,s);var h=p.prototype=s.prototype;h.constructor=p;var g=h.toString,v="Symbol(test)"==String(s("test")),d=/^Symbol\((.*)\)[^)]+$/;c(h,"description",{configurable:!0,get:function description(){var t=u(this)?this.valueOf():this,r=g.call(t);if(a(l,t))return"";var e=v?r.slice(7,-1):r.replace(d,"$1");return""===e?qt:e}}),n({global:!0,forced:!0},{Symbol:p})}},function(t,r,e){e(56)("asyncIterator")},function(t,r,e){e(56)("hasInstance")},function(t,r,e){e(56)("isConcatSpreadable")},function(t,r,e){e(56)("iterator")},function(t,r,e){e(56)("match")},function(t,r,e){e(56)("matchAll")},function(t,r,e){e(56)("replace")},function(t,r,e){e(56)("search")},function(t,r,e){e(56)("species")},function(t,r,e){e(56)("split")},function(t,r,e){e(56)("toPrimitive")},function(t,r,e){e(56)("toStringTag")},function(t,r,e){e(56)("unscopables")},function(t,r,e){var n=e(2),o=e(6),i=e(47),a=e(14),f=e(48),s=e(39),l=e(77),p=e(61),u=e(78),c=e(54),h=e(79),g=c("isConcatSpreadable"),v=9007199254740991,d="Maximum allowed index exceeded",y=51<=h||!o(function(){var t=[];return t[g]=!1,t.concat()[0]!==t}),m=u("concat"),b=function(t){if(!a(t))return!1;var r=t[g];return r!==qt?!!r:i(t)};n({target:"Array",proto:!0,forced:!y||!m},{concat:function concat(t){var r,e,n,o,i,a=f(this),u=p(a,0),c=0;for(r=-1,n=arguments.length;r<n;r++)if(b(i=-1===r?a:arguments[r])){if(o=s(i.length),v<c+o)throw TypeError(d);for(e=0;e<o;e++,c++)e in i&&l(u,c,i[e])}else{if(v<=c)throw TypeError(d);l(u,c++,i)}return u.length=c,u}})},function(t,r,e){var o=e(13),i=e(19),a=e(8);t.exports=function(t,r,e){var n=o(r);n in t?i.f(t,n,a(0,e)):t[n]=e}},function(t,r,e){var n=e(6),o=e(54),i=e(79),a=o("species");t.exports=function(r){return 51<=i||!n(function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[r](Boolean).foo})}},function(t,r,e){var n,o,i=e(3),a=e(80),u=i.process,c=u&&u.versions,f=c&&c.v8;f?o=(n=f.split("."))[0]+n[1]:a&&(!(n=a.match(/Edge\/(\d+)/))||74<=n[1])&&(n=a.match(/Chrome\/(\d+)/))&&(o=n[1]),t.exports=o&&+o},function(t,r,e){var n=e(34);t.exports=n("navigator","userAgent")||""},function(t,r,e){var n=e(2),o=e(82),i=e(83);n({target:"Array",proto:!0},{copyWithin:o}),i("copyWithin")},function(t,r,e){var f=e(48),s=e(41),l=e(39),p=Math.min;t.exports=[].copyWithin||function copyWithin(t,r){var e=f(this),n=l(e.length),o=s(t,n),i=s(r,n),a=2<arguments.length?arguments[2]:qt,u=p((a===qt?n:s(a,n))-i,n-o),c=1;for(i<o&&o<i+u&&(c=-1,i+=u-1,o+=u-1);0<u--;)i in e?e[o]=e[i]:delete e[o],o+=c,i+=c;return e}},function(t,r,e){var n=e(54),o=e(49),i=e(19),a=n("unscopables"),u=Array.prototype;u[a]==qt&&i.f(u,a,{configurable:!0,value:o(null)}),t.exports=function(t){u[a][t]=!0}},function(t,r,e){var n=e(2),o=e(58).every;n({target:"Array",proto:!0,forced:e(85)("every")},{every:function every(t){return o(this,t,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var n=e(6);t.exports=function(t,r){var e=[][t];return!e||!n(function(){e.call(null,r||function(){throw 1},1)})}},function(t,r,e){var n=e(2),o=e(87),i=e(83);n({target:"Array",proto:!0},{fill:o}),i("fill")},function(t,r,e){var u=e(48),c=e(41),f=e(39);t.exports=function fill(t){for(var r=u(this),e=f(r.length),n=arguments.length,o=c(1<n?arguments[1]:qt,e),i=2<n?arguments[2]:qt,a=i===qt?e:c(i,e);o<a;)r[o++]=t;return r}},function(t,r,e){var n=e(2),o=e(58).filter,i=e(6),a=e(78)("filter"),u=a&&!i(function(){[].filter.call({length:-1,0:1},function(t){throw t})});n({target:"Array",proto:!0,forced:!a||!u},{filter:function filter(t){return o(this,t,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var n=e(2),o=e(58).find,i=e(83),a="find",u=!0;a in[]&&Array(1)[a](function(){u=!1}),n({target:"Array",proto:!0,forced:u},{find:function find(t){return o(this,t,1<arguments.length?arguments[1]:qt)}}),i(a)},function(t,r,e){var n=e(2),o=e(58).findIndex,i=e(83),a="findIndex",u=!0;a in[]&&Array(1)[a](function(){u=!1}),n({target:"Array",proto:!0,forced:u},{findIndex:function findIndex(t){return o(this,t,1<arguments.length?arguments[1]:qt)}}),i(a)},function(t,r,e){var n=e(2),o=e(92),i=e(48),a=e(39),u=e(40),c=e(61);n({target:"Array",proto:!0},{flat:function flat(){var t=arguments.length?arguments[0]:qt,r=i(this),e=a(r.length),n=c(r,0);return n.length=o(n,r,r,e,0,t===qt?1:u(t)),n}})},function(t,r,e){var p=e(47),h=e(39),g=e(59),v=function(t,r,e,n,o,i,a,u){for(var c,f=o,s=0,l=!!a&&g(a,u,3);s<n;){if(s in e){if(c=l?l(e[s],s,r):e[s],0<i&&p(c))f=v(t,r,c,h(c.length),f,i-1)-1;else{if(9007199254740991<=f)throw TypeError("Exceed the acceptable array length");t[f]=c}f++}s++}return f};t.exports=v},function(t,r,e){var n=e(2),o=e(92),i=e(48),a=e(39),u=e(60),c=e(61);n({target:"Array",proto:!0},{flatMap:function flatMap(t){var r,e=i(this),n=a(e.length);return u(t),(r=c(e,0)).length=o(r,e,e,n,0,1,t,1<arguments.length?arguments[1]:qt),r}})},function(t,r,e){var n=e(2),o=e(95);n({target:"Array",proto:!0,forced:[].forEach!=o},{forEach:o})},function(t,r,e){var n=e(58).forEach,o=e(85);t.exports=o("forEach")?function forEach(t){return n(this,t,1<arguments.length?arguments[1]:qt)}:[].forEach},function(t,r,e){var n=e(2),o=e(97);n({target:"Array",stat:!0,forced:!e(104)(function(t){Array.from(t)})},{from:o})},function(t,r,e){var h=e(59),g=e(48),v=e(98),d=e(99),y=e(39),m=e(77),b=e(101);t.exports=function from(t){var r,e,n,o,i,a=g(t),u="function"==typeof this?this:Array,c=arguments.length,f=1<c?arguments[1]:qt,s=f!==qt,l=0,p=b(a);if(s&&(f=h(f,2<c?arguments[2]:qt,2)),p==qt||u==Array&&d(p))for(e=new u(r=y(a.length));l<r;l++)m(e,l,s?f(a[l],l):a[l]);else for(i=(o=p.call(a)).next,e=new u;!(n=i.call(o)).done;l++)m(e,l,s?v(o,f,[n.value,l],!0):n.value);return e.length=l,e}},function(t,r,e){var a=e(20);t.exports=function(t,r,e,n){try{return n?r(a(e)[0],e[1]):r(e)}catch(i){var o=t["return"];throw o!==qt&&a(o.call(t)),i}}},function(t,r,e){var n=e(54),o=e(100),i=n("iterator"),a=Array.prototype;t.exports=function(t){return t!==qt&&(o.Array===t||a[i]===t)}},function(t,r){t.exports={}},function(t,r,e){var n=e(102),o=e(100),i=e(54)("iterator");t.exports=function(t){if(t!=qt)return t[i]||t["@@iterator"]||o[n(t)]}},function(t,r,e){var n=e(103),o=e(11),i=e(54)("toStringTag"),a="Arguments"==o(function(){return arguments}());t.exports=n?o:function(t){var r,e,n;return t===qt?"Undefined":null===t?"Null":"string"==typeof(e=function(t,r){try{return t[r]}catch(e){}}(r=Object(t),i))?e:a?o(r):"Object"==(n=o(r))&&"function"==typeof r.callee?"Arguments":n}},function(t,r,e){var n={};n[e(54)("toStringTag")]="z",t.exports="[object z]"===String(n)},function(t,r,e){var o=e(54)("iterator"),i=!1;try{var n=0,a={next:function(){return{done:!!n++}},"return":function(){i=!0}};a[o]=function(){return this},Array.from(a,function(){throw 2})}catch(u){}t.exports=function(t,r){if(!r&&!i)return!1;var e=!1;try{var n={};n[o]=function(){return{next:function(){return{done:e=!0}}}},t(n)}catch(u){}return e}},function(t,r,e){var n=e(2),o=e(38).includes,i=e(83);n({target:"Array",proto:!0},{includes:function includes(t){return o(this,t,1<arguments.length?arguments[1]:qt)}}),i("includes")},function(t,r,e){var n=e(2),o=e(38).indexOf,i=e(85),a=[].indexOf,u=!!a&&1/[1].indexOf(1,-0)<0,c=i("indexOf");n({target:"Array",proto:!0,forced:u||c},{indexOf:function indexOf(t){return u?a.apply(this,arguments)||0:o(this,t,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){e(2)({target:"Array",stat:!0},{isArray:e(47)})},function(t,r,e){var n=e(9),o=e(83),i=e(100),a=e(25),u=e(109),c="Array Iterator",f=a.set,s=a.getterFor(c);t.exports=u(Array,"Array",function(t,r){f(this,{type:c,target:n(t),index:0,kind:r})},function(){var t=s(this),r=t.target,e=t.kind,n=t.index++;return!r||r.length<=n?{value:t.target=qt,done:!0}:"keys"==e?{value:n,done:!1}:"values"==e?{value:r[n],done:!1}:{value:[n,r[n]],done:!1}},"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},function(t,r,e){var y=e(2),m=e(110),b=e(112),x=e(114),w=e(57),S=e(18),A=e(21),n=e(54),I=e(29),E=e(100),o=e(111),O=o.IteratorPrototype,M=o.BUGGY_SAFARI_ITERATORS,R=n("iterator"),T="values",_="entries",j=function(){return this};t.exports=function(t,r,e,n,o,i,a){m(e,r,n);var u,c,f,s=function(t){if(t===o&&v)return v;if(!M&&t in h)return h[t];switch(t){case"keys":return function keys(){return new e(this,t)};case T:return function values(){return new e(this,t)};case _:return function entries(){return new e(this,t)}}return function(){return new e(this)}},l=r+" Iterator",p=!1,h=t.prototype,g=h[R]||h["@@iterator"]||o&&h[o],v=!M&&g||s(o),d="Array"==r&&h.entries||g;if(d&&(u=b(d.call(new t)),O!==Object.prototype&&u.next&&(I||b(u)===O||(x?x(u,O):"function"!=typeof u[R]&&S(u,R,j)),w(u,l,!0,!0),I&&(E[l]=j))),o==T&&g&&g.name!==T&&(p=!0,v=function values(){return g.call(this)}),I&&!a||h[R]===v||S(h,R,v),E[r]=v,o)if(c={values:s(T),keys:i?v:s("keys"),entries:s(_)},a)for(f in c)!M&&!p&&f in h||A(h,f,c[f]);else y({target:r,proto:!0,forced:M||p},c);return c}},function(t,r,e){var o=e(111).IteratorPrototype,i=e(49),a=e(8),u=e(57),c=e(100),f=function(){return this};t.exports=function(t,r,e){var n=r+" Iterator";return t.prototype=i(o,{next:a(1,e)}),u(t,n,!1,!0),c[n]=f,t}},function(t,r,e){var n,o,i,a=e(112),u=e(18),c=e(15),f=e(54),s=e(29),l=f("iterator"),p=!1;[].keys&&("next"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(n=o):p=!0),n==qt&&(n={}),s||c(n,l)||u(n,l,function(){return this}),t.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:p}},function(t,r,e){var n=e(15),o=e(48),i=e(27),a=e(113),u=i("IE_PROTO"),c=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),n(t,u)?t[u]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?c:null}},function(t,r,e){var n=e(6);t.exports=!n(function(){function F(){}return F.prototype.constructor=null,Object.getPrototypeOf(new F)!==F.prototype})},function(t,r,e){var o=e(20),i=e(115);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,n=!1,t={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(t,[]),n=t instanceof Array}catch(r){}return function setPrototypeOf(t,r){return o(t),i(r),n?e.call(t,r):t.__proto__=r,t}}():qt)},function(t,r,e){var n=e(14);t.exports=function(t){if(!n(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},function(t,r,e){var n=e(2),o=e(10),i=e(9),a=e(85),u=[].join,c=o!=Object,f=a("join",",");n({target:"Array",proto:!0,forced:c||f},{join:function join(t){return u.call(i(this),t===qt?",":t)}})},function(t,r,e){var n=e(2),o=e(118);n({target:"Array",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},function(t,r,e){var o=e(9),i=e(40),a=e(39),n=e(85),u=Math.min,c=[].lastIndexOf,f=!!c&&1/[1].lastIndexOf(1,-0)<0,s=n("lastIndexOf");t.exports=f||s?function lastIndexOf(t){if(f)return c.apply(this,arguments)||0;var r=o(this),e=a(r.length),n=e-1;for(1<arguments.length&&(n=u(n,i(arguments[1]))),n<0&&(n=e+n);0<=n;n--)if(n in r&&r[n]===t)return n||0;return-1}:c},function(t,r,e){var n=e(2),o=e(58).map,i=e(6),a=e(78)("map"),u=a&&!i(function(){[].map.call({length:-1,0:1},function(t){throw t})});n({target:"Array",proto:!0,forced:!a||!u},{map:function map(t){return o(this,t,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var n=e(2),o=e(6),i=e(77);n({target:"Array",stat:!0,forced:o(function(){function F(){}return!(Array.of.call(F)instanceof F)})},{of:function of(){for(var t=0,r=arguments.length,e=new("function"==typeof this?this:Array)(r);t<r;)i(e,t,arguments[t++]);return e.length=r,e}})},function(t,r,e){var n=e(2),o=e(122).left;n({target:"Array",proto:!0,forced:e(85)("reduce")},{reduce:function reduce(t){return o(this,t,arguments.length,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var s=e(60),l=e(48),p=e(10),h=e(39),n=function(f){return function(t,r,e,n){s(r);var o=l(t),i=p(o),a=h(o.length),u=f?a-1:0,c=f?-1:1;if(e<2)for(;;){if(u in i){n=i[u],u+=c;break}if(u+=c,f?u<0:a<=u)throw TypeError("Reduce of empty array with no initial value")}for(;f?0<=u:u<a;u+=c)u in i&&(n=r(n,i[u],u,o));return n}};t.exports={left:n(!1),right:n(!0)}},function(t,r,e){var n=e(2),o=e(122).right;n({target:"Array",proto:!0,forced:e(85)("reduceRight")},{reduceRight:function reduceRight(t){return o(this,t,arguments.length,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var n=e(2),o=e(47),i=[].reverse,a=[1,2];n({target:"Array",proto:!0,forced:String(a)===String(a.reverse())},{reverse:function reverse(){return o(this)&&(this.length=this.length),i.call(this)}})},function(t,r,e){var n=e(2),f=e(14),s=e(47),l=e(41),p=e(39),h=e(9),g=e(77),o=e(78),v=e(54)("species"),d=[].slice,y=Math.max;n({target:"Array",proto:!0,forced:!o("slice")},{slice:function slice(t,r){var e,n,o,i=h(this),a=p(i.length),u=l(t,a),c=l(r===qt?a:r,a);if(s(i)&&("function"!=typeof(e=i.constructor)||e!==Array&&!s(e.prototype)?f(e)&&null===(e=e[v])&&(e=qt):e=qt,e===Array||e===qt))return d.call(i,u,c);for(n=new(e===qt?Array:e)(y(c-u,0)),o=0;u<c;u++,o++)u in i&&g(n,o,i[u]);return n.length=o,n}})},function(t,r,e){var n=e(2),o=e(58).some;n({target:"Array",proto:!0,forced:e(85)("some")},{some:function some(t){return o(this,t,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var n=e(2),o=e(60),i=e(48),a=e(6),u=e(85),c=[],f=c.sort,s=a(function(){c.sort(qt)}),l=a(function(){c.sort(null)}),p=u("sort");n({target:"Array",proto:!0,forced:s||!l||p},{sort:function sort(t){return t===qt?f.call(i(this)):f.call(i(this),o(t))}})},function(t,r,e){e(129)("Array")},function(t,r,e){var n=e(34),o=e(19),i=e(54),a=e(5),u=i("species");t.exports=function(t){var r=n(t);a&&r&&!r[u]&&(0,o.f)(r,u,{configurable:!0,get:function(){return this}})}},function(t,r,e){var n=e(2),p=e(41),h=e(40),g=e(39),v=e(48),d=e(61),y=e(77),o=e(78),m=Math.max,b=Math.min;n({target:"Array",proto:!0,forced:!o("splice")},{splice:function splice(t,r){var e,n,o,i,a,u,c=v(this),f=g(c.length),s=p(t,f),l=arguments.length;if(0===l?e=n=0:n=1===l?(e=0,f-s):(e=l-2,b(m(h(r),0),f-s)),9007199254740991<f+e-n)throw TypeError("Maximum allowed length exceeded");for(o=d(c,n),i=0;i<n;i++)(a=s+i)in c&&y(o,i,c[a]);if(e<(o.length=n)){for(i=s;i<f-n;i++)u=i+e,(a=i+n)in c?c[u]=c[a]:delete c[u];for(i=f;f-n+e<i;i--)delete c[i-1]}else if(n<e)for(i=f-n;s<i;i--)u=i+e-1,(a=i+n-1)in c?c[u]=c[a]:delete c[u];for(i=0;i<e;i++)c[i+s]=arguments[i+2];return c.length=f-n+e,o}})},function(t,r,e){e(83)("flat")},function(t,r,e){e(83)("flatMap")},function(t,r,e){var n=e(2),o=e(3),i=e(134),a=e(129),u="ArrayBuffer",c=i[u];n({global:!0,forced:o[u]!==c},{ArrayBuffer:c}),a(u)},function(t,r,e){var n=e(3),i=e(5),o=e(135).NATIVE_ARRAY_BUFFER,a=e(18),u=e(136),c=e(6),f=e(137),s=e(40),l=e(39),p=e(138),h=e(139),g=e(36).f,v=e(19).f,d=e(87),y=e(57),m=e(25),b=m.get,x=m.set,w="ArrayBuffer",S="DataView",A="prototype",I="Wrong index",E=n[w],O=E,M=n[S],R=n.RangeError,T=h.pack,_=h.unpack,j=function(t){return[255&t]},k=function(t){return[255&t,t>>8&255]},P=function(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]},F=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},N=function(t){ -return T(t,23,4)},L=function(t){return T(t,52,8)},U=function(t,r){v(t[A],r,{get:function(){return b(this)[r]}})},D=function(t,r,e,n){var o=p(e),i=b(t);if(i.byteLength<o+r)throw R(I);var a=b(i.buffer).bytes,u=o+i.byteOffset,c=a.slice(u,u+r);return n?c:c.reverse()},C=function(t,r,e,n,o,i){var a=p(e),u=b(t);if(u.byteLength<a+r)throw R(I);for(var c=b(u.buffer).bytes,f=a+u.byteOffset,s=n(+o),l=0;l<r;l++)c[f+l]=s[i?l:r-l-1]};if(o){if(!c(function(){E(1)})||!c(function(){new E(-1)})||c(function(){return new E,new E(1.5),new E(NaN),E.name!=w})){for(var B,q=(O=function ArrayBuffer(t){return f(this,O),new E(p(t))})[A]=E[A],z=g(E),W=0;W<z.length;)(B=z[W++])in O||a(O,B,E[B]);q.constructor=O}var V=new M(new O(2)),G=M[A].setInt8;V.setInt8(0,2147483648),V.setInt8(1,2147483649),!V.getInt8(0)&&V.getInt8(1)||u(M[A],{setInt8:function setInt8(t,r){G.call(this,t,r<<24>>24)},setUint8:function setUint8(t,r){G.call(this,t,r<<24>>24)}},{unsafe:!0})}else O=function ArrayBuffer(t){f(this,O,w);var r=p(t);x(this,{bytes:d.call(new Array(r),0),byteLength:r}),i||(this.byteLength=r)},M=function DataView(t,r,e){f(this,M,S),f(t,O,S);var n=b(t).byteLength,o=s(r);if(o<0||n<o)throw R("Wrong offset");if(n<o+(e=e===qt?n-o:l(e)))throw R("Wrong length");x(this,{buffer:t,byteLength:e,byteOffset:o}),i||(this.buffer=t,this.byteLength=e,this.byteOffset=o)},i&&(U(O,"byteLength"),U(M,"buffer"),U(M,"byteLength"),U(M,"byteOffset")),u(M[A],{getInt8:function getInt8(t){return D(this,1,t)[0]<<24>>24},getUint8:function getUint8(t){return D(this,1,t)[0]},getInt16:function getInt16(t){var r=D(this,2,t,1<arguments.length?arguments[1]:qt);return(r[1]<<8|r[0])<<16>>16},getUint16:function getUint16(t){var r=D(this,2,t,1<arguments.length?arguments[1]:qt);return r[1]<<8|r[0]},getInt32:function getInt32(t){return F(D(this,4,t,1<arguments.length?arguments[1]:qt))},getUint32:function getUint32(t){return F(D(this,4,t,1<arguments.length?arguments[1]:qt))>>>0},getFloat32:function getFloat32(t){return _(D(this,4,t,1<arguments.length?arguments[1]:qt),23)},getFloat64:function getFloat64(t){return _(D(this,8,t,1<arguments.length?arguments[1]:qt),52)},setInt8:function setInt8(t,r){C(this,1,t,j,r)},setUint8:function setUint8(t,r){C(this,1,t,j,r)},setInt16:function setInt16(t,r){C(this,2,t,k,r,2<arguments.length?arguments[2]:qt)},setUint16:function setUint16(t,r){C(this,2,t,k,r,2<arguments.length?arguments[2]:qt)},setInt32:function setInt32(t,r){C(this,4,t,P,r,2<arguments.length?arguments[2]:qt)},setUint32:function setUint32(t,r){C(this,4,t,P,r,2<arguments.length?arguments[2]:qt)},setFloat32:function setFloat32(t,r){C(this,4,t,N,r,2<arguments.length?arguments[2]:qt)},setFloat64:function setFloat64(t,r){C(this,8,t,L,r,2<arguments.length?arguments[2]:qt)}});y(O,w),y(M,S),t.exports={ArrayBuffer:O,DataView:M}},function(t,r,e){var n,a=e(5),u=e(3),o=e(14),c=e(15),i=e(102),f=e(18),s=e(21),l=e(19).f,p=e(112),h=e(114),g=e(54),v=e(30),d=u.DataView,y=d&&d.prototype,m=u.Int8Array,b=m&&m.prototype,x=u.Uint8ClampedArray,w=x&&x.prototype,S=m&&p(m),A=b&&p(b),I=Object.prototype,E=I.isPrototypeOf,O=g("toStringTag"),M=v("TYPED_ARRAY_TAG"),R=!(!u.ArrayBuffer||!d),T=R&&!!h&&"Opera"!==i(u.opera),_=!1,j={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},k=function k(t){var r=i(t);return"DataView"===r||c(j,r)},P=function(t){return o(t)&&c(j,i(t))};for(n in j)u[n]||(T=!1);if((!T||"function"!=typeof S||S===Function.prototype)&&(S=function S(){throw TypeError("Incorrect invocation")},T))for(n in j)u[n]&&h(u[n],S);if((!T||!A||A===I)&&(A=S.prototype,T))for(n in j)u[n]&&h(u[n].prototype,A);if(T&&p(w)!==A&&h(w,A),a&&!c(A,O))for(n in _=!0,l(A,O,{get:function(){return o(this)?this[M]:qt}}),j)u[n]&&f(u[n],M,n);R&&h&&p(y)!==I&&h(y,I),t.exports={NATIVE_ARRAY_BUFFER:R,NATIVE_ARRAY_BUFFER_VIEWS:T,TYPED_ARRAY_TAG:_&&M,aTypedArray:function(t){if(P(t))return t;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(t){if(h){if(E.call(S,t))return t}else for(var r in j)if(c(j,n)){var e=u[r];if(e&&(t===e||E.call(e,t)))return t}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(t,r,e){if(a){if(e)for(var n in j){var o=u[n];o&&c(o.prototype,t)&&delete o.prototype[t]}A[t]&&!e||s(A,t,e?r:T&&b[t]||r)}},exportTypedArrayStaticMethod:function(t,r,e){var n,o;if(a){if(h){if(e)for(n in j)(o=u[n])&&c(o,t)&&delete o[t];if(S[t]&&!e)return;try{return s(S,t,e?r:T&&m[t]||r)}catch(i){}}for(n in j)!(o=u[n])||o[t]&&!e||s(o,t,r)}},isView:k,isTypedArray:P,TypedArray:S,TypedArrayPrototype:A}},function(t,r,e){var o=e(21);t.exports=function(t,r,e){for(var n in r)o(t,n,r[n],e);return t}},function(t,r){t.exports=function(t,r,e){if(!(t instanceof r))throw TypeError("Incorrect "+(e?e+" ":"")+"invocation");return t}},function(t,r,e){var n=e(40),o=e(39);t.exports=function(t){if(t===qt)return 0;var r=n(t),e=o(r);if(r!==e)throw RangeError("Wrong length or index");return e}},function(t,r){var h=Math.abs,g=Math.pow,v=Math.floor,d=Math.log,y=Math.LN2;t.exports={pack:function(t,r,e){var n,o,i,a=new Array(e),u=8*e-r-1,c=(1<<u)-1,f=c>>1,s=23===r?g(2,-24)-g(2,-77):0,l=t<0||0===t&&1/t<0?1:0,p=0;for((t=h(t))!=t||t===1/0?(o=t!=t?1:0,n=c):(n=v(d(t)/y),t*(i=g(2,-n))<1&&(n--,i*=2),2<=(t+=1<=n+f?s/i:s*g(2,1-f))*i&&(n++,i/=2),c<=n+f?(o=0,n=c):1<=n+f?(o=(t*i-1)*g(2,r),n+=f):(o=t*g(2,f-1)*g(2,r),n=0));8<=r;a[p++]=255&o,o/=256,r-=8);for(n=n<<r|o,u+=r;0<u;a[p++]=255&n,n/=256,u-=8);return a[--p]|=128*l,a},unpack:function(t,r){var e,n=t.length,o=8*n-r-1,i=(1<<o)-1,a=i>>1,u=o-7,c=n-1,f=t[c--],s=127&f;for(f>>=7;0<u;s=256*s+t[c],c--,u-=8);for(e=s&(1<<-u)-1,s>>=-u,u+=r;0<u;e=256*e+t[c],c--,u-=8);if(0===s)s=1-a;else{if(s===i)return e?NaN:f?-1/0:1/0;e+=g(2,r),s-=a}return(f?-1:1)*e*g(2,s-r)}}},function(t,r,e){var n=e(2),o=e(135);n({target:"ArrayBuffer",stat:!0,forced:!o.NATIVE_ARRAY_BUFFER_VIEWS},{isView:o.isView})},function(t,r,e){var n=e(2),o=e(6),i=e(134),f=e(20),s=e(41),l=e(39),p=e(142),h=i.ArrayBuffer,g=i.DataView,v=h.prototype.slice;n({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:o(function(){return!new h(2).slice(1,qt).byteLength})},{slice:function slice(t,r){if(v!==qt&&r===qt)return v.call(f(this),t);for(var e=f(this).byteLength,n=s(t,e),o=s(r===qt?e:r,e),i=new(p(this,h))(l(o-n)),a=new g(this),u=new g(i),c=0;n<o;)u.setUint8(c++,a.getUint8(n++));return i}})},function(t,r,e){var o=e(20),i=e(60),a=e(54)("species");t.exports=function(t,r){var e,n=o(t).constructor;return n===qt||(e=o(n)[a])==qt?r:i(e)}},function(t,r,e){var n=e(2),o=e(134);n({global:!0,forced:!e(135).NATIVE_ARRAY_BUFFER},{DataView:o.DataView})},function(t,r,e){e(2)({target:"Date",stat:!0},{now:function now(){return(new Date).getTime()}})},function(t,r,e){var n=e(2),o=e(146);n({target:"Date",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},function(t,r,e){var n=e(6),o=e(147).start,i=Math.abs,a=Date.prototype,u=a.getTime,c=a.toISOString;t.exports=n(function(){return"0385-07-25T07:06:39.999Z"!=c.call(new Date(-5e13-1))})||!n(function(){c.call(new Date(NaN))})?function toISOString(){if(!isFinite(u.call(this)))throw RangeError("Invalid time value");var t=this,r=t.getUTCFullYear(),e=t.getUTCMilliseconds(),n=r<0?"-":9999<r?"+":"";return n+o(i(r),n?6:4,0)+"-"+o(t.getUTCMonth()+1,2,0)+"-"+o(t.getUTCDate(),2,0)+"T"+o(t.getUTCHours(),2,0)+":"+o(t.getUTCMinutes(),2,0)+":"+o(t.getUTCSeconds(),2,0)+"."+o(e,3,0)+"Z"}:c},function(t,r,e){var s=e(39),l=e(148),p=e(12),h=Math.ceil,n=function(f){return function(t,r,e){var n,o,i=String(p(t)),a=i.length,u=e===qt?" ":String(e),c=s(r);return c<=a||""==u?i:((n=c-a)<(o=l.call(u,h(n/u.length))).length&&(o=o.slice(0,n)),f?i+o:o+i)}};t.exports={start:n(!1),end:n(!0)}},function(t,r,e){var o=e(40),i=e(12);t.exports="".repeat||function repeat(t){var r=String(i(this)),e="",n=o(t);if(n<0||n==Infinity)throw RangeError("Wrong number of repetitions");for(;0<n;(n>>>=1)&&(r+=r))1&n&&(e+=r);return e}},function(t,r,e){var n=e(2),o=e(6),i=e(48),a=e(13);n({target:"Date",proto:!0,forced:o(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})})},{toJSON:function toJSON(t){var r=i(this),e=a(r);return"number"!=typeof e||isFinite(e)?r.toISOString():null}})},function(t,r,e){var n=e(18),o=e(151),i=e(54)("toPrimitive"),a=Date.prototype;i in a||n(a,i,o)},function(t,r,e){var n=e(20),o=e(13);t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return o(n(this),"number"!==t)}},function(t,r,e){var n=e(21),o=Date.prototype,i="Invalid Date",a="toString",u=o[a],c=o.getTime;new Date(NaN)+""!=i&&n(o,a,function toString(){var t=c.call(this);return t==t?u.call(this):i})},function(t,r,e){e(2)({target:"Function",proto:!0},{bind:e(154)})},function(t,r,e){var i=e(60),a=e(14),u=[].slice,c={};t.exports=Function.bind||function bind(r){var e=i(this),n=u.call(arguments,1),o=function bound(){var t=n.concat(u.call(arguments));return this instanceof o?function(t,r,e){if(!(r in c)){for(var n=[],o=0;o<r;o++)n[o]="a["+o+"]";c[r]=Function("C,a","return new C("+n.join(",")+")")}return c[r](t,e)}(e,t.length,t):e.apply(r,t)};return a(e.prototype)&&(o.prototype=e.prototype),o}},function(t,r,e){var n=e(14),o=e(19),i=e(112),a=e(54)("hasInstance"),u=Function.prototype;a in u||o.f(u,a,{value:function(t){if("function"!=typeof this||!n(t))return!1;if(!n(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},function(t,r,e){var n=e(5),o=e(19).f,i=Function.prototype,a=i.toString,u=/^\s*function ([^ (]*)/;!n||"name"in i||o(i,"name",{configurable:!0,get:function(){try{return a.call(this).match(u)[1]}catch(t){return""}}})},function(t,r,e){e(2)({global:!0},{globalThis:e(3)})},function(t,r,e){var n=e(2),o=e(34),i=e(6),a=o("JSON","stringify"),u=/[\uD800-\uDFFF]/g,c=/^[\uD800-\uDBFF]$/,f=/^[\uDC00-\uDFFF]$/,s=function(t,r,e){var n=e.charAt(r-1),o=e.charAt(r+1);return c.test(t)&&!f.test(o)||f.test(t)&&!c.test(n)?"\\u"+t.charCodeAt(0).toString(16):t},l=i(function(){return'"\\udf06\\ud834"'!==a("\udf06\ud834")||'"\\udead"'!==a("\udead")});a&&n({target:"JSON",stat:!0,forced:l},{stringify:function stringify(t,r,e){var n=a.apply(null,arguments);return"string"==typeof n?n.replace(u,s):n}})},function(t,r,e){var n=e(3);e(57)(n.JSON,"JSON",!0)},function(t,r,e){var n=e(161),o=e(166);t.exports=n("Map",function(t){return function Map(){return t(this,arguments.length?arguments[0]:qt)}},o)},function(t,r,e){var d=e(2),y=e(3),m=e(44),b=e(21),x=e(162),w=e(164),S=e(137),A=e(14),I=e(6),E=e(104),O=e(57),M=e(165);t.exports=function(n,t,r){var o=-1!==n.indexOf("Map"),i=-1!==n.indexOf("Weak"),a=o?"set":"add",u=y[n],c=u&&u.prototype,f=u,e={},s=function(t){var e=c[t];b(c,t,"add"==t?function add(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(i&&!A(t))&&e.call(this,0===t?0:t)}:"get"==t?function get(t){return i&&!A(t)?qt:e.call(this,0===t?0:t)}:"has"==t?function has(t){return!(i&&!A(t))&&e.call(this,0===t?0:t)}:function set(t,r){return e.call(this,0===t?0:t,r),this})};if(m(n,"function"!=typeof u||!(i||c.forEach&&!I(function(){(new u).entries().next()}))))f=r.getConstructor(t,n,o,a),x.REQUIRED=!0;else if(m(n,!0)){var l=new f,p=l[a](i?{}:-0,1)!=l,h=I(function(){l.has(1)}),g=E(function(t){new u(t)}),v=!i&&I(function(){for(var t=new u,r=5;r--;)t[a](r,r);return!t.has(-0)});g||(((f=t(function(t,r){S(t,f,n);var e=M(new u,t,f);return r!=qt&&w(r,e[a],e,o),e})).prototype=c).constructor=f),(h||v)&&(s("delete"),s("has"),o&&s("get")),(v||p)&&s(a),i&&c.clear&&delete c.clear}return d({global:!0,forced:(e[n]=f)!=u},e),O(f,n),i||r.setStrong(f,n,o),f}},function(t,r,e){var n=e(31),o=e(14),i=e(15),a=e(19).f,u=e(30),c=e(163),f=u("meta"),s=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,f,{value:{objectID:"O"+ ++s,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,r){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,f)){if(!l(t))return"F";if(!r)return"E";p(t)}return t[f].objectID},getWeakData:function(t,r){if(!i(t,f)){if(!l(t))return!0;if(!r)return!1;p(t)}return t[f].weakData},onFreeze:function(t){return c&&h.REQUIRED&&l(t)&&!i(t,f)&&p(t),t}};n[f]=!0},function(t,r,e){var n=e(6);t.exports=!n(function(){return Object.isExtensible(Object.preventExtensions({}))})},function(t,r,e){var h=e(20),g=e(99),v=e(39),d=e(59),y=e(101),m=e(98),b=function(t,r){this.stopped=t,this.result=r};(t.exports=function(t,r,e,n,o){var i,a,u,c,f,s,l,p=d(r,e,n?2:1);if(o)i=t;else{if("function"!=typeof(a=y(t)))throw TypeError("Target is not iterable");if(g(a)){for(u=0,c=v(t.length);u<c;u++)if((f=n?p(h(l=t[u])[0],l[1]):p(t[u]))&&f instanceof b)return f;return new b(!1)}i=a.call(t)}for(s=i.next;!(l=s.call(i)).done;)if("object"==typeof(f=m(i,p,l.value,n))&&f&&f instanceof b)return f;return new b(!1)}).stop=function(t){return new b(!0,t)}},function(t,r,e){var i=e(14),a=e(114);t.exports=function(t,r,e){var n,o;return a&&"function"==typeof(n=r.constructor)&&n!==e&&i(o=n.prototype)&&o!==e.prototype&&a(t,o),t}},function(t,r,e){var f=e(19).f,s=e(49),l=e(136),p=e(59),h=e(137),g=e(164),a=e(109),u=e(129),v=e(5),d=e(162).fastKey,n=e(25),y=n.set,m=n.getterFor;t.exports={getConstructor:function(t,e,n,o){var i=t(function(t,r){h(t,i,e),y(t,{type:e,index:s(null),first:qt,last:qt,size:0}),v||(t.size=0),r!=qt&&g(r,t[o],t,n)}),u=m(e),a=function(t,r,e){var n,o,i=u(t),a=c(t,r);return a?a.value=e:(i.last=a={index:o=d(r,!0),key:r,value:e,previous:n=i.last,next:qt,removed:!1},i.first||(i.first=a),n&&(n.next=a),v?i.size++:t.size++,"F"!==o&&(i.index[o]=a)),t},c=function(t,r){var e,n=u(t),o=d(r);if("F"!==o)return n.index[o];for(e=n.first;e;e=e.next)if(e.key==r)return e};return l(i.prototype,{clear:function clear(){for(var t=u(this),r=t.index,e=t.first;e;)e.removed=!0,e.previous&&(e.previous=e.previous.next=qt),delete r[e.index],e=e.next;t.first=t.last=qt,v?t.size=0:this.size=0},"delete":function(t){var r=u(this),e=c(this,t);if(e){var n=e.next,o=e.previous;delete r.index[e.index],e.removed=!0,o&&(o.next=n),n&&(n.previous=o),r.first==e&&(r.first=n),r.last==e&&(r.last=o),v?r.size--:this.size--}return!!e},forEach:function forEach(t){for(var r,e=u(this),n=p(t,1<arguments.length?arguments[1]:qt,3);r=r?r.next:e.first;)for(n(r.value,r.key,this);r&&r.removed;)r=r.previous},has:function has(t){return!!c(this,t)}}),l(i.prototype,n?{get:function get(t){var r=c(this,t);return r&&r.value},set:function set(t,r){return a(this,0===t?0:t,r)}}:{add:function add(t){return a(this,t=0===t?0:t,t)}}),v&&f(i.prototype,"size",{get:function(){return u(this).size}}),i},setStrong:function(t,r,e){var n=r+" Iterator",o=m(r),i=m(n);a(t,r,function(t,r){y(this,{type:n,target:t,state:o(t),kind:r,last:qt})},function(){for(var t=i(this),r=t.kind,e=t.last;e&&e.removed;)e=e.previous;return t.target&&(t.last=e=e?e.next:t.state.first)?"keys"==r?{value:e.key,done:!1}:"values"==r?{value:e.value,done:!1}:{value:[e.key,e.value],done:!1}:{value:t.target=qt,done:!0}},e?"entries":"values",!e,!0),u(r)}}},function(t,r,e){var n=e(2),o=e(168),i=Math.acosh,a=Math.log,u=Math.sqrt,c=Math.LN2;n({target:"Math",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(Infinity)!=Infinity},{acosh:function acosh(t){return(t=+t)<1?NaN:94906265.62425156<t?a(t)+c:o(t-1+u(t-1)*u(t+1))}})},function(t,r){var e=Math.log;t.exports=Math.log1p||function log1p(t){return-1e-8<(t=+t)&&t<1e-8?t-t*t/2:e(1+t)}},function(t,r,e){var n=e(2),o=Math.asinh,i=Math.log,a=Math.sqrt;n({target:"Math",stat:!0,forced:!(o&&0<1/o(0))},{asinh:function asinh(t){return isFinite(t=+t)&&0!=t?t<0?-asinh(-t):i(t+a(t*t+1)):t}})},function(t,r,e){var n=e(2),o=Math.atanh,i=Math.log;n({target:"Math",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function atanh(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},function(t,r,e){var n=e(2),o=e(172),i=Math.abs,a=Math.pow;n({target:"Math",stat:!0},{cbrt:function cbrt(t){return o(t=+t)*a(i(t),1/3)}})},function(t,r){t.exports=Math.sign||function sign(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,r,e){var n=e(2),o=Math.floor,i=Math.log,a=Math.LOG2E;n({target:"Math",stat:!0},{clz32:function clz32(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},function(t,r,e){var n=e(2),o=e(175),i=Math.cosh,a=Math.abs,u=Math.E;n({target:"Math",stat:!0,forced:!i||i(710)===Infinity},{cosh:function cosh(t){var r=o(a(t)-1)+1;return(r+1/(r*u*u))*(u/2)}})},function(t,r){var e=Math.expm1,n=Math.exp;t.exports=!e||22025.465794806718<e(10)||e(10)<22025.465794806718||-2e-17!=e(-2e-17)?function expm1(t){return 0==(t=+t)?t:-1e-6<t&&t<1e-6?t+t*t/2:n(t)-1}:e},function(t,r,e){var n=e(2),o=e(175);n({target:"Math",stat:!0,forced:o!=Math.expm1},{expm1:o})},function(t,r,e){e(2)({target:"Math",stat:!0},{fround:e(178)})},function(t,r,e){var i=e(172),a=Math.abs,n=Math.pow,u=n(2,-52),c=n(2,-23),f=n(2,127)*(2-c),s=n(2,-126);t.exports=Math.fround||function fround(t){var r,e,n=a(t),o=i(t);return n<s?o*(n/s/c+1/u-1/u)*s*c:f<(e=(r=(1+c/u)*n)-(r-n))||e!=e?o*Infinity:o*e}},function(t,r,e){var n=e(2),o=Math.hypot,c=Math.abs,f=Math.sqrt;n({target:"Math",stat:!0,forced:!!o&&o(Infinity,NaN)!==Infinity},{hypot:function hypot(t,r){for(var e,n,o=0,i=0,a=arguments.length,u=0;i<a;)u<(e=c(arguments[i++]))?(o=o*(n=u/e)*n+1,u=e):o+=0<e?(n=e/u)*n:e;return u===Infinity?Infinity:u*f(o)}})},function(t,r,e){var n=e(2),o=e(6),i=Math.imul;n({target:"Math",stat:!0,forced:o(function(){return-5!=i(4294967295,5)||2!=i.length})},{imul:function imul(t,r){var e=65535,n=+t,o=+r,i=e&n,a=e&o;return 0|i*a+((e&n>>>16)*a+i*(e&o>>>16)<<16>>>0)}})},function(t,r,e){var n=e(2),o=Math.log,i=Math.LOG10E;n({target:"Math",stat:!0},{log10:function log10(t){return o(t)*i}})},function(t,r,e){e(2)({target:"Math",stat:!0},{log1p:e(168)})},function(t,r,e){var n=e(2),o=Math.log,i=Math.LN2;n({target:"Math",stat:!0},{log2:function log2(t){return o(t)/i}})},function(t,r,e){e(2)({target:"Math",stat:!0},{sign:e(172)})},function(t,r,e){var n=e(2),o=e(6),i=e(175),a=Math.abs,u=Math.exp,c=Math.E;n({target:"Math",stat:!0,forced:o(function(){return-2e-17!=Math.sinh(-2e-17)})},{sinh:function sinh(t){return a(t=+t)<1?(i(t)-i(-t))/2:(u(t-1)-u(-t-1))*(c/2)}})},function(t,r,e){var n=e(2),o=e(175),i=Math.exp;n({target:"Math",stat:!0},{tanh:function tanh(t){var r=o(t=+t),e=o(-t);return r==Infinity?1:e==Infinity?-1:(r-e)/(i(t)+i(-t))}})},function(t,r,e){e(57)(Math,"Math",!0)},function(t,r,e){var n=e(2),o=Math.ceil,i=Math.floor;n({target:"Math",stat:!0},{trunc:function trunc(t){return(0<t?i:o)(t)}})},function(t,r,e){var n=e(5),o=e(3),i=e(44),a=e(21),u=e(15),c=e(11),f=e(165),s=e(13),l=e(6),p=e(49),h=e(36).f,g=e(4).f,v=e(19).f,d=e(190).trim,y="Number",m=o[y],b=m.prototype,x=c(p(b))==y,w=function(t){var r,e,n,o,i,a,u,c,f=s(t,!1);if("string"==typeof f&&2<f.length)if(43===(r=(f=d(f)).charCodeAt(0))||45===r){if(88===(e=f.charCodeAt(2))||120===e)return NaN}else if(48===r){switch(f.charCodeAt(1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+f}for(a=(i=f.slice(2)).length,u=0;u<a;u++)if((c=i.charCodeAt(u))<48||o<c)return NaN;return parseInt(i,n)}return+f};if(i(y,!m(" 0o1")||!m("0b1")||m("+0x1"))){for(var S,A=function Number(t){var r=arguments.length<1?0:t,e=this;return e instanceof A&&(x?l(function(){b.valueOf.call(e)}):c(e)!=y)?f(new m(w(r)),e,A):w(r)},I=n?h(m):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),E=0;E<I.length;E++)u(m,S=I[E])&&!u(A,S)&&v(A,S,g(m,S));a(o,y,(A.prototype=b).constructor=A)}},function(t,r,e){var n=e(12),o="["+e(191)+"]",i=RegExp("^"+o+o+"*"),a=RegExp(o+o+"*$"),u=function(e){return function(t){var r=String(n(t));return 1&e&&(r=r.replace(i,"")),2&e&&(r=r.replace(a,"")),r}};t.exports={start:u(1),end:u(2),trim:u(3)}},function(t,r){t.exports="\t\n\x0B\f\r                 \u2028\u2029\ufeff"},function(t,r,e){e(2)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},function(t,r,e){e(2)({target:"Number",stat:!0},{isFinite:e(194)})},function(t,r,e){var n=e(3).isFinite;t.exports=Number.isFinite||function isFinite(t){return"number"==typeof t&&n(t)}},function(t,r,e){e(2)({target:"Number",stat:!0},{isInteger:e(196)})},function(t,r,e){var n=e(14),o=Math.floor;t.exports=function isInteger(t){return!n(t)&&isFinite(t)&&o(t)===t}},function(t,r,e){e(2)({target:"Number",stat:!0},{isNaN:function isNaN(t){return t!=t}})},function(t,r,e){var n=e(2),o=e(196),i=Math.abs;n({target:"Number",stat:!0},{isSafeInteger:function isSafeInteger(t){return o(t)&&i(t)<=9007199254740991}})},function(t,r,e){e(2)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(t,r,e){e(2)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(t,r,e){var n=e(2),o=e(202);n({target:"Number",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},function(t,r,e){var n=e(3),o=e(190).trim,i=e(191),a=n.parseFloat,u=1/a(i+"-0")!=-Infinity;t.exports=u?function parseFloat(t){var r=o(String(t)),e=a(r);return 0===e&&"-"==r.charAt(0)?-0:e}:a},function(t,r,e){var n=e(2),o=e(204);n({target:"Number",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},function(t,r,e){var n=e(3),o=e(190).trim,i=e(191),a=n.parseInt,u=/^[+-]?0[Xx]/,c=8!==a(i+"08")||22!==a(i+"0x16");t.exports=c?function parseInt(t,r){var e=o(String(t));return a(e,r>>>0||(u.test(e)?16:10))}:a},function(t,r,e){var n=e(2),h=e(40),g=e(206),v=e(148),o=e(6),i=1..toFixed,d=Math.floor,y=function(t,r,e){return 0===r?e:r%2==1?y(t,r-1,e*t):y(t*t,r/2,e)};n({target:"Number",proto:!0,forced:i&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!o(function(){i.call({})})},{toFixed:function toFixed(t){var r,e,n,o,i=g(this),a=h(t),u=[0,0,0,0,0,0],c="",f="0",s=function(t,r){for(var e=-1,n=r;++e<6;)u[e]=(n+=t*u[e])%1e7,n=d(n/1e7)},l=function(t){for(var r=6,e=0;0<=--r;)u[r]=d((e+=u[r])/t),e=e%t*1e7},p=function(){for(var t=6,r="";0<=--t;)if(""!==r||0===t||0!==u[t]){var e=String(u[t]);r=""===r?e:r+v.call("0",7-e.length)+e}return r};if(a<0||20<a)throw RangeError("Incorrect fraction digits");if(i!=i)return"NaN";if(i<=-1e21||1e21<=i)return String(i);if(i<0&&(c="-",i=-i),1e-21<i)if(e=(r=function(t){for(var r=0,e=t;4096<=e;)r+=12,e/=4096;for(;2<=e;)r+=1,e/=2;return r}(i*y(2,69,1))-69)<0?i*y(2,-r,1):i/y(2,r,1),e*=4503599627370496,0<(r=52-r)){for(s(0,e),n=a;7<=n;)s(1e7,0),n-=7;for(s(y(10,n,1),0),n=r-1;23<=n;)l(1<<23),n-=23;l(1<<n),s(1,1),l(2),f=p()}else s(0,e),s(1<<-r,0),f=p()+v.call("0",a);return f=0<a?c+((o=f.length)<=a?"0."+v.call("0",a-o)+f:f.slice(0,o-a)+"."+f.slice(o-a)):c+f}})},function(t,r,e){var n=e(11);t.exports=function(t){if("number"!=typeof t&&"Number"!=n(t))throw TypeError("Incorrect invocation");return+t}},function(t,r,e){var n=e(2),o=e(6),i=e(206),a=1..toPrecision;n({target:"Number",proto:!0,forced:o(function(){return"1"!==a.call(1,qt)})||!o(function(){a.call({})})},{toPrecision:function toPrecision(t){return t===qt?a.call(i(this)):a.call(i(this),t)}})},function(t,r,e){var n=e(2),o=e(209);n({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},function(t,r,e){var p=e(5),n=e(6),h=e(51),g=e(43),v=e(7),d=e(48),y=e(10),o=Object.assign,i=Object.defineProperty;t.exports=!o||n(function(){if(p&&1!==o({b:1},o(i({},"a",{enumerable:!0,get:function(){i(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},r={},e=Symbol(),n="abcdefghijklmnopqrst";return t[e]=7,n.split("").forEach(function(t){r[t]=t}),7!=o({},t)[e]||h(o({},r)).join("")!=n})?function assign(t,r){for(var e=d(t),n=arguments.length,o=1,i=g.f,a=v.f;o<n;)for(var u,c=y(arguments[o++]),f=i?h(c).concat(i(c)):h(c),s=f.length,l=0;l<s;)u=f[l++],p&&!a.call(c,u)||(e[u]=c[u]);return e}:o},function(t,r,e){e(2)({target:"Object",stat:!0,sham:!e(5)},{create:e(49)})},function(t,r,e){var n=e(2),o=e(5),i=e(212),a=e(48),u=e(60),c=e(19);o&&n({target:"Object",proto:!0,forced:i},{__defineGetter__:function __defineGetter__(t,r){c.f(a(this),t,{get:u(r),enumerable:!0,configurable:!0})}})},function(t,r,e){var n=e(29),o=e(3),i=e(6);t.exports=n||!i(function(){var t=Math.random();__defineSetter__.call(null,t,function(){}),delete o[t]})},function(t,r,e){var n=e(2),o=e(5);n({target:"Object",stat:!0,forced:!o,sham:!o},{defineProperties:e(50)})},function(t,r,e){var n=e(2),o=e(5);n({target:"Object",stat:!0,forced:!o,sham:!o},{defineProperty:e(19).f})},function(t,r,e){var n=e(2),o=e(5),i=e(212),a=e(48),u=e(60),c=e(19);o&&n({target:"Object",proto:!0,forced:i},{__defineSetter__:function __defineSetter__(t,r){c.f(a(this),t,{set:u(r),enumerable:!0,configurable:!0})}})},function(t,r,e){var n=e(2),o=e(217).entries;n({target:"Object",stat:!0},{entries:function entries(t){return o(t)}})},function(t,r,e){var c=e(5),f=e(51),s=e(9),l=e(7).f,n=function(u){return function(t){for(var r,e=s(t),n=f(e),o=n.length,i=0,a=[];i<o;)r=n[i++],c&&!l.call(e,r)||a.push(u?[r,e[r]]:e[r]);return a}};t.exports={entries:n(!0),values:n(!1)}},function(t,r,e){var n=e(2),o=e(163),i=e(6),a=e(14),u=e(162).onFreeze,c=Object.freeze;n({target:"Object",stat:!0,forced:i(function(){c(1)}),sham:!o},{freeze:function freeze(t){return c&&a(t)?c(u(t)):t}})},function(t,r,e){var n=e(2),o=e(164),i=e(77);n({target:"Object",stat:!0},{fromEntries:function fromEntries(t){var e={};return o(t,function(t,r){i(e,t,r)},qt,!0),e}})},function(t,r,e){var n=e(2),o=e(6),i=e(9),a=e(4).f,u=e(5),c=o(function(){a(1)});n({target:"Object",stat:!0,forced:!u||c,sham:!u},{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(t,r){return a(i(t),r)}})},function(t,r,e){var n=e(2),o=e(5),c=e(33),f=e(9),s=e(4),l=e(77);n({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(t){for(var r,e,n=f(t),o=s.f,i=c(n),a={},u=0;u<i.length;)(e=o(n,r=i[u++]))!==qt&&l(a,r,e);return a}})},function(t,r,e){var n=e(2),o=e(6),i=e(53).f;n({target:"Object",stat:!0,forced:o(function(){return!Object.getOwnPropertyNames(1)})},{getOwnPropertyNames:i})},function(t,r,e){var n=e(2),o=e(6),i=e(48),a=e(112),u=e(113);n({target:"Object",stat:!0,forced:o(function(){a(1)}),sham:!u},{getPrototypeOf:function getPrototypeOf(t){return a(i(t))}})},function(t,r,e){e(2)({target:"Object",stat:!0},{is:e(225)})},function(t,r){t.exports=Object.is||function is(t,r){return t===r?0!==t||1/t==1/r:t!=t&&r!=r}},function(t,r,e){var n=e(2),o=e(6),i=e(14),a=Object.isExtensible;n({target:"Object",stat:!0,forced:o(function(){a(1)})},{isExtensible:function isExtensible(t){return!!i(t)&&(!a||a(t))}})},function(t,r,e){var n=e(2),o=e(6),i=e(14),a=Object.isFrozen;n({target:"Object",stat:!0,forced:o(function(){a(1)})},{isFrozen:function isFrozen(t){return!i(t)||!!a&&a(t)}})},function(t,r,e){var n=e(2),o=e(6),i=e(14),a=Object.isSealed;n({target:"Object",stat:!0,forced:o(function(){a(1)})},{isSealed:function isSealed(t){return!i(t)||!!a&&a(t)}})},function(t,r,e){var n=e(2),o=e(48),i=e(51);n({target:"Object",stat:!0,forced:e(6)(function(){i(1)})},{keys:function keys(t){return i(o(t))}})},function(t,r,e){var n=e(2),o=e(5),i=e(212),a=e(48),u=e(13),c=e(112),f=e(4).f;o&&n({target:"Object",proto:!0,forced:i},{__lookupGetter__:function __lookupGetter__(t){var r,e=a(this),n=u(t,!0);do{if(r=f(e,n))return r.get}while(e=c(e))}})},function(t,r,e){var n=e(2),o=e(5),i=e(212),a=e(48),u=e(13),c=e(112),f=e(4).f;o&&n({target:"Object",proto:!0,forced:i},{__lookupSetter__:function __lookupSetter__(t){var r,e=a(this),n=u(t,!0);do{if(r=f(e,n))return r.set}while(e=c(e))}})},function(t,r,e){var n=e(2),o=e(14),i=e(162).onFreeze,a=e(163),u=e(6),c=Object.preventExtensions;n({target:"Object",stat:!0,forced:u(function(){c(1)}),sham:!a},{preventExtensions:function preventExtensions(t){return c&&o(t)?c(i(t)):t}})},function(t,r,e){var n=e(2),o=e(14),i=e(162).onFreeze,a=e(163),u=e(6),c=Object.seal;n({target:"Object",stat:!0,forced:u(function(){c(1)}),sham:!a},{seal:function seal(t){return c&&o(t)?c(i(t)):t}})},function(t,r,e){e(2)({target:"Object",stat:!0},{setPrototypeOf:e(114)})},function(t,r,e){var n=e(103),o=e(21),i=e(236);n||o(Object.prototype,"toString",i,{unsafe:!0})},function(t,r,e){var n=e(103),o=e(102);t.exports=n?{}.toString:function toString(){return"[object "+o(this)+"]"}},function(t,r,e){var n=e(2),o=e(217).values;n({target:"Object",stat:!0},{values:function values(t){return o(t)}})},function(t,r,e){var n=e(2),o=e(202);n({global:!0,forced:parseFloat!=o},{parseFloat:o})},function(t,r,e){var n=e(2),o=e(204);n({global:!0,forced:parseInt!=o},{parseInt:o})},function(t,r,e){var n,o,i,a,u=e(2),c=e(29),f=e(3),s=e(34),l=e(241),p=e(21),h=e(136),g=e(57),v=e(129),d=e(14),y=e(60),m=e(137),b=e(11),x=e(23),w=e(164),S=e(104),A=e(142),I=e(242).set,E=e(244),O=e(245),M=e(247),R=e(246),T=e(248),_=e(25),j=e(44),k=e(54),P=e(79),F=k("species"),N="Promise",L=_.get,U=_.set,D=_.getterFor(N),C=l,B=f.TypeError,q=f.document,z=f.process,W=s("fetch"),V=R.f,G=V,K="process"==b(z),Y=!!(q&&q.createEvent&&f.dispatchEvent),$="unhandledrejection",J=j(N,function(){if(!(x(C)!==String(C))){if(66===P)return!0;if(!K&&"function"!=typeof PromiseRejectionEvent)return!0}if(c&&!C.prototype["finally"])return!0;if(51<=P&&/native code/.test(C))return!1;var t=C.resolve(1),r=function(t){t(function(){},function(){})};return(t.constructor={})[F]=r,!(t.then(function(){})instanceof r)}),X=J||!S(function(t){C.all(t)["catch"](function(){})}),H=function(t){var r;return!(!d(t)||"function"!=typeof(r=t.then))&&r},Q=function(p,h,g){if(!h.notified){h.notified=!0;var v=h.reactions;E(function(){for(var t=h.value,r=1==h.state,e=0;e<v.length;){var n,o,i,a=v[e++],u=r?a.ok:a.fail,c=a.resolve,f=a.reject,s=a.domain;try{u?(r||(2===h.rejection&&et(p,h),h.rejection=1),!0===u?n=t:(s&&s.enter(),n=u(t),s&&(s.exit(),i=!0)),n===a.promise?f(B("Promise-chain cycle")):(o=H(n))?o.call(n,c,f):c(n)):f(t)}catch(l){s&&!i&&s.exit(),f(l)}}h.reactions=[],h.notified=!1,g&&!h.rejection&&tt(p,h)})}},Z=function(t,r,e){var n,o;Y?((n=q.createEvent("Event")).promise=r,n.reason=e,n.initEvent(t,!1,!0),f.dispatchEvent(n)):n={promise:r,reason:e},(o=f["on"+t])?o(n):t===$&&M("Unhandled promise rejection",e)},tt=function(e,n){I.call(f,function(){var t,r=n.value;if(rt(n)&&(t=T(function(){K?z.emit("unhandledRejection",r,e):Z($,e,r)}),n.rejection=K||rt(n)?2:1,t.error))throw t.value})},rt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,r){I.call(f,function(){K?z.emit("rejectionHandled",t):Z("rejectionhandled",t,r.value)})},nt=function(r,e,n,o){return function(t){r(e,n,t,o)}},ot=function(t,r,e,n){r.done||(r.done=!0,n&&(r=n),r.value=e,r.state=2,Q(t,r,!0))},it=function(e,n,o,t){if(!n.done){n.done=!0,t&&(n=t);try{if(e===o)throw B("Promise can't be resolved itself");var i=H(o);i?E(function(){var t={done:!1};try{i.call(o,nt(it,e,t,n),nt(ot,e,t,n))}catch(r){ot(e,t,r,n)}}):(n.value=o,n.state=1,Q(e,n,!1))}catch(r){ot(e,{done:!1},r,n)}}};J&&(C=function Promise(t){m(this,C,N),y(t),n.call(this);var r=L(this);try{t(nt(it,this,r),nt(ot,this,r))}catch(e){ot(this,r,e)}},(n=function Promise(t){U(this,{type:N,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:qt})}).prototype=h(C.prototype,{then:function then(t,r){var e=D(this),n=V(A(this,C));return n.ok="function"!=typeof t||t,n.fail="function"==typeof r&&r,n.domain=K?z.domain:qt,e.parent=!0,e.reactions.push(n),0!=e.state&&Q(this,e,!1),n.promise},"catch":function(t){return this.then(qt,t)}}),o=function(){var t=new n,r=L(t);this.promise=t,this.resolve=nt(it,t,r),this.reject=nt(ot,t,r)},R.f=V=function(t){return t===C||t===i?new o(t):G(t)},c||"function"!=typeof l||(a=l.prototype.then,p(l.prototype,"then",function then(t,r){var e=this;return new C(function(t,r){a.call(e,t,r)}).then(t,r)},{unsafe:!0}),"function"==typeof W&&u({global:!0,enumerable:!0,forced:!0},{fetch:function fetch(t){return O(C,W.apply(f,arguments))}}))),u({global:!0,wrap:!0,forced:J},{Promise:C}),g(C,N,!1,!0),v(N),i=s(N),u({target:N,stat:!0,forced:J},{reject:function reject(t){var r=V(this);return r.reject.call(qt,t),r.promise}}),u({target:N,stat:!0,forced:c||J},{resolve:function resolve(t){return O(c&&this===i?C:this,t)}}),u({target:N,stat:!0,forced:X},{all:function all(t){var u=this,r=V(u),c=r.resolve,f=r.reject,e=T(function(){ -var n=y(u.resolve),o=[],i=0,a=1;w(t,function(t){var r=i++,e=!1;o.push(qt),a++,n.call(u,t).then(function(t){e||(e=!0,o[r]=t,--a||c(o))},f)}),--a||c(o)});return e.error&&f(e.value),r.promise},race:function race(t){var e=this,n=V(e),o=n.reject,r=T(function(){var r=y(e.resolve);w(t,function(t){r.call(e,t).then(n.resolve,o)})});return r.error&&o(r.value),n.promise}})},function(t,r,e){var n=e(3);t.exports=n.Promise},function(t,r,e){var n,o,i,a=e(3),u=e(6),c=e(11),f=e(59),s=e(52),l=e(17),p=e(243),h=a.location,g=a.setImmediate,v=a.clearImmediate,d=a.process,y=a.MessageChannel,m=a.Dispatch,b=0,x={},w="onreadystatechange",S=function(t){if(x.hasOwnProperty(t)){var r=x[t];delete x[t],r()}},A=function(t){return function(){S(t)}},I=function(t){S(t.data)},E=function(t){a.postMessage(t+"",h.protocol+"//"+h.host)};g&&v||(g=function setImmediate(t){for(var r=[],e=1;e<arguments.length;)r.push(arguments[e++]);return x[++b]=function(){("function"==typeof t?t:Function(t)).apply(qt,r)},n(b),b},v=function clearImmediate(t){delete x[t]},"process"==c(d)?n=function(t){d.nextTick(A(t))}:m&&m.now?n=function(t){m.now(A(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=I,n=f(i.postMessage,i,1)):!a.addEventListener||"function"!=typeof postMessage||a.importScripts||u(E)?n=w in l("script")?function(t){s.appendChild(l("script"))[w]=function(){s.removeChild(this),S(t)}}:function(t){setTimeout(A(t),0)}:(n=E,a.addEventListener("message",I,!1))),t.exports={set:g,clear:v}},function(t,r,e){var n=e(80);t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(n)},function(t,r,e){var n,o,i,a,u,c,f,s,l=e(3),p=e(4).f,h=e(11),g=e(242).set,v=e(243),d=l.MutationObserver||l.WebKitMutationObserver,y=l.process,m=l.Promise,b="process"==h(y),x=p(l,"queueMicrotask"),w=x&&x.value;w||(n=function(){var t,r;for(b&&(t=y.domain)&&t.exit();o;){r=o.fn,o=o.next;try{r()}catch(e){throw o?a():i=qt,e}}i=qt,t&&t.enter()},a=b?function(){y.nextTick(n)}:d&&!v?(u=!0,c=document.createTextNode(""),new d(n).observe(c,{characterData:!0}),function(){c.data=u=!u}):m&&m.resolve?(f=m.resolve(qt),s=f.then,function(){s.call(f,n)}):function(){g.call(l,n)}),t.exports=w||function(t){var r={fn:t,next:qt};i&&(i.next=r),o||(o=r,a()),i=r}},function(t,r,e){var n=e(20),o=e(14),i=e(246);t.exports=function(t,r){if(n(t),o(r)&&r.constructor===t)return r;var e=i.f(t);return(0,e.resolve)(r),e.promise}},function(t,r,e){var o=e(60),n=function(t){var e,n;this.promise=new t(function(t,r){if(e!==qt||n!==qt)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=o(e),this.reject=o(n)};t.exports.f=function(t){return new n(t)}},function(t,r,e){var n=e(3);t.exports=function(t,r){var e=n.console;e&&e.error&&(1===arguments.length?e.error(t):e.error(t,r))}},function(t,r){t.exports=function(t){try{return{error:!1,value:t()}}catch(r){return{error:!0,value:r}}}},function(t,r,e){var n=e(2),f=e(60),o=e(246),i=e(248),s=e(164);n({target:"Promise",stat:!0},{allSettled:function allSettled(t){var u=this,r=o.f(u),c=r.resolve,e=r.reject,n=i(function(){var n=f(u.resolve),o=[],i=0,a=1;s(t,function(t){var r=i++,e=!1;o.push(qt),a++,n.call(u,t).then(function(t){e||(e=!0,o[r]={status:"fulfilled",value:t},--a||c(o))},function(t){e||(e=!0,o[r]={status:"rejected",reason:t},--a||c(o))})}),--a||c(o)});return n.error&&e(n.value),r.promise}})},function(t,r,e){var n=e(2),o=e(29),i=e(241),a=e(6),u=e(34),c=e(142),f=e(245),s=e(21);n({target:"Promise",proto:!0,real:!0,forced:!!i&&a(function(){i.prototype["finally"].call({then:function(){}},function(){})})},{"finally":function(r){var e=c(this,u("Promise")),t="function"==typeof r;return this.then(t?function(t){return f(e,r()).then(function(){return t})}:r,t?function(t){return f(e,r()).then(function(){throw t})}:r)}}),o||"function"!=typeof i||i.prototype["finally"]||s(i.prototype,"finally",u("Promise").prototype["finally"])},function(t,r,e){var n=e(2),o=e(34),i=e(60),a=e(20),u=e(6),c=o("Reflect","apply"),f=Function.apply;n({target:"Reflect",stat:!0,forced:!u(function(){c(function(){})})},{apply:function apply(t,r,e){return i(t),a(e),c?c(t,r,e):f.call(t,r,e)}})},function(t,r,e){var n=e(2),o=e(34),u=e(60),c=e(20),f=e(14),s=e(49),l=e(154),i=e(6),p=o("Reflect","construct"),h=i(function(){function F(){}return!(p(function(){},[],F)instanceof F)}),g=!i(function(){p(function(){})}),a=h||g;n({target:"Reflect",stat:!0,forced:a,sham:a},{construct:function construct(t,r){u(t),c(r);var e=arguments.length<3?t:u(arguments[2]);if(g&&!h)return p(t,r,e);if(t==e){switch(r.length){case 0:return new t;case 1:return new t(r[0]);case 2:return new t(r[0],r[1]);case 3:return new t(r[0],r[1],r[2]);case 4:return new t(r[0],r[1],r[2],r[3])}var n=[null];return n.push.apply(n,r),new(l.apply(t,n))}var o=e.prototype,i=s(f(o)?o:Object.prototype),a=Function.apply.call(t,i,r);return f(a)?a:i}})},function(t,r,e){var n=e(2),o=e(5),i=e(20),a=e(13),u=e(19);n({target:"Reflect",stat:!0,forced:e(6)(function(){Reflect.defineProperty(u.f({},1,{value:1}),1,{value:2})}),sham:!o},{defineProperty:function defineProperty(t,r,e){i(t);var n=a(r,!0);i(e);try{return u.f(t,n,e),!0}catch(o){return!1}}})},function(t,r,e){var n=e(2),o=e(20),i=e(4).f;n({target:"Reflect",stat:!0},{deleteProperty:function deleteProperty(t,r){var e=i(o(t),r);return!(e&&!e.configurable)&&delete t[r]}})},function(t,r,e){var n=e(2),i=e(14),a=e(20),u=e(15),c=e(4),f=e(112);n({target:"Reflect",stat:!0},{get:function get(t,r){var e,n,o=arguments.length<3?t:arguments[2];return a(t)===o?t[r]:(e=c.f(t,r))?u(e,"value")?e.value:e.get===qt?qt:e.get.call(o):i(n=f(t))?get(n,r,o):void 0}})},function(t,r,e){var n=e(2),o=e(5),i=e(20),a=e(4);n({target:"Reflect",stat:!0,sham:!o},{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(t,r){return a.f(i(t),r)}})},function(t,r,e){var n=e(2),o=e(20),i=e(112);n({target:"Reflect",stat:!0,sham:!e(113)},{getPrototypeOf:function getPrototypeOf(t){return i(o(t))}})},function(t,r,e){e(2)({target:"Reflect",stat:!0},{has:function has(t,r){return r in t}})},function(t,r,e){var n=e(2),o=e(20),i=Object.isExtensible;n({target:"Reflect",stat:!0},{isExtensible:function isExtensible(t){return o(t),!i||i(t)}})},function(t,r,e){e(2)({target:"Reflect",stat:!0},{ownKeys:e(33)})},function(t,r,e){var n=e(2),o=e(34),i=e(20);n({target:"Reflect",stat:!0,sham:!e(163)},{preventExtensions:function preventExtensions(t){i(t);try{var r=o("Object","preventExtensions");return r&&r(t),!0}catch(e){return!1}}})},function(t,r,e){var n=e(2),u=e(20),c=e(14),f=e(15),o=e(6),s=e(19),l=e(4),p=e(112),h=e(8);n({target:"Reflect",stat:!0,forced:o(function(){var t=s.f({},"a",{configurable:!0});return!1!==Reflect.set(p(t),"a",1,t)})},{set:function set(t,r,e){var n,o,i=arguments.length<4?t:arguments[3],a=l.f(u(t),r);if(!a){if(c(o=p(t)))return set(o,r,e,i);a=h(0)}if(f(a,"value")){if(!1===a.writable||!c(i))return!1;if(n=l.f(i,r)){if(n.get||n.set||!1===n.writable)return!1;n.value=e,s.f(i,r,n)}else s.f(i,r,h(0,e));return!0}return a.set!==qt&&(a.set.call(i,e),!0)}})},function(t,r,e){var n=e(2),o=e(20),i=e(115),a=e(114);a&&n({target:"Reflect",stat:!0},{setPrototypeOf:function setPrototypeOf(t,r){o(t),i(r);try{return a(t,r),!0}catch(e){return!1}}})},function(t,r,e){var n=e(5),o=e(3),i=e(44),u=e(165),a=e(19).f,c=e(36).f,f=e(265),s=e(266),l=e(267),p=e(21),h=e(6),g=e(25).set,v=e(129),d=e(54)("match"),y=o.RegExp,m=y.prototype,b=/a/g,x=/a/g,w=new y(b)!==b,S=l.UNSUPPORTED_Y;if(n&&i("RegExp",!w||S||h(function(){return x[d]=!1,y(b)!=b||y(x)==x||"/a/i"!=y(b,"i")}))){for(var A=function RegExp(t,r){var e,n=this instanceof A,o=f(t),i=r===qt;if(!n&&o&&t.constructor===A&&i)return t;w?o&&!i&&(t=t.source):t instanceof A&&(i&&(r=s.call(t)),t=t.source),S&&(e=!!r&&-1<r.indexOf("y"))&&(r=r.replace(/y/g,""));var a=u(w?new y(t,r):y(t,r),n?this:m,A);return S&&e&&g(a,{sticky:e}),a},I=function(r){r in A||a(A,r,{configurable:!0,get:function(){return y[r]},set:function(t){y[r]=t}})},E=c(y),O=0;O<E.length;)I(E[O++]);(m.constructor=A).prototype=m,p(o,"RegExp",A)}v("RegExp")},function(t,r,e){var n=e(14),o=e(11),i=e(54)("match");t.exports=function(t){var r;return n(t)&&((r=t[i])!==qt?!!r:"RegExp"==o(t))}},function(t,r,e){var n=e(20);t.exports=function(){var t=n(this),r="";return t.global&&(r+="g"),t.ignoreCase&&(r+="i"),t.multiline&&(r+="m"),t.dotAll&&(r+="s"),t.unicode&&(r+="u"),t.sticky&&(r+="y"),r}},function(t,r,e){var n=e(6);function RE(t,r){return RegExp(t,r)}r.UNSUPPORTED_Y=n(function(){var t=RE("a","y");return t.lastIndex=2,null!=t.exec("abcd")}),r.BROKEN_CARET=n(function(){var t=RE("^r","gy");return t.lastIndex=2,null!=t.exec("str")})},function(t,r,e){var n=e(2),o=e(269);n({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},function(t,r,e){var n,o,l=e(266),i=e(267),p=RegExp.prototype.exec,h=String.prototype.replace,a=p,g=(o=/b*/g,p.call(n=/a/,"a"),p.call(o,"a"),0!==n.lastIndex||0!==o.lastIndex),v=i.UNSUPPORTED_Y||i.BROKEN_CARET,d=/()??/.exec("")[1]!==qt;(g||d||v)&&(a=function exec(t){var r,e,n,o,i=this,a=v&&i.sticky,u=l.call(i),c=i.source,f=0,s=t;return a&&(-1===(u=u.replace("y","")).indexOf("g")&&(u+="g"),s=String(t).slice(i.lastIndex),0<i.lastIndex&&(!i.multiline||i.multiline&&"\n"!==t[i.lastIndex-1])&&(c="(?: "+c+")",s=" "+s,f++),e=new RegExp("^(?:"+c+")",u)),d&&(e=new RegExp("^"+c+"$(?!\\s)",u)),g&&(r=i.lastIndex),n=p.call(a?e:i,s),a?n?(n.input=n.input.slice(f),n[0]=n[0].slice(f),n.index=i.lastIndex,i.lastIndex+=n[0].length):i.lastIndex=0:g&&n&&(i.lastIndex=i.global?n.index+n[0].length:r),d&&n&&1<n.length&&h.call(n[0],e,function(){for(o=1;o<arguments.length-2;o++)arguments[o]===qt&&(n[o]=qt)}),n}),t.exports=a},function(t,r,e){var n=e(5),o=e(19),i=e(266),a=e(267).UNSUPPORTED_Y;n&&("g"!=/./g.flags||a)&&o.f(RegExp.prototype,"flags",{configurable:!0,get:i})},function(t,r,e){var n=e(5),o=e(267).UNSUPPORTED_Y,i=e(19).f,a=e(25).get,u=RegExp.prototype;n&&o&&i(RegExp.prototype,"sticky",{configurable:!0,get:function(){if(this===u)return qt;if(this instanceof RegExp)return!!a(this).sticky;throw TypeError("Incompatible receiver, RegExp required")}})},function(t,r,e){var n,o,i=e(2),a=e(14),u=(n=!1,(o=/[ac]/).exec=function(){return n=!0,/./.exec.apply(this,arguments)},!0===o.test("abc")&&n),c=/./.test;i({target:"RegExp",proto:!0,forced:!u},{test:function(t){if("function"!=typeof this.exec)return c.call(this,t);var r=this.exec(t);if(null!==r&&!a(r))throw new Error("RegExp exec method returned something other than an Object or null");return!!r}})},function(t,r,e){var n=e(21),o=e(20),i=e(6),a=e(266),u="toString",c=RegExp.prototype,f=c[u];!i(function(){return"/a/b"!=f.call({source:"a",flags:"b"})})&&f.name==u||n(RegExp.prototype,u,function toString(){var t=o(this),r=String(t.source),e=t.flags;return"/"+r+"/"+String(e===qt&&t instanceof RegExp&&!("flags"in c)?a.call(t):e)},{unsafe:!0})},function(t,r,e){var n=e(161),o=e(166);t.exports=n("Set",function(t){return function Set(){return t(this,arguments.length?arguments[0]:qt)}},o)},function(t,r,e){var n=e(2),o=e(276).codeAt;n({target:"String",proto:!0},{codePointAt:function codePointAt(t){return o(this,t)}})},function(t,r,e){var c=e(40),f=e(12),n=function(u){return function(t,r){var e,n,o=String(f(t)),i=c(r),a=o.length;return i<0||a<=i?u?"":qt:(e=o.charCodeAt(i))<55296||56319<e||i+1===a||(n=o.charCodeAt(i+1))<56320||57343<n?u?o.charAt(i):e:u?o.slice(i,i+2):n-56320+(e-55296<<10)+65536}};t.exports={codeAt:n(!1),charAt:n(!0)}},function(t,r,e){var n,o=e(2),i=e(4).f,a=e(39),u=e(278),c=e(12),f=e(279),s=e(29),l="".endsWith,p=Math.min,h=f("endsWith");o({target:"String",proto:!0,forced:!!(s||h||(!(n=i(String.prototype,"endsWith"))||n.writable))&&!h},{endsWith:function endsWith(t){var r=String(c(this));u(t);var e=1<arguments.length?arguments[1]:qt,n=a(r.length),o=e===qt?n:p(a(e),n),i=String(t);return l?l.call(r,i,o):r.slice(o-i.length,o)===i}})},function(t,r,e){var n=e(265);t.exports=function(t){if(n(t))throw TypeError("The method doesn't accept regular expressions");return t}},function(t,r,e){var o=e(54)("match");t.exports=function(t){var r=/./;try{"/./"[t](r)}catch(e){try{return r[o]=!1,"/./"[t](r)}catch(n){}}return!1}},function(t,r,e){var n=e(2),i=e(41),a=String.fromCharCode,o=String.fromCodePoint;n({target:"String",stat:!0,forced:!!o&&1!=o.length},{fromCodePoint:function fromCodePoint(t){for(var r,e=[],n=arguments.length,o=0;o<n;){if(r=+arguments[o++],i(r,1114111)!==r)throw RangeError(r+" is not a valid code point");e.push(r<65536?a(r):a(55296+((r-=65536)>>10),r%1024+56320))}return e.join("")}})},function(t,r,e){var n=e(2),o=e(278),i=e(12);n({target:"String",proto:!0,forced:!e(279)("includes")},{includes:function includes(t){return!!~String(i(this)).indexOf(o(t),1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var o=e(276).charAt,n=e(25),i=e(109),a="String Iterator",u=n.set,c=n.getterFor(a);i(String,"String",function(t){u(this,{type:a,string:String(t),index:0})},function next(){var t,r=c(this),e=r.string,n=r.index;return e.length<=n?{value:qt,done:!0}:(t=o(e,n),r.index+=t.length,{value:t,done:!1})})},function(t,r,e){var n=e(284),l=e(20),p=e(39),o=e(12),h=e(285),g=e(286);n("match",1,function(n,f,s){return[function match(t){var r=o(this),e=t==qt?qt:t[n];return e!==qt?e.call(t,r):new RegExp(t)[n](String(r))},function(t){var r=s(f,t,this);if(r.done)return r.value;var e=l(t),n=String(this);if(!e.global)return g(e,n);for(var o,i=e.unicode,a=[],u=e.lastIndex=0;null!==(o=g(e,n));){var c=String(o[0]);""===(a[u]=c)&&(e.lastIndex=h(n,p(e.lastIndex),i)),u++}return 0===u?null:a}]})},function(t,r,e){var s=e(21),l=e(6),p=e(54),h=e(269),g=e(18),v=p("species"),d=!l(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}),y="$0"==="a".replace(/./,"$0"),m=!l(function(){var t=/(?:)/,r=t.exec;t.exec=function(){return r.apply(this,arguments)};var e="ab".split(t);return 2!==e.length||"a"!==e[0]||"b"!==e[1]});t.exports=function(e,t,r,n){var o=p(e),i=!l(function(){var t={};return t[o]=function(){return 7},7!=""[e](t)}),a=i&&!l(function(){var t=!1,r=/a/;return"split"===e&&((r={constructor:{}}).constructor[v]=function(){return r},r.flags="",r[o]=/./[o]),r.exec=function(){return t=!0,null},r[o](""),!t});if(!i||!a||"replace"===e&&(!d||!y)||"split"===e&&!m){var u=/./[o],c=r(o,""[e],function(t,r,e,n,o){return r.exec===h?i&&!o?{done:!0,value:u.call(r,e,n)}:{done:!0,value:t.call(e,r,n)}:{done:!1}},{REPLACE_KEEPS_$0:y}),f=c[1];s(String.prototype,e,c[0]),s(RegExp.prototype,o,2==t?function(t,r){return f.call(t,this,r)}:function(t){return f.call(t,this)})}n&&g(RegExp.prototype[o],"sham",!0)}},function(t,r,e){var n=e(276).charAt;t.exports=function(t,r,e){return r+(e?n(t,r).length:1)}},function(t,r,e){var o=e(11),i=e(269);t.exports=function(t,r){var e=t.exec;if("function"==typeof e){var n=e.call(t,r);if("object"!=typeof n)throw TypeError("RegExp exec method returned something other than an Object or null");return n}if("RegExp"!==o(t))throw TypeError("RegExp#exec called on incompatible receiver");return i.call(t,r)}},function(t,r,e){var n=e(2),o=e(110),i=e(12),f=e(39),a=e(60),s=e(20),u=e(11),c=e(265),l=e(266),p=e(18),h=e(6),g=e(54),v=e(142),d=e(285),y=e(25),m=e(29),b=g("matchAll"),x="RegExp String",w=x+" Iterator",S=y.set,A=y.getterFor(w),I=RegExp.prototype,E=I.exec,O="".matchAll,M=!!O&&!h(function(){"a".matchAll(/./)}),R=o(function RegExpStringIterator(t,r,e,n){S(this,{type:w,regexp:t,string:r,global:e,unicode:n,done:!1})},x,function next(){var t=A(this);if(t.done)return{value:qt,done:!0};var r=t.regexp,e=t.string,n=function(t,r){var e,n=t.exec;if("function"!=typeof n)return E.call(t,r);if("object"!=typeof(e=n.call(t,r)))throw TypeError("Incorrect exec result");return e}(r,e);return null===n?{value:qt,done:t.done=!0}:t.global?(""==String(n[0])&&(r.lastIndex=d(e,f(r.lastIndex),t.unicode)),{value:n,done:!1}):{value:n,done:!(t.done=!0)}}),T=function(t){var r,e,n,o,i,a,u=s(this),c=String(t);return r=v(u,RegExp),(e=u.flags)===qt&&u instanceof RegExp&&!("flags"in I)&&(e=l.call(u)),n=e===qt?"":String(e),o=new r(r===RegExp?u.source:u,n),i=!!~n.indexOf("g"),a=!!~n.indexOf("u"),o.lastIndex=f(u.lastIndex),new R(o,c,i,a)};n({target:"String",proto:!0,forced:M},{matchAll:function matchAll(t){var r,e,n,o=i(this);if(null!=t){if(c(t)&&!~String(i("flags"in I?t.flags:l.call(t))).indexOf("g"))throw TypeError("`.matchAll` does not allow non-global regexes");if(M)return O.apply(o,arguments);if((e=t[b])===qt&&m&&"RegExp"==u(t)&&(e=T),null!=e)return a(e).call(t,o)}else if(M)return O.apply(o,arguments);return r=String(o),n=new RegExp(t,"g"),m?T.call(n,r):n[b](r)}}),m||b in I||p(I,b,T)},function(t,r,e){var n=e(2),o=e(147).end;n({target:"String",proto:!0,forced:e(289)},{padEnd:function padEnd(t){return o(this,t,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var n=e(80);t.exports=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(n)},function(t,r,e){var n=e(2),o=e(147).start;n({target:"String",proto:!0,forced:e(289)},{padStart:function padStart(t){return o(this,t,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var n=e(2),a=e(9),u=e(39);n({target:"String",stat:!0},{raw:function raw(t){for(var r=a(t.raw),e=u(r.length),n=arguments.length,o=[],i=0;i<e;)o.push(String(r[i++])),i<n&&o.push(String(arguments[i]));return o.join("")}})},function(t,r,e){e(2)({target:"String",proto:!0},{repeat:e(148)})},function(t,r,e){var n=e(284),I=e(20),p=e(48),E=e(39),O=e(40),i=e(12),M=e(285),R=e(286),T=Math.max,_=Math.min,h=Math.floor,g=/\$([$&'`]|\d\d?|<[^>]*>)/g,v=/\$([$&'`]|\d\d?)/g;n("replace",2,function(o,w,S,A){return[function replace(t,r){var e=i(this),n=t==qt?qt:t[o];return n!==qt?n.call(t,e,r):w.call(String(e),t,r)},function(t,r){if(A.REPLACE_KEEPS_$0||"string"==typeof r&&-1===r.indexOf("$0")){var e=S(w,t,this,r);if(e.done)return e.value}var n=I(t),o=String(this),i="function"==typeof r;i||(r=String(r));var a=n.global;if(a){var u=n.unicode;n.lastIndex=0}for(var c=[];;){var f=R(n,o);if(null===f)break;if(c.push(f),!a)break;""===String(f[0])&&(n.lastIndex=M(o,E(n.lastIndex),u))}for(var s,l="",p=0,h=0;h<c.length;h++){f=c[h];for(var g=String(f[0]),v=T(_(O(f.index),o.length),0),d=[],y=1;y<f.length;y++)d.push((s=f[y])===qt?s:String(s));var m=f.groups;if(i){var b=[g].concat(d,v,o);m!==qt&&b.push(m);var x=String(r.apply(qt,b))}else x=getSubstitution(g,o,v,d,m,r);p<=v&&(l+=o.slice(p,v)+x,p=v+g.length)}return l+o.slice(p)}];function getSubstitution(i,a,u,c,f,t){var s=u+i.length,l=c.length,r=v;return f!==qt&&(f=p(f),r=g),w.call(t,r,function(t,r){var e;switch(r.charAt(0)){case"$":return"$";case"&":return i;case"`":return a.slice(0,u);case"'":return a.slice(s);case"<":e=f[r.slice(1,-1)];break;default:var n=+r;if(0==n)return t;if(l<n){var o=h(n/10);return 0===o?t:o<=l?c[o-1]===qt?r.charAt(1):c[o-1]+r.charAt(1):t}e=c[n-1]}return e===qt?"":e})}})},function(t,r,e){var n=e(284),c=e(20),o=e(12),f=e(225),s=e(286);n("search",1,function(n,a,u){return[function search(t){var r=o(this),e=t==qt?qt:t[n];return e!==qt?e.call(t,r):new RegExp(t)[n](String(r))},function(t){var r=u(a,t,this);if(r.done)return r.value;var e=c(t),n=String(this),o=e.lastIndex;f(o,0)||(e.lastIndex=0);var i=s(e,n);return f(e.lastIndex,o)||(e.lastIndex=o),null===i?-1:i.index}]})},function(t,r,e){var n=e(284),s=e(265),m=e(20),l=e(12),b=e(142),x=e(285),w=e(39),S=e(286),p=e(269),o=e(6),h=[].push,A=Math.min,I=4294967295,E=!o(function(){return!RegExp(I,"y")});n("split",2,function(o,v,d){var y;return y="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||1<".".split(/()()/).length||"".split(/.?/).length?function(t,r){var e=String(l(this)),n=r===qt?I:r>>>0;if(0==n)return[];if(t===qt)return[e];if(!s(t))return v.call(e,t,n);for(var o,i,a,u=[],c=0,f=new RegExp(t.source,(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":"")+"g");(o=p.call(f,e))&&!(c<(i=f.lastIndex)&&(u.push(e.slice(c,o.index)),1<o.length&&o.index<e.length&&h.apply(u,o.slice(1)),a=o[0].length,c=i,n<=u.length));)f.lastIndex===o.index&&f.lastIndex++;return c===e.length?!a&&f.test("")||u.push(""):u.push(e.slice(c)),n<u.length?u.slice(0,n):u}:"0".split(qt,0).length?function(t,r){return t===qt&&0===r?[]:v.call(this,t,r)}:v,[function split(t,r){var e=l(this),n=t==qt?qt:t[o];return n!==qt?n.call(t,e,r):y.call(String(e),t,r)},function(t,r){var e=d(y,t,this,r,y!==v);if(e.done)return e.value;var n=m(t),o=String(this),i=b(n,RegExp),a=n.unicode,u=new i(E?n:"^(?:"+n.source+")",(n.ignoreCase?"i":"")+(n.multiline?"m":"")+(n.unicode?"u":"")+(E?"y":"g")),c=r===qt?I:r>>>0;if(0==c)return[];if(0===o.length)return null===S(u,o)?[o]:[];for(var f=0,s=0,l=[];s<o.length;){u.lastIndex=E?s:0;var p,h=S(u,E?o:o.slice(s));if(null===h||(p=A(w(u.lastIndex+(E?0:s)),o.length))===f)s=x(o,s,a);else{if(l.push(o.slice(f,s)),l.length===c)return l;for(var g=1;g<=h.length-1;g++)if(l.push(h[g]),l.length===c)return l;s=f=p}}return l.push(o.slice(f)),l}]},!E)},function(t,r,e){var n,o=e(2),i=e(4).f,a=e(39),u=e(278),c=e(12),f=e(279),s=e(29),l="".startsWith,p=Math.min,h=f("startsWith");o({target:"String",proto:!0,forced:!!(s||h||(!(n=i(String.prototype,"startsWith"))||n.writable))&&!h},{startsWith:function startsWith(t){var r=String(c(this));u(t);var e=a(p(1<arguments.length?arguments[1]:qt,r.length)),n=String(t);return l?l.call(r,n,e):r.slice(e,e+n.length)===n}})},function(t,r,e){var n=e(2),o=e(190).trim;n({target:"String",proto:!0,forced:e(298)("trim")},{trim:function trim(){return o(this)}})},function(t,r,e){var n=e(6),o=e(191);t.exports=function(t){return n(function(){return!!o[t]()||"​…᠎"!="​…᠎"[t]()||o[t].name!==t})}},function(t,r,e){var n=e(2),o=e(190).end,i=e(298)("trimEnd"),a=i?function a(){return o(this)}:"".trimEnd;n({target:"String",proto:!0,forced:i},{trimEnd:a,trimRight:a})},function(t,r,e){var n=e(2),o=e(190).start,i=e(298)("trimStart"),a=i?function a(){return o(this)}:"".trimStart;n({target:"String",proto:!0,forced:i},{trimStart:a,trimLeft:a})},function(t,r,e){var n=e(2),o=e(302);n({target:"String",proto:!0,forced:e(303)("anchor")},{anchor:function anchor(t){return o(this,"a","name",t)}})},function(t,r,e){var a=e(12),u=/"/g;t.exports=function(t,r,e,n){var o=String(a(t)),i="<"+r;return""!==e&&(i+=" "+e+'="'+String(n).replace(u,""")+'"'),i+">"+o+"</"+r+">"}},function(t,r,e){var n=e(6);t.exports=function(r){return n(function(){var t=""[r]('"');return t!==t.toLowerCase()||3<t.split('"').length})}},function(t,r,e){var n=e(2),o=e(302);n({target:"String",proto:!0,forced:e(303)("big")},{big:function big(){return o(this,"big","","")}})},function(t,r,e){var n=e(2),o=e(302);n({target:"String",proto:!0,forced:e(303)("blink")},{blink:function blink(){return o(this,"blink","","")}})},function(t,r,e){var n=e(2),o=e(302);n({target:"String",proto:!0,forced:e(303)("bold")},{bold:function bold(){return o(this,"b","","")}})},function(t,r,e){var n=e(2),o=e(302);n({target:"String",proto:!0,forced:e(303)("fixed")},{fixed:function fixed(){return o(this,"tt","","")}})},function(t,r,e){var n=e(2),o=e(302);n({target:"String",proto:!0,forced:e(303)("fontcolor")},{fontcolor:function fontcolor(t){return o(this,"font","color",t)}})},function(t,r,e){var n=e(2),o=e(302);n({target:"String",proto:!0,forced:e(303)("fontsize")},{fontsize:function fontsize(t){return o(this,"font","size",t)}})},function(t,r,e){var n=e(2),o=e(302);n({target:"String",proto:!0,forced:e(303)("italics")},{italics:function italics(){return o(this,"i","","")}})},function(t,r,e){var n=e(2),o=e(302);n({target:"String",proto:!0,forced:e(303)("link")},{link:function link(t){return o(this,"a","href",t)}})},function(t,r,e){var n=e(2),o=e(302);n({target:"String",proto:!0,forced:e(303)("small")},{small:function small(){return o(this,"small","","")}})},function(t,r,e){var n=e(2),o=e(302);n({target:"String",proto:!0,forced:e(303)("strike")},{strike:function strike(){return o(this,"strike","","")}})},function(t,r,e){var n=e(2),o=e(302);n({target:"String",proto:!0,forced:e(303)("sub")},{sub:function sub(){return o(this,"sub","","")}})},function(t,r,e){var n=e(2),o=e(302);n({target:"String",proto:!0,forced:e(303)("sup")},{sup:function sup(){return o(this,"sup","","")}})},function(t,r,e){e(317)("Float32",function(n){return function Float32Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){var c=e(2),f=e(3),n=e(5),g=e(318),o=e(135),i=e(134),v=e(137),a=e(8),d=e(18),y=e(39),m=e(138),b=e(319),u=e(13),s=e(15),l=e(102),x=e(14),w=e(49),S=e(114),A=e(36).f,I=e(321),E=e(58).forEach,O=e(129),p=e(19),h=e(4),M=e(25),R=e(165),T=M.get,_=M.set,j=p.f,k=h.f,P=Math.round,F=f.RangeError,N=i.ArrayBuffer,L=i.DataView,U=o.NATIVE_ARRAY_BUFFER_VIEWS,D=o.TYPED_ARRAY_TAG,C=o.TypedArray,B=o.TypedArrayPrototype,q=o.aTypedArrayConstructor,z=o.isTypedArray,W="BYTES_PER_ELEMENT",V="Wrong length",G=function(t,r){for(var e=0,n=r.length,o=new(q(t))(n);e<n;)o[e]=r[e++];return o},K=function(t,r){j(t,r,{get:function(){return T(this)[r]}})},Y=function(t){var r;return t instanceof N||"ArrayBuffer"==(r=l(t))||"SharedArrayBuffer"==r},$=function(t,r){return z(t)&&"symbol"!=typeof r&&r in t&&String(+r)==String(r)},J=function getOwnPropertyDescriptor(t,r){return $(t,r=u(r,!0))?a(2,t[r]):k(t,r)},X=function defineProperty(t,r,e){return!($(t,r=u(r,!0))&&x(e)&&s(e,"value"))||s(e,"get")||s(e,"set")||e.configurable||s(e,"writable")&&!e.writable||s(e,"enumerable")&&!e.enumerable?j(t,r,e):(t[r]=e.value,t)};n?(U||(h.f=J,p.f=X,K(B,"buffer"),K(B,"byteOffset"),K(B,"byteLength"),K(B,"length")),c({target:"Object",stat:!0,forced:!U},{getOwnPropertyDescriptor:J,defineProperty:X}),t.exports=function(t,r,i){var s=t.match(/\d+$/)[0]/8,l=t+(i?"Clamped":"")+"Array",e="get"+t,a="set"+t,o=f[l],p=o,n=p&&p.prototype,u={},h=function(t,o){j(t,o,{get:function(){return t=o,(r=T(this)).view[e](t*s+r.byteOffset,!0);var t,r},set:function(t){return r=o,e=t,n=T(this),i&&(e=(e=P(e))<0?0:255<e?255:255&e),void n.view[a](r*s+n.byteOffset,e,!0);var r,e,n},enumerable:!0})};U?g&&(p=r(function(t,r,e,n){return v(t,p,l),R(x(r)?Y(r)?n!==qt?new o(r,b(e,s),n):e!==qt?new o(r,b(e,s)):new o(r):z(r)?G(p,r):I.call(p,r):new o(m(r)),t,p)}),S&&S(p,C),E(A(o),function(t){t in p||d(p,t,o[t])}),p.prototype=n):(p=r(function(t,r,e,n){v(t,p,l);var o,i,a,u=0,c=0;if(x(r)){if(!Y(r))return z(r)?G(p,r):I.call(p,r);o=r,c=b(e,s);var f=r.byteLength;if(n===qt){if(f%s)throw F(V);if((i=f-c)<0)throw F(V)}else if(f<(i=y(n)*s)+c)throw F(V);a=i/s}else a=m(r),o=new N(i=a*s);for(_(t,{buffer:o,byteOffset:c,byteLength:i,length:a,view:new L(o)});u<a;)h(t,u++)}),S&&S(p,C),n=p.prototype=w(B)),n.constructor!==p&&d(n,"constructor",p),D&&d(n,D,l),c({global:!0,forced:(u[l]=p)!=o,sham:!U},u),W in p||d(p,W,s),W in n||d(n,W,s),O(l)}):t.exports=function(){}},function(t,r,e){var n=e(3),o=e(6),i=e(104),a=e(135).NATIVE_ARRAY_BUFFER_VIEWS,u=n.ArrayBuffer,c=n.Int8Array;t.exports=!a||!o(function(){c(1)})||!o(function(){new c(-1)})||!i(function(t){new c,new c(null),new c(1.5),new c(t)},!0)||o(function(){return 1!==new c(new u(2),1,qt).length})},function(t,r,e){var n=e(320);t.exports=function(t,r){var e=n(t);if(e%r)throw RangeError("Wrong offset");return e}},function(t,r,e){var n=e(40);t.exports=function(t){var r=n(t);if(r<0)throw RangeError("The argument can't be less than 0");return r}},function(t,r,e){var p=e(48),h=e(39),g=e(101),v=e(99),d=e(59),y=e(135).aTypedArrayConstructor;t.exports=function from(t){var r,e,n,o,i,a,u=p(t),c=arguments.length,f=1<c?arguments[1]:qt,s=f!==qt,l=g(u);if(l!=qt&&!v(l))for(a=(i=l.call(u)).next,u=[];!(o=a.call(i)).done;)u.push(o.value);for(s&&2<c&&(f=d(f,arguments[2],2)),e=h(u.length),n=new(y(this))(e),r=0;r<e;r++)n[r]=s?f(u[r],r):u[r];return n}},function(t,r,e){e(317)("Float64",function(n){return function Float64Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){e(317)("Int8",function(n){return function Int8Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){e(317)("Int16",function(n){return function Int16Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){e(317)("Int32",function(n){return function Int32Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){e(317)("Uint8",function(n){return function Uint8Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){e(317)("Uint8",function(n){return function Uint8ClampedArray(t,r,e){return n(this,t,r,e)}},!0)},function(t,r,e){e(317)("Uint16",function(n){return function Uint16Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){e(317)("Uint32",function(n){return function Uint32Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){var n=e(135),o=e(82),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("copyWithin",function copyWithin(t,r){return o.call(i(this),t,r,2<arguments.length?arguments[2]:qt)})},function(t,r,e){var n=e(135),o=e(58).every,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("every",function every(t){return o(i(this),t,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(135),o=e(87),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("fill",function fill(t){return o.apply(i(this),arguments)})},function(t,r,e){var n=e(135),a=e(58).filter,u=e(142),c=n.aTypedArray,f=n.aTypedArrayConstructor;(0,n.exportTypedArrayMethod)("filter",function filter(t){for(var r=a(c(this),t,1<arguments.length?arguments[1]:qt),e=u(this,this.constructor),n=0,o=r.length,i=new(f(e))(o);n<o;)i[n]=r[n++];return i})},function(t,r,e){var n=e(135),o=e(58).find,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("find",function find(t){return o(i(this),t,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(135),o=e(58).findIndex,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("findIndex",function findIndex(t){return o(i(this),t,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(135),o=e(58).forEach,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("forEach",function forEach(t){o(i(this),t,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(318);(0,e(135).exportTypedArrayStaticMethod)("from",e(321),n)},function(t,r,e){var n=e(135),o=e(38).includes,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("includes",function includes(t){return o(i(this),t,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(135),o=e(38).indexOf,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("indexOf",function indexOf(t){return o(i(this),t,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(3),o=e(135),i=e(108),a=e(54)("iterator"),u=n.Uint8Array,c=i.values,f=i.keys,s=i.entries,l=o.aTypedArray,p=o.exportTypedArrayMethod,h=u&&u.prototype[a],g=!!h&&("values"==h.name||h.name==qt),v=function values(){return c.call(l(this))};p("entries",function entries(){return s.call(l(this))}),p("keys",function keys(){return f.call(l(this))}),p("values",v,!g),p(a,v,!g)},function(t,r,e){var n=e(135),o=n.aTypedArray,i=[].join;(0,n.exportTypedArrayMethod)("join",function join(t){return i.apply(o(this),arguments)})},function(t,r,e){var n=e(135),o=e(118),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("lastIndexOf",function lastIndexOf(t){return o.apply(i(this),arguments)})},function(t,r,e){var n=e(135),o=e(58).map,i=e(142),a=n.aTypedArray,u=n.aTypedArrayConstructor;(0,n.exportTypedArrayMethod)("map",function map(t){return o(a(this),t,1<arguments.length?arguments[1]:qt,function(t,r){return new(u(i(t,t.constructor)))(r)})})},function(t,r,e){var n=e(135),o=e(318),i=n.aTypedArrayConstructor;(0,n.exportTypedArrayStaticMethod)("of",function of(){for(var t=0,r=arguments.length,e=new(i(this))(r);t<r;)e[t]=arguments[t++];return e},o)},function(t,r,e){var n=e(135),o=e(122).left,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduce",function reduce(t){return o(i(this),t,arguments.length,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(135),o=e(122).right,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduceRight",function reduceRight(t){return o(i(this),t,arguments.length,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(135),o=n.aTypedArray,i=Math.floor;(0,n.exportTypedArrayMethod)("reverse",function reverse(){for(var t,r=o(this).length,e=i(r/2),n=0;n<e;)t=this[n],this[n++]=this[--r],this[r]=t;return this})},function(t,r,e){var n=e(135),a=e(39),u=e(319),c=e(48),o=e(6),f=n.aTypedArray;(0,n.exportTypedArrayMethod)("set",function set(t){f(this);var r=u(1<arguments.length?arguments[1]:qt,1),e=this.length,n=c(t),o=a(n.length),i=0;if(e<o+r)throw RangeError( -"Wrong length");for(;i<o;)this[r+i]=n[i++]},o(function(){new Int8Array(1).set({})}))},function(t,r,e){var n=e(135),u=e(142),o=e(6),c=n.aTypedArray,f=n.aTypedArrayConstructor,s=[].slice;(0,n.exportTypedArrayMethod)("slice",function slice(t,r){for(var e=s.call(c(this),t,r),n=u(this,this.constructor),o=0,i=e.length,a=new(f(n))(i);o<i;)a[o]=e[o++];return a},o(function(){new Int8Array(1).slice()}))},function(t,r,e){var n=e(135),o=e(58).some,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("some",function some(t){return o(i(this),t,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(135),o=n.aTypedArray,i=[].sort;(0,n.exportTypedArrayMethod)("sort",function sort(t){return i.call(o(this),t)})},function(t,r,e){var n=e(135),i=e(39),a=e(41),u=e(142),c=n.aTypedArray;(0,n.exportTypedArrayMethod)("subarray",function subarray(t,r){var e=c(this),n=e.length,o=a(t,n);return new(u(e,e.constructor))(e.buffer,e.byteOffset+o*e.BYTES_PER_ELEMENT,i((r===qt?n:a(r,n))-o))})},function(t,r,e){var n=e(3),o=e(135),i=e(6),a=n.Int8Array,u=o.aTypedArray,c=o.exportTypedArrayMethod,f=[].toLocaleString,s=[].slice,l=!!a&&i(function(){f.call(new a(1))});c("toLocaleString",function toLocaleString(){return f.apply(l?s.call(u(this)):u(this),arguments)},i(function(){return[1,2].toLocaleString()!=new a([1,2]).toLocaleString()})||!i(function(){a.prototype.toLocaleString.call([1,2])}))},function(t,r,e){var n=e(135).exportTypedArrayMethod,o=e(6),i=e(3).Uint8Array,a=i&&i.prototype||{},u=[].toString,c=[].join;o(function(){u.call({})})&&(u=function toString(){return c.call(this)}),n("toString",u,a.toString!=u)},function(t,r,e){var n,o=e(3),i=e(136),a=e(162),u=e(161),c=e(356),f=e(14),s=e(25).enforce,l=e(26),p=!o.ActiveXObject&&"ActiveXObject"in o,h=Object.isExtensible,g=function(t){return function WeakMap(){return t(this,arguments.length?arguments[0]:qt)}},v=t.exports=u("WeakMap",g,c);if(l&&p){n=c.getConstructor(g,"WeakMap",!0),a.REQUIRED=!0;var d=v.prototype,y=d["delete"],m=d.has,b=d.get,x=d.set;i(d,{"delete":function(t){if(!f(t)||h(t))return y.call(this,t);var r=s(this);return r.frozen||(r.frozen=new n),y.call(this,t)||r.frozen["delete"](t)},has:function has(t){if(!f(t)||h(t))return m.call(this,t);var r=s(this);return r.frozen||(r.frozen=new n),m.call(this,t)||r.frozen.has(t)},get:function get(t){if(!f(t)||h(t))return b.call(this,t);var r=s(this);return r.frozen||(r.frozen=new n),m.call(this,t)?b.call(this,t):r.frozen.get(t)},set:function set(t,r){if(f(t)&&!h(t)){var e=s(this);e.frozen||(e.frozen=new n),m.call(this,t)?x.call(this,t,r):e.frozen.set(t,r)}else x.call(this,t,r);return this}})}},function(t,r,e){var c=e(136),f=e(162).getWeakData,s=e(20),l=e(14),p=e(137),h=e(164),n=e(58),g=e(15),o=e(25),v=o.set,d=o.getterFor,i=n.find,a=n.findIndex,y=0,m=function(t){return t.frozen||(t.frozen=new u)},u=function(){this.entries=[]},b=function(t,r){return i(t.entries,function(t){return t[0]===r})};u.prototype={get:function(t){var r=b(this,t);if(r)return r[1]},has:function(t){return!!b(this,t)},set:function(t,r){var e=b(this,t);e?e[1]=r:this.entries.push([t,r])},"delete":function(r){var t=a(this.entries,function(t){return t[0]===r});return~t&&this.entries.splice(t,1),!!~t}},t.exports={getConstructor:function(t,e,n,o){var i=t(function(t,r){p(t,i,e),v(t,{type:e,id:y++,frozen:qt}),r!=qt&&h(r,t[o],t,n)}),a=d(e),u=function(t,r,e){var n=a(t),o=f(s(r),!0);return!0===o?m(n).set(r,e):o[n.id]=e,t};return c(i.prototype,{"delete":function(t){var r=a(this);if(!l(t))return!1;var e=f(t);return!0===e?m(r)["delete"](t):e&&g(e,r.id)&&delete e[r.id]},has:function has(t){var r=a(this);if(!l(t))return!1;var e=f(t);return!0===e?m(r).has(t):e&&g(e,r.id)}}),c(i.prototype,n?{get:function get(t){var r=a(this);if(l(t)){var e=f(t);return!0===e?m(r).get(t):e?e[r.id]:qt}},set:function set(t,r){return u(this,t,r)}}:{add:function add(t){return u(this,t,!0)}}),i}}},function(t,r,e){e(161)("WeakSet",function(t){return function WeakSet(){return t(this,arguments.length?arguments[0]:qt)}},e(356))},function(t,r,e){var n=e(2),o=e(5),i=e(112),a=e(114),u=e(49),c=e(19),f=e(8),s=e(164),l=e(18),p=e(25),h=p.set,g=p.getterFor("AggregateError"),v=function AggregateError(t,r){var e=this;if(!(e instanceof v))return new v(t,r);a&&(e=a(new Error(r),i(e)));var n=[];return s(t,n.push,n),o?h(e,{errors:n,type:"AggregateError"}):e.errors=n,r!==qt&&l(e,"message",String(r)),e};v.prototype=u(Error.prototype,{constructor:f(5,v),message:f(5,""),name:f(5,"AggregateError")}),o&&c.f(v.prototype,"errors",{get:function(){return g(this).errors},configurable:!0}),n({global:!0},{AggregateError:v})},function(t,r,e){var n=e(2),i=e(47),a=Object.isFrozen,o=function(t,r){if(!a||!i(t)||!a(t))return!1;for(var e,n=0,o=t.length;n<o;)if(!("string"==typeof(e=t[n++])||r&&void 0===e))return!1;return 0!==o};n({target:"Array",stat:!0},{isTemplateObject:function isTemplateObject(t){if(!o(t,!0))return!1;var r=t.raw;return!(r.length!==t.length||!o(r,!1))}})},function(t,r,e){var n=e(5),o=e(83),i=e(48),a=e(39),u=e(19).f;!n||"lastIndex"in[]||(u(Array.prototype,"lastIndex",{configurable:!0,get:function lastIndex(){var t=i(this),r=a(t.length);return 0==r?0:r-1}}),o("lastIndex"))},function(t,r,e){var n=e(5),o=e(83),i=e(48),a=e(39),u=e(19).f;!n||"lastItem"in[]||(u(Array.prototype,"lastItem",{configurable:!0,get:function lastItem(){var t=i(this),r=a(t.length);return 0==r?qt:t[r-1]},set:function lastItem(t){var r=i(this),e=a(r.length);return r[0==e?0:e-1]=t}}),o("lastItem"))},function(t,r,e){var n=e(2),o=e(137),i=e(18),a=e(15),u=e(54),c=e(363),f=e(29),s=u("toStringTag"),l=function AsyncIterator(){o(this,l)};a(l.prototype=c,s)||i(c,s,"AsyncIterator"),a(c,"constructor")&&c.constructor!==Object||i(c,"constructor",l),n({global:!0,forced:f},{AsyncIterator:l})},function(t,r,e){var n,o,i=e(3),a=e(24),u=e(112),c=e(15),f=e(18),s=e(54),l=e(29),p="USE_FUNCTION_CONSTRUCTOR",h=s("asyncIterator"),g=i.AsyncIterator,v=a.AsyncIteratorPrototype;if(!l)if(v)n=v;else if("function"==typeof g)n=g.prototype;else if(a[p]||i[p])try{o=u(u(u(Function("return async function*(){}()")()))),u(o)===Object.prototype&&(n=o)}catch(d){}c(n=n||{},h)||f(n,h,function(){return this}),t.exports=n},function(t,r,e){var n=e(2),o=e(20),i=e(365)(function(t,r){var e=this;return r.resolve(o(e.next.call(e.iterator,t))).then(function(t){return o(t).done?{done:e.done=!0,value:qt}:{done:!1,value:[e.index++,t.value]}})});n({target:"AsyncIterator",proto:!0,real:!0},{asIndexedPairs:function asIndexedPairs(){return new i({iterator:o(this),index:0})}})},function(t,r,e){var o=e(35),i=e(60),a=e(20),u=e(49),c=e(18),f=e(136),n=e(54),s=e(25),l=e(34)("Promise"),p=s.set,h=s.get,g=n("toStringTag"),v=function(t){var r=h(this).iterator,e=r["return"];return e===qt?l.resolve({done:!0,value:t}):a(e.call(r,t))},d=function(t){var r=h(this).iterator,e=r["throw"];return e===qt?l.reject(t):e.call(r,t)};t.exports=function(n,t){var r=function AsyncIterator(t){t.next=i(t.iterator.next),t.done=!1,p(this,t)};return r.prototype=f(u(o.AsyncIterator.prototype),{next:function next(t){var r=h(this);if(r.done)return l.resolve({done:!0,value:qt});try{return l.resolve(a(n.call(r,t,l)))}catch(e){return l.reject(e)}},"return":v,"throw":d}),t||c(r.prototype,g,"Generator"),r}},function(t,r,e){var n=e(2),u=e(20),o=e(320),i=e(365)(function(r,i){var a=this;return new i(function(e,n){var o=function(){try{i.resolve(u(a.next.call(a.iterator,a.remaining?qt:r))).then(function(t){try{u(t).done?e({done:a.done=!0,value:qt}):a.remaining?(a.remaining--,o()):e({done:!1,value:t.value})}catch(r){n(r)}},n)}catch(t){n(t)}};o()})});n({target:"AsyncIterator",proto:!0,real:!0},{drop:function drop(t){return new i({iterator:u(this),remaining:o(t)})}})},function(t,r,e){var n=e(2),o=e(368).every;n({target:"AsyncIterator",proto:!0,real:!0},{every:function every(t){return o(this,t)}})},function(t,r,e){var n=e(60),p=e(20),h=e(34)("Promise"),g=[].push,o=function(t){var c=0==t,f=1==t,s=2==t,l=3==t;return function(r,a){p(r);var e=n(r.next),u=c?[]:qt;return c||n(a),new h(function(n,o){var i=function(){try{h.resolve(p(e.call(r))).then(function(t){try{if(p(t).done)n(c?u:!l&&(s||qt));else{var r=t.value;c?(g.call(u,r),i()):h.resolve(a(r)).then(function(t){f?i():s?t?i():n(!1):t?n(l||r):i()},o)}}catch(e){o(e)}},o)}catch(t){o(t)}};i()})}};t.exports={toArray:o(0),forEach:o(1),every:o(2),some:o(3),find:o(4)}},function(t,r,e){var n=e(2),o=e(60),f=e(20),i=e(365)(function(r,a){var u=this,c=u.filterer;return new a(function(n,o){var i=function(){try{a.resolve(f(u.next.call(u.iterator,r))).then(function(t){try{if(f(t).done)n({done:u.done=!0,value:qt});else{var r=t.value;a.resolve(c(r)).then(function(t){t?n({done:!1,value:r}):i()},o)}}catch(e){o(e)}},o)}catch(t){o(t)}};i()})});n({target:"AsyncIterator",proto:!0,real:!0},{filter:function filter(t){return new i({iterator:f(this),filterer:o(t)})}})},function(t,r,e){var n=e(2),o=e(368).find;n({target:"AsyncIterator",proto:!0,real:!0},{find:function find(t){return o(this,t)}})},function(t,r,e){var n=e(2),l=e(60),p=e(20),o=e(365),h=e(372),i=o(function(r,a){var u,c,f=this,s=f.mapper;return new a(function(e,n){var o=function(){try{a.resolve(p(f.next.call(f.iterator,r))).then(function(t){try{p(t).done?e({done:f.done=!0,value:qt}):a.resolve(s(t.value)).then(function(t){try{if((c=h(t))!==qt)return f.innerIterator=u=p(c.call(t)),f.innerNext=l(u.next),i();n(TypeError(".flatMap callback should return an iterable object"))}catch(r){n(r)}},n)}catch(r){n(r)}},n)}catch(t){n(t)}},i=function(){if(u=f.innerIterator)try{a.resolve(p(f.innerNext.call(u))).then(function(t){try{p(t).done?(f.innerIterator=f.innerNext=null,o()):e({done:!1,value:t.value})}catch(r){n(r)}},n)}catch(t){n(t)}else o()};i()})});n({target:"AsyncIterator",proto:!0,real:!0},{flatMap:function flatMap(t){return new i({iterator:p(this),mapper:l(t),innerIterator:null,innerNext:null})}})},function(t,r,e){var n=e(101),o=e(54)("asyncIterator");t.exports=function(t){var r=t[o];return r===qt?n(t):r}},function(t,r,e){var n=e(2),o=e(368).forEach;n({target:"AsyncIterator",proto:!0,real:!0},{forEach:function forEach(t){return o(this,t)}})},function(t,r,e){var n=e(2),o=e(35),i=e(60),a=e(20),u=e(48),c=e(365),f=e(372),s=o.AsyncIterator,l=c(function(t){return a(this.next.call(this.iterator,t))},!0);n({target:"AsyncIterator",stat:!0},{from:function from(t){var r,e=u(t),n=f(e);if(null!=n){if((r=i(n).call(e))instanceof s)return r}else r=e;return new l({iterator:r})}})},function(t,r,e){var n=e(2),o=e(60),i=e(20),a=e(365)(function(t,r){var e=this,n=e.mapper;return r.resolve(i(e.next.call(e.iterator,t))).then(function(t){return i(t).done?{done:e.done=!0,value:qt}:r.resolve(n(t.value)).then(function(t){return{done:!1,value:t}})})});n({target:"AsyncIterator",proto:!0,real:!0},{map:function map(t){return new a({iterator:i(this),mapper:o(t)})}})},function(t,r,e){var n=e(2),o=e(60),f=e(20),s=e(34)("Promise");n({target:"AsyncIterator",proto:!0,real:!0},{reduce:function reduce(a){var r=f(this),e=o(r.next),u=arguments.length<2,c=u?qt:arguments[1];return o(a),new s(function(n,o){var i=function(){try{s.resolve(f(e.call(r))).then(function(t){try{if(f(t).done)u?o(TypeError("Reduce of empty iterator with no initial value")):n(c);else{var r=t.value;u?(u=!1,c=r,i()):s.resolve(a(c,r)).then(function(t){c=t,i()},o)}}catch(e){o(e)}},o)}catch(t){o(t)}};i()})}})},function(t,r,e){var n=e(2),o=e(368).some;n({target:"AsyncIterator",proto:!0,real:!0},{some:function some(t){return o(this,t)}})},function(t,r,e){var n=e(2),o=e(20),i=e(320),a=e(365)(function(t){return this.remaining--?this.next.call(this.iterator,t):{done:this.done=!0,value:qt}});n({target:"AsyncIterator",proto:!0,real:!0},{take:function take(t){return new a({iterator:o(this),remaining:i(t)})}})},function(t,r,e){var n=e(2),o=e(368).toArray;n({target:"AsyncIterator",proto:!0,real:!0},{toArray:function toArray(){return o(this)}})},function(t,r,e){var n=e(2),o=e(381),i=e(34),a=e(49),u=function(){var t=i("Object","freeze");return t?t(a(null)):a(null)};n({global:!0},{compositeKey:function compositeKey(){return o.apply(Object,arguments).get("object",u)}})},function(t,r,e){var i=e(160),a=e(355),n=e(49),o=e(14),u=function(){this.object=null,this.symbol=null,this.primitives=null,this.objectsByIndex=n(null)};u.prototype.get=function(t,r){return this[t]||(this[t]=r())},u.prototype.next=function(t,r,e){var n=e?this.objectsByIndex[t]||(this.objectsByIndex[t]=new a):this.primitives||(this.primitives=new i),o=n.get(r);return o||n.set(r,o=new u),o};var c=new u;t.exports=function(){var t,r,e=c,n=arguments.length;for(t=0;t<n;t++)o(r=arguments[t])&&(e=e.next(t,r,!0));if(this===Object&&e===c)throw TypeError("Composite keys must contain a non-primitive component");for(t=0;t<n;t++)o(r=arguments[t])||(e=e.next(t,r,!1));return e}},function(t,r,e){var n=e(2),o=e(381),i=e(34);n({global:!0},{compositeSymbol:function compositeSymbol(){return 1===arguments.length&&"string"==typeof arguments[0]?i("Symbol")["for"](arguments[0]):o.apply(null,arguments).get("symbol",i("Symbol"))}})},function(t,r,e){e(157)},function(t,r,e){var n=e(2),o=e(3),i=e(137),a=e(18),u=e(6),c=e(15),f=e(54),s=e(111).IteratorPrototype,l=e(29),p=f("iterator"),h=f("toStringTag"),g=o.Iterator,v=l||"function"!=typeof g||g.prototype!==s||!u(function(){g({})}),d=function Iterator(){i(this,d)};l&&a(s={},p,function(){return this}),c(s,h)||a(s,h,"Iterator"),!v&&c(s,"constructor")&&s.constructor!==Object||a(s,"constructor",d),d.prototype=s,n({global:!0,forced:v},{Iterator:d})},function(t,r,e){var n=e(2),o=e(20),i=e(386)(function(t){var r=o(this.next.call(this.iterator,t));if(!(this.done=!!r.done))return[this.index++,r.value]});n({target:"Iterator",proto:!0,real:!0},{asIndexedPairs:function asIndexedPairs(){return new i({iterator:o(this),index:0})}})},function(t,r,e){var n=e(35),o=e(60),i=e(20),a=e(49),u=e(18),c=e(136),f=e(54),s=e(25),l=s.set,p=s.get,h=f("toStringTag"),g=function(t){var r=p(this).iterator,e=r["return"];return e===qt?{done:!0,value:t}:i(e.call(r,t))},v=function(t){var r=p(this).iterator,e=r["throw"];if(e===qt)throw t;return e.call(r,t)};t.exports=function(e,t){var r=function Iterator(t){t.next=o(t.iterator.next),t.done=!1,l(this,t)};return r.prototype=c(a(n.Iterator.prototype),{next:function next(){var t=p(this),r=t.done?qt:e.apply(t,arguments);return{done:t.done,value:r}},"return":g,"throw":v}),t||u(r.prototype,h,"Generator"),r}},function(t,r,e){var n=e(2),o=e(20),i=e(320),a=e(386)(function(t){for(var r,e=this.iterator,n=this.next;this.remaining;)if(this.remaining--,r=o(n.call(e)),this.done=!!r.done)return;if(r=o(n.call(e,t)),!(this.done=!!r.done))return r.value});n({target:"Iterator",proto:!0,real:!0},{drop:function drop(t){return new a({iterator:o(this),remaining:i(t)})}})},function(t,r,e){var n=e(2),o=e(164),i=e(60),a=e(20);n({target:"Iterator",proto:!0,real:!0},{every:function every(r){return a(this),i(r),!o(this,function(t){if(!r(t))return o.stop()},qt,!1,!0).stopped}})},function(t,r,e){var n=e(2),o=e(60),a=e(20),i=e(386),u=e(98),c=i(function(t){for(var r,e,n=this.iterator,o=this.filterer,i=this.next;;){if(r=a(i.call(n,t)),this.done=!!r.done)return;if(u(n,o,e=r.value))return e}});n({target:"Iterator",proto:!0,real:!0},{filter:function filter(t){return new c({iterator:a(this),filterer:o(t)})}})},function(t,r,e){var n=e(2),o=e(164),i=e(60),a=e(20);n({target:"Iterator",proto:!0,real:!0},{find:function find(r){return a(this),i(r),o(this,function(t){if(r(t))return o.stop(t)},qt,!1,!0).result}})},function(t,r,e){var n=e(2),a=e(60),u=e(20),c=e(101),o=e(386),f=e(98),i=o(function(t){for(var r,e,n,o,i=this.iterator;;){if(o=this.innerIterator){if(!(r=u(this.innerNext.call(o))).done)return r.value;this.innerIterator=this.innerNext=null}if(r=u(this.next.call(i,t)),this.done=!!r.done)return;if(e=f(i,this.mapper,r.value),(n=c(e))===qt)throw TypeError(".flatMap callback should return an iterable object");this.innerIterator=o=u(n.call(e)),this.innerNext=a(o.next)}});n({target:"Iterator",proto:!0,real:!0},{flatMap:function flatMap(t){return new i({iterator:u(this),mapper:a(t),innerIterator:null,innerNext:null})}})},function(t,r,e){var n=e(2),o=e(164),i=e(20);n({target:"Iterator",proto:!0,real:!0},{forEach:function forEach(t){o(i(this),t,qt,!1,!0)}})},function(t,r,e){var n=e(2),o=e(35),i=e(60),a=e(20),u=e(48),c=e(386),f=e(101),s=o.Iterator,l=c(function(t){var r=a(this.next.call(this.iterator,t));if(!(this.done=!!r.done))return r.value},!0);n({target:"Iterator",stat:!0},{from:function from(t){var r,e=u(t),n=f(e);if(null!=n){if((r=i(n).call(e))instanceof s)return r}else r=e;return new l({iterator:r})}})},function(t,r,e){var n=e(2),o=e(60),i=e(20),a=e(386),u=e(98),c=a(function(t){var r=this.iterator,e=i(this.next.call(r,t));if(!(this.done=!!e.done))return u(r,this.mapper,e.value)});n({target:"Iterator",proto:!0,real:!0},{map:function map(t){return new c({iterator:i(this),mapper:o(t)})}})},function(t,r,e){var n=e(2),o=e(164),i=e(60),a=e(20);n({target:"Iterator",proto:!0,real:!0},{reduce:function reduce(r){a(this),i(r);var e=arguments.length<2,n=e?qt:arguments[1];if(o(this,function(t){n=e?(e=!1,t):r(n,t)},qt,!1,!0),e)throw TypeError("Reduce of empty iterator with no initial value");return n}})},function(t,r,e){var n=e(2),o=e(164),i=e(60),a=e(20);n({target:"Iterator",proto:!0,real:!0},{some:function some(r){return a(this),i(r),o(this,function(t){if(r(t))return o.stop()},qt,!1,!0).stopped}})},function(t,r,e){var n=e(2),o=e(20),i=e(320),a=e(386)(function(t){if(this.remaining--){var r=o(this.next.call(this.iterator,t));return(this.done=!!r.done)?void 0:r.value}this.done=!0});n({target:"Iterator",proto:!0,real:!0},{take:function take(t){return new a({iterator:o(this),remaining:i(t)})}})},function(t,r,e){var n=e(2),o=e(164),i=e(20),a=[].push;n({target:"Iterator",proto:!0,real:!0},{toArray:function toArray(){var t=[];return o(i(this),a,t,!1,!0),t}})},function(t,r,e){var n=e(2),o=e(29),i=e(400);n({target:"Map",proto:!0,real:!0,forced:o},{deleteAll:function deleteAll(){return i.apply(this,arguments)}})},function(t,r,e){var a=e(20),u=e(60);t.exports=function(){for(var t,r=a(this),e=u(r["delete"]),n=!0,o=0,i=arguments.length;o<i;o++)t=e.call(r,arguments[o]),n=n&&t;return!!n}},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(59),u=e(402),c=e(164);n({target:"Map",proto:!0,real:!0,forced:o},{every:function every(t){var e=i(this),r=u(e),n=a(t,1<arguments.length?arguments[1]:qt,3);return!c(r,function(t,r){if(!n(r,t,e))return c.stop()},qt,!0,!0).stopped}})},function(t,r,e){var n=e(29),o=e(403);t.exports=n?o:function(t){return Map.prototype.entries.call(t)}},function(t,r,e){var n=e(20),o=e(101);t.exports=function(t){var r=o(t);if("function"!=typeof r)throw TypeError(String(t)+" is not iterable");return n(r.call(t))}},function(t,r,e){var n=e(2),o=e(29),a=e(34),u=e(20),c=e(60),f=e(59),s=e(142),l=e(402),p=e(164);n({target:"Map",proto:!0,real:!0,forced:o},{filter:function filter(t){var e=u(this),r=l(e),n=f(t,1<arguments.length?arguments[1]:qt,3),o=new(s(e,a("Map"))),i=c(o.set);return p(r,function(t,r){n(r,t,e)&&i.call(o,t,r)},qt,!0,!0),o}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(59),u=e(402),c=e(164);n({target:"Map",proto:!0,real:!0,forced:o},{find:function find(t){var e=i(this),r=u(e),n=a(t,1<arguments.length?arguments[1]:qt,3);return c(r,function(t,r){if(n(r,t,e))return c.stop(r)},qt,!0,!0).result}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(59),u=e(402),c=e(164);n({target:"Map",proto:!0,real:!0,forced:o},{findKey:function findKey(t){var e=i(this),r=u(e),n=a(t,1<arguments.length?arguments[1]:qt,3);return c(r,function(t,r){if(n(r,t,e))return c.stop(t)},qt,!0,!0).result}})},function(t,r,e){e(2)({target:"Map",stat:!0},{from:e(408)})},function(t,r,e){var u=e(60),c=e(59),f=e(164);t.exports=function from(t){var r,e,n,o,i=arguments.length,a=1<i?arguments[1]:qt;return u(this),(r=a!==qt)&&u(a),t==qt?new this:(e=[],r?(n=0,o=c(a,2<i?arguments[2]:qt,2),f(t,function(t){e.push(o(t,n++))})):f(t,e.push,e),new this(e))}},function(t,r,e){var n=e(2),u=e(164),c=e(60);n({target:"Map",stat:!0},{groupBy:function groupBy(t,e){var n=new this;c(e);var o=c(n.has),i=c(n.get),a=c(n.set);return u(t,function(t){var r=e(t);o.call(n,r)?i.call(n,r).push(t):a.call(n,r,[t])}),n}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(402),u=e(411),c=e(164);n({target:"Map",proto:!0,real:!0,forced:o},{includes:function includes(e){return c(a(i(this)),function(t,r){if(u(r,e))return c.stop()},qt,!0,!0).stopped}})},function(t,r){t.exports=function(t,r){return t===r||t!=t&&r!=r}},function(t,r,e){var n=e(2),o=e(164),i=e(60);n({target:"Map",stat:!0},{keyBy:function keyBy(t,r){var e=new this;i(r);var n=i(e.set);return o(t,function(t){n.call(e,r(t),t)}),e}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(402),u=e(164);n({target:"Map",proto:!0,real:!0,forced:o},{keyOf:function keyOf(e){return u(a(i(this)),function(t,r){if(r===e)return u.stop(t)},qt,!0,!0).result}})},function(t,r,e){var n=e(2),o=e(29),a=e(34),u=e(20),c=e(60),f=e(59),s=e(142),l=e(402),p=e(164);n({target:"Map",proto:!0,real:!0,forced:o},{mapKeys:function mapKeys(t){var e=u(this),r=l(e),n=f(t,1<arguments.length?arguments[1]:qt,3),o=new(s(e,a("Map"))),i=c(o.set);return p(r,function(t,r){i.call(o,n(r,t,e),r)},qt,!0,!0),o}})},function(t,r,e){var n=e(2),o=e(29),a=e(34),u=e(20),c=e(60),f=e(59),s=e(142),l=e(402),p=e(164);n({target:"Map",proto:!0,real:!0,forced:o},{mapValues:function mapValues(t){var e=u(this),r=l(e),n=f(t,1<arguments.length?arguments[1]:qt,3),o=new(s(e,a("Map"))),i=c(o.set);return p(r,function(t,r){i.call(o,t,n(r,t,e))},qt,!0,!0),o}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(60),u=e(164);n({target:"Map",proto:!0,real:!0,forced:o},{merge:function merge(t){for(var r=i(this),e=a(r.set),n=0;n<arguments.length;)u(arguments[n++],e,r,!0);return r}})},function(t,r,e){e(2)({target:"Map",stat:!0},{of:e(418)})},function(t,r,e){t.exports=function of(){for(var t=arguments.length,r=new Array(t);t--;)r[t]=arguments[t];return new this(r)}},function(t,r,e){var n=e(2),o=e(29),a=e(20),u=e(60),c=e(402),f=e(164);n({target:"Map",proto:!0,real:!0,forced:o},{reduce:function reduce(e){var n=a(this),t=c(n),o=arguments.length<2,i=o?qt:arguments[1];if(u(e),f(t,function(t,r){i=o?(o=!1,r):e(i,r,t,n)},qt,!0,!0),o)throw TypeError("Reduce of empty map with no initial value");return i}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(59),u=e(402),c=e(164);n({target:"Map",proto:!0,real:!0,forced:o},{some:function some(t){var e=i(this),r=u(e),n=a(t,1<arguments.length?arguments[1]:qt,3);return c(r,function(t,r){if(n(r,t,e))return c.stop()},qt,!0,!0).stopped}})},function(t,r,e){var n=e(2),o=e(29),a=e(20),u=e(60);n({target:"Map",proto:!0,real:!0,forced:o},{update:function update(t,r){var e=a(this),n=arguments.length;u(r);var o=e.has(t);if(!o&&n<3)throw TypeError("Updating absent value");var i=o?e.get(t):u(2<n?arguments[2]:qt)(t,e);return e.set(t,r(i,t,e)),e}})},function(t,r,e){e(2)({target:"Map",proto:!0,real:!0,forced:e(29)},{updateOrInsert:e(423)})},function(t,r,e){var i=e(20);t.exports=function upsert(t,r){var e,n=i(this),o=2<arguments.length?arguments[2]:qt;if("function"!=typeof r&&"function"!=typeof o)throw TypeError("At least one callback required");return n.has(t)?(e=n.get(t),"function"==typeof r&&(e=r(e),n.set(t,e))):"function"==typeof o&&(e=o(),n.set(t,e)),e}},function(t,r,e){e(2)({target:"Map",proto:!0,real:!0,forced:e(29)},{upsert:e(423)})},function(t,r,e){var n=e(2),o=Math.min,i=Math.max;n({target:"Math",stat:!0},{clamp:function clamp(t,r,e){return o(e,i(r,t))}})},function(t,r,e){e(2)({target:"Math",stat:!0},{DEG_PER_RAD:Math.PI/180})},function(t,r,e){var n=e(2),o=180/Math.PI;n({target:"Math",stat:!0},{degrees:function degrees(t){return t*o}})},function(t,r,e){var n=e(2),i=e(429),a=e(178);n({target:"Math",stat:!0},{fscale:function fscale(t,r,e,n,o){return a(i(t,r,e,n,o))}})},function(t,r){t.exports=Math.scale||function scale(t,r,e,n,o){return 0===arguments.length||t!=t||r!=r||e!=e||n!=n||o!=o?NaN:t===Infinity||t===-Infinity?t:(t-r)*(o-n)/(e-r)+n}},function(t,r,e){e(2)({target:"Math",stat:!0},{iaddh:function iaddh(t,r,e,n){var o=t>>>0,i=e>>>0;return(r>>>0)+(n>>>0)+((o&i|(o|i)&~(o+i>>>0))>>>31)|0}})},function(t,r,e){e(2)({target:"Math",stat:!0},{imulh:function imulh(t,r){var e=+t,n=+r,o=65535&e,i=65535&n,a=e>>16,u=n>>16,c=(a*i>>>0)+(o*i>>>16);return a*u+(c>>16)+((o*u>>>0)+(65535&c)>>16)}})},function(t,r,e){e(2)({target:"Math",stat:!0},{isubh:function isubh(t,r,e,n){var o=t>>>0,i=e>>>0;return(r>>>0)-(n>>>0)-((~o&i|~(o^i)&o-i>>>0)>>>31)|0}})},function(t,r,e){e(2)({target:"Math",stat:!0},{RAD_PER_DEG:180/Math.PI})},function(t,r,e){var n=e(2),o=Math.PI/180;n({target:"Math",stat:!0},{radians:function radians(t){return t*o}})},function(t,r,e){e(2)({target:"Math",stat:!0},{scale:e(429)})},function(t,r,e){var n=e(2),o=e(20),i=e(194),a=e(110),u=e(25),c="Seeded Random",f=c+" Generator",s=u.set,l=u.getterFor(f),p=a(function SeededRandomGenerator(t){s(this,{type:f,seed:t%2147483647})},c,function next(){var t=l(this);return{value:(1073741823&(t.seed=(1103515245*t.seed+12345)%2147483647))/1073741823,done:!1}});n({target:"Math",stat:!0,forced:!0},{seededPRNG:function seededPRNG(t){var r=o(t).seed;if(!i(r))throw TypeError('Math.seededPRNG() argument should have a "seed" field with a finite value.');return new p(r)}})},function(t,r,e){e(2)({target:"Math",stat:!0},{signbit:function signbit(t){return(t=+t)==t&&0==t?1/t==-Infinity:t<0}})},function(t,r,e){e(2)({target:"Math",stat:!0},{umulh:function umulh(t,r){var e=+t,n=+r,o=65535&e,i=65535&n,a=e>>>16,u=n>>>16,c=(a*i>>>0)+(o*i>>>16);return a*u+(c>>>16)+((o*u>>>0)+(65535&c)>>>16)}})},function(t,r,e){var n=e(2),i=e(40),a=e(204),u="Invalid number representation",c=/^[\da-z]+$/;n({target:"Number",stat:!0},{fromString:function fromString(t,r){var e,n,o=1;if("string"!=typeof t)throw TypeError(u);if(!t.length)throw SyntaxError(u);if("-"==t.charAt(0)&&(o=-1,!(t=t.slice(1)).length))throw SyntaxError(u);if((e=r===qt?10:i(r))<2||36<e)throw RangeError("Invalid radix");if(!c.test(t)||(n=a(t,e)).toString(e)!==t)throw SyntaxError(u);return o*n}})},function(t,r,e){var n=e(2),o=e(441);n({target:"Object",stat:!0},{iterateEntries:function iterateEntries(t){return new o(t,"entries")}})},function(t,r,e){var n=e(25),o=e(110),i=e(15),a=e(51),u=e(48),c="Object Iterator",f=n.set,s=n.getterFor(c);t.exports=o(function ObjectIterator(t,r){var e=u(t);f(this,{type:c,mode:r,object:e,keys:a(e),index:0})},"Object",function next(){for(var t=s(this),r=t.keys;;){if(null===r||r.length<=t.index)return t.object=t.keys=null,{value:qt,done:!0};var e=r[t.index++],n=t.object;if(i(n,e)){switch(t.mode){case"keys":return{value:e,done:!1};case"values":return{value:n[e],done:!1}}return{value:[e,n[e]],done:!1}}}})},function(t,r,e){var n=e(2),o=e(441);n({target:"Object",stat:!0},{iterateKeys:function iterateKeys(t){return new o(t,"keys")}})},function(t,r,e){var n=e(2),o=e(441);n({target:"Object",stat:!0},{iterateValues:function iterateValues(t){return new o(t,"values")}})},function(t,r,e){var n=e(2),c=e(5),o=e(129),f=e(60),s=e(20),i=e(14),a=e(137),u=e(19).f,l=e(18),p=e(136),h=e(403),g=e(164),v=e(247),d=e(54),y=e(25),m=d("observable"),b=y.get,x=y.set,w=function(t){return null==t?qt:f(t)},S=function(t){var r=t.cleanup;if(r){t.cleanup=qt;try{r()}catch(e){v(e)}}},A=function(t){return t.observer===qt},I=function(t,r){if(!c){t.closed=!0;var e=r.subscriptionObserver;e&&(e.closed=!0)}r.observer=qt},E=function(t,r){var e,n=x(this,{cleanup:qt,observer:s(t),subscriptionObserver:qt});c||(this.closed=!1);try{(e=w(t.start))&&e.call(t,this)}catch(u){v(u)}if(!A(n)){var o=n.subscriptionObserver=new O(this);try{var i=r(o),a=i;null!=i&&(n.cleanup="function"==typeof i.unsubscribe?function(){a.unsubscribe()}:f(i))}catch(u){return void o.error(u)}A(n)&&S(n)}};E.prototype=p({},{unsubscribe:function unsubscribe(){var t=b(this);A(t)||(I(this,t),S(t))}}),c&&u(E.prototype,"closed",{configurable:!0,get:function(){return A(b(this))}});var O=function(t){x(this,{subscription:t}),c||(this.closed=!1)};O.prototype=p({},{next:function next(t){var r=b(b(this).subscription);if(!A(r)){var e=r.observer;try{var n=w(e.next);n&&n.call(e,t)}catch(o){v(o)}}},error:function error(t){var r=b(this).subscription,e=b(r);if(!A(e)){var n=e.observer;I(r,e);try{var o=w(n.error);o?o.call(n,t):v(t)}catch(i){v(i)}S(e)}},complete:function complete(){var t=b(this).subscription,r=b(t);if(!A(r)){var e=r.observer;I(t,r);try{var n=w(e.complete);n&&n.call(e)}catch(error){v(error)}S(r)}}}),c&&u(O.prototype,"closed",{configurable:!0,get:function(){return A(b(b(this).subscription))}});var M=function Observable(t){a(this,M,"Observable"),x(this,{subscriber:f(t)})};p(M.prototype,{subscribe:function subscribe(t){var r=arguments.length;return new E("function"==typeof t?{next:t,error:1<r?arguments[1]:qt,complete:2<r?arguments[2]:qt}:i(t)?t:{},b(this).subscriber)}}),p(M,{from:function from(t){var r="function"==typeof this?this:M,e=w(s(t)[m]);if(e){var n=s(e.call(t));return n.constructor===r?n:new r(function(t){return n.subscribe(t)})}var o=h(t);return new r(function(r){g(o,function(t){if(r.next(t),r.closed)return g.stop()},qt,!1,!0),r.complete()})},of:function of(){for(var t="function"==typeof this?this:M,e=arguments.length,n=new Array(e),r=0;r<e;)n[r]=arguments[r++];return new t(function(t){for(var r=0;r<e;r++)if(t.next(n[r]),t.closed)return;t.complete()})}}),l(M.prototype,m,function(){return this}),n({global:!0},{Observable:M}),o("Observable")},function(t,r,e){e(249)},function(t,r,e){var n=e(2),l=e(60),p=e(34),o=e(246),i=e(248),h=e(164),g="No one promise resolved";n({target:"Promise",stat:!0},{any:function any(t){var c=this,r=o.f(c),f=r.resolve,s=r.reject,e=i(function(){var n=l(c.resolve),o=[],i=0,a=1,u=!1;h(t,function(t){var r=i++,e=!1;o.push(qt),a++,n.call(c,t).then(function(t){e||u||(u=!0,f(t))},function(t){e||u||(e=!0,o[r]=t,--a||s(new(p("AggregateError"))(o,g)))})}),--a||s(new(p("AggregateError"))(o,g))});return e.error&&s(e.value),r.promise}})},function(t,r,e){var n=e(2),o=e(246),i=e(248);n({target:"Promise",stat:!0},{"try":function(t){var r=o.f(this),e=i(t);return(e.error?r.reject:r.resolve)(e.value),r.promise}})},function(t,r,e){var n=e(2),o=e(449),i=e(20),a=o.toKey,u=o.set;n({target:"Reflect",stat:!0},{defineMetadata:function defineMetadata(t,r,e){var n=arguments.length<4?qt:a(arguments[3]);u(t,r,i(e),n)}})},function(t,r,e){var i=e(160),n=e(355),o=e(28)("metadata"),a=o.store||(o.store=new n),u=function(t,r,e){var n=a.get(t);if(!n){if(!e)return;a.set(t,n=new i)}var o=n.get(r);if(!o){if(!e)return;n.set(r,o=new i)}return o};t.exports={store:a,getMap:u,has:function(t,r,e){var n=u(r,e,!1);return n!==qt&&n.has(t)},get:function(t,r,e){var n=u(r,e,!1);return n===qt?qt:n.get(t)},set:function(t,r,e,n){u(e,n,!0).set(t,r)},keys:function(t,r){var e=u(t,r,!1),n=[];return e&&e.forEach(function(t,r){n.push(r)}),n},toKey:function(t){return t===qt||"symbol"==typeof t?t:String(t)}}},function(t,r,e){var n=e(2),o=e(449),i=e(20),a=o.toKey,u=o.getMap,c=o.store;n({target:"Reflect",stat:!0},{deleteMetadata:function deleteMetadata(t,r){var e=arguments.length<3?qt:a(arguments[2]),n=u(i(r),e,!1);if(n===qt||!n["delete"](t))return!1;if(n.size)return!0;var o=c.get(r);return o["delete"](e),!!o.size||c["delete"](r)}})},function(t,r,e){var n=e(2),o=e(449),i=e(20),a=e(112),u=o.has,c=o.get,f=o.toKey,s=function(t,r,e){if(u(t,r,e))return c(t,r,e);var n=a(r);return null!==n?s(t,n,e):qt};n({target:"Reflect",stat:!0},{getMetadata:function getMetadata(t,r){var e=arguments.length<3?qt:f(arguments[2]);return s(t,i(r),e)}})},function(t,r,e){var n=e(2),u=e(274),o=e(449),i=e(20),c=e(112),f=e(164),s=o.keys,a=o.toKey,l=function(t,r){var e=s(t,r),n=c(t);if(null===n)return e;var o,i,a=l(n,r);return a.length?e.length?(o=new u(e.concat(a)),f(o,(i=[]).push,i),i):a:e};n({target:"Reflect",stat:!0},{getMetadataKeys:function getMetadataKeys(t){var r=arguments.length<2?qt:a(arguments[1]);return l(i(t),r)}})},function(t,r,e){var n=e(2),o=e(449),i=e(20),a=o.get,u=o.toKey;n({target:"Reflect",stat:!0},{getOwnMetadata:function getOwnMetadata(t,r){var e=arguments.length<3?qt:u(arguments[2]);return a(t,i(r),e)}})},function(t,r,e){var n=e(2),o=e(449),i=e(20),a=o.keys, -u=o.toKey;n({target:"Reflect",stat:!0},{getOwnMetadataKeys:function getOwnMetadataKeys(t){var r=arguments.length<2?qt:u(arguments[1]);return a(i(t),r)}})},function(t,r,e){var n=e(2),o=e(449),i=e(20),a=e(112),u=o.has,c=o.toKey,f=function(t,r,e){if(u(t,r,e))return!0;var n=a(r);return null!==n&&f(t,n,e)};n({target:"Reflect",stat:!0},{hasMetadata:function hasMetadata(t,r){var e=arguments.length<3?qt:c(arguments[2]);return f(t,i(r),e)}})},function(t,r,e){var n=e(2),o=e(449),i=e(20),a=o.has,u=o.toKey;n({target:"Reflect",stat:!0},{hasOwnMetadata:function hasOwnMetadata(t,r){var e=arguments.length<3?qt:u(arguments[2]);return a(t,i(r),e)}})},function(t,r,e){var n=e(2),o=e(449),i=e(20),a=o.toKey,u=o.set;n({target:"Reflect",stat:!0},{metadata:function metadata(e,n){return function decorator(t,r){u(e,n,i(t),a(r))}}})},function(t,r,e){var n=e(2),o=e(29),i=e(459);n({target:"Set",proto:!0,real:!0,forced:o},{addAll:function addAll(){return i.apply(this,arguments)}})},function(t,r,e){var o=e(20),i=e(60);t.exports=function(){for(var t=o(this),r=i(t.add),e=0,n=arguments.length;e<n;e++)r.call(t,arguments[e]);return t}},function(t,r,e){var n=e(2),o=e(29),i=e(400);n({target:"Set",proto:!0,real:!0,forced:o},{deleteAll:function deleteAll(){return i.apply(this,arguments)}})},function(t,r,e){var n=e(2),o=e(29),i=e(34),a=e(20),u=e(60),c=e(142),f=e(164);n({target:"Set",proto:!0,real:!0,forced:o},{difference:function difference(t){var r=a(this),e=new(c(r,i("Set")))(r),n=u(e["delete"]);return f(t,function(t){n.call(e,t)}),e}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(59),u=e(463),c=e(164);n({target:"Set",proto:!0,real:!0,forced:o},{every:function every(t){var r=i(this),e=u(r),n=a(t,1<arguments.length?arguments[1]:qt,3);return!c(e,function(t){if(!n(t,t,r))return c.stop()},qt,!1,!0).stopped}})},function(t,r,e){var n=e(29),o=e(403);t.exports=n?o:function(t){return Set.prototype.values.call(t)}},function(t,r,e){var n=e(2),o=e(29),a=e(34),u=e(20),c=e(60),f=e(59),s=e(142),l=e(463),p=e(164);n({target:"Set",proto:!0,real:!0,forced:o},{filter:function filter(t){var r=u(this),e=l(r),n=f(t,1<arguments.length?arguments[1]:qt,3),o=new(s(r,a("Set"))),i=c(o.add);return p(e,function(t){n(t,t,r)&&i.call(o,t)},qt,!1,!0),o}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(59),u=e(463),c=e(164);n({target:"Set",proto:!0,real:!0,forced:o},{find:function find(t){var r=i(this),e=u(r),n=a(t,1<arguments.length?arguments[1]:qt,3);return c(e,function(t){if(n(t,t,r))return c.stop(t)},qt,!1,!0).result}})},function(t,r,e){e(2)({target:"Set",stat:!0},{from:e(408)})},function(t,r,e){var n=e(2),o=e(29),i=e(34),a=e(20),u=e(60),c=e(142),f=e(164);n({target:"Set",proto:!0,real:!0,forced:o},{intersection:function intersection(t){var r=a(this),e=new(c(r,i("Set"))),n=u(r.has),o=u(e.add);return f(t,function(t){n.call(r,t)&&o.call(e,t)}),e}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(60),u=e(164);n({target:"Set",proto:!0,real:!0,forced:o},{isDisjointFrom:function isDisjointFrom(t){var r=i(this),e=a(r.has);return!u(t,function(t){if(!0===e.call(r,t))return u.stop()}).stopped}})},function(t,r,e){var n=e(2),o=e(29),i=e(34),a=e(20),u=e(60),c=e(403),f=e(164);n({target:"Set",proto:!0,real:!0,forced:o},{isSubsetOf:function isSubsetOf(t){var r=c(this),e=a(t),n=e.has;return"function"!=typeof n&&(e=new(i("Set"))(t),n=u(e.has)),!f(r,function(t){if(!1===n.call(e,t))return f.stop()},qt,!1,!0).stopped}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(60),u=e(164);n({target:"Set",proto:!0,real:!0,forced:o},{isSupersetOf:function isSupersetOf(t){var r=i(this),e=a(r.has);return!u(t,function(t){if(!1===e.call(r,t))return u.stop()}).stopped}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(463),u=e(164);n({target:"Set",proto:!0,real:!0,forced:o},{join:function join(t){var r=i(this),e=a(r),n=t===qt?",":String(t),o=[];return u(e,o.push,o,!1,!0),o.join(n)}})},function(t,r,e){var n=e(2),o=e(29),a=e(34),u=e(20),c=e(60),f=e(59),s=e(142),l=e(463),p=e(164);n({target:"Set",proto:!0,real:!0,forced:o},{map:function map(t){var r=u(this),e=l(r),n=f(t,1<arguments.length?arguments[1]:qt,3),o=new(s(r,a("Set"))),i=c(o.add);return p(e,function(t){i.call(o,n(t,t,r))},qt,!1,!0),o}})},function(t,r,e){e(2)({target:"Set",stat:!0},{of:e(418)})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(60),u=e(463),c=e(164);n({target:"Set",proto:!0,real:!0,forced:o},{reduce:function reduce(r){var e=i(this),t=u(e),n=arguments.length<2,o=n?qt:arguments[1];if(a(r),c(t,function(t){o=n?(n=!1,t):r(o,t,t,e)},qt,!1,!0),n)throw TypeError("Reduce of empty set with no initial value");return o}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(59),u=e(463),c=e(164);n({target:"Set",proto:!0,real:!0,forced:o},{some:function some(t){var r=i(this),e=u(r),n=a(t,1<arguments.length?arguments[1]:qt,3);return c(e,function(t){if(n(t,t,r))return c.stop()},qt,!1,!0).stopped}})},function(t,r,e){var n=e(2),o=e(29),i=e(34),a=e(20),u=e(60),c=e(142),f=e(164);n({target:"Set",proto:!0,real:!0,forced:o},{symmetricDifference:function symmetricDifference(t){var r=a(this),e=new(c(r,i("Set")))(r),n=u(e["delete"]),o=u(e.add);return f(t,function(t){n.call(e,t)||o.call(e,t)}),e}})},function(t,r,e){var n=e(2),o=e(29),i=e(34),a=e(20),u=e(60),c=e(142),f=e(164);n({target:"Set",proto:!0,real:!0,forced:o},{union:function union(t){var r=a(this),e=new(c(r,i("Set")))(r);return f(t,u(e.add),e),e}})},function(t,r,e){var n=e(2),o=e(276).charAt;n({target:"String",proto:!0},{at:function at(t){return o(this,t)}})},function(t,r,e){var n=e(2),o=e(110),i=e(12),a=e(25),u=e(276),c=u.codeAt,f=u.charAt,s="String Iterator",l=a.set,p=a.getterFor(s),h=o(function StringIterator(t){l(this,{type:s,string:t,index:0})},"String",function next(){var t,r=p(this),e=r.string,n=r.index;return e.length<=n?{value:qt,done:!0}:(t=f(e,n),r.index+=t.length,{value:{codePoint:c(t,0),position:n},done:!1})});n({target:"String",proto:!0},{codePoints:function codePoints(){return new h(String(i(this)))}})},function(t,r,e){e(287)},function(t,r,e){var n=e(2),l=e(12),p=e(265),h=e(266),o=e(54),g=e(29),v=o("replace"),d=RegExp.prototype;n({target:"String",proto:!0},{replaceAll:function replaceAll(t,r){var e,n,o,i,a,u,c,f,s=l(this);if(null!=t){if((e=p(t))&&!~String(l("flags"in d?t.flags:h.call(t))).indexOf("g"))throw TypeError("`.replaceAll` does not allow non-global regexes");if((n=t[v])!==qt)return n.call(t,s,r);if(g&&e)return String(s).replace(t,r)}if(o=String(s),""===(i=String(t)))return replaceAll.call(o,/(?:)/g,r);if(a=o.split(i),"function"!=typeof r)return a.join(String(r));for(c=(u=a[0]).length,f=1;f<a.length;f++)u+=String(r(i,c,o)),c+=i.length+a[f].length,u+=a[f];return u}})},function(t,r,e){e(56)("asyncDispose")},function(t,r,e){e(56)("dispose")},function(t,r,e){e(56)("observable")},function(t,r,e){e(56)("patternMatch")},function(t,r,e){e(56)("replaceAll")},function(t,r,e){var n=e(2),o=e(29),i=e(400);n({target:"WeakMap",proto:!0,real:!0,forced:o},{deleteAll:function deleteAll(){return i.apply(this,arguments)}})},function(t,r,e){e(2)({target:"WeakMap",stat:!0},{from:e(408)})},function(t,r,e){e(2)({target:"WeakMap",stat:!0},{of:e(418)})},function(t,r,e){e(2)({target:"WeakMap",proto:!0,real:!0,forced:e(29)},{upsert:e(423)})},function(t,r,e){var n=e(2),o=e(29),i=e(459);n({target:"WeakSet",proto:!0,real:!0,forced:o},{addAll:function addAll(){return i.apply(this,arguments)}})},function(t,r,e){var n=e(2),o=e(29),i=e(400);n({target:"WeakSet",proto:!0,real:!0,forced:o},{deleteAll:function deleteAll(){return i.apply(this,arguments)}})},function(t,r,e){e(2)({target:"WeakSet",stat:!0},{from:e(408)})},function(t,r,e){e(2)({target:"WeakSet",stat:!0},{of:e(418)})},function(t,r,e){var n=e(3),o=e(496),i=e(95),a=e(18);for(var u in o){var c=n[u],f=c&&c.prototype;if(f&&f.forEach!==i)try{a(f,"forEach",i)}catch(s){f.forEach=i}}},function(t,r){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(t,r,e){var n=e(3),o=e(496),i=e(108),a=e(18),u=e(54),c=u("iterator"),f=u("toStringTag"),s=i.values;for(var l in o){var p=n[l],h=p&&p.prototype;if(h){if(h[c]!==s)try{a(h,c,s)}catch(v){h[c]=s}if(h[f]||a(h,f,l),o[l])for(var g in i)if(h[g]!==i[g])try{a(h,g,i[g])}catch(v){h[g]=i[g]}}}},function(t,r,e){var n=e(2),o=e(3),i=e(242);n({global:!0,bind:!0,enumerable:!0,forced:!o.setImmediate||!o.clearImmediate},{setImmediate:i.set,clearImmediate:i.clear})},function(t,r,e){var n=e(2),o=e(3),i=e(244),a=e(11),u=o.process,c="process"==a(u);n({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function queueMicrotask(t){var r=c&&u.domain;i(r?r.bind(t):t)}})},function(t,r,e){var n=e(2),o=e(3),i=e(80),a=[].slice,u=function(o){return function(t,r){var e=2<arguments.length,n=e?a.call(arguments,2):qt;return o(e?function(){("function"==typeof t?t:Function(t)).apply(this,n)}:t,r)}};n({global:!0,bind:!0,forced:/MSIE .\./.test(i)},{setTimeout:u(o.setTimeout),setInterval:u(o.setInterval)})},function(t,r,e){e(282);var x,n=e(2),f=e(5),o=e(502),i=e(3),a=e(50),u=e(21),s=e(137),w=e(15),c=e(209),S=e(97),l=e(276).codeAt,p=e(503),h=e(57),g=e(504),v=e(25),d=i.URL,y=g.URLSearchParams,m=g.getState,b=v.set,A=v.getterFor("URL"),I=Math.floor,E=Math.pow,O="Invalid scheme",M="Invalid host",R="Invalid port",T=/[A-Za-z]/,_=/[\d+\-.A-Za-z]/,j=/\d/,k=/^(0x|0X)/,P=/^[0-7]+$/,F=/^\d+$/,N=/^[\dA-Fa-f]+$/,L=/[\u0000\u0009\u000A\u000D #%/:?@[\\]]/,U=/[\u0000\u0009\u000A\u000D #/:?@[\\]]/,D=/^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,C=/[\u0009\u000A\u000D]/g,B=function(t,r){var e,n,o;if("["==r.charAt(0)){if("]"!=r.charAt(r.length-1))return M;if(!(e=z(r.slice(1,-1))))return M;t.host=e}else if(X(t)){if(r=p(r),L.test(r))return M;if(null===(e=q(r)))return M;t.host=e}else{if(U.test(r))return M;for(e="",n=S(r),o=0;o<n.length;o++)e+=$(n[o],V);t.host=e}},q=function(t){var r,e,n,o,i,a,u,c=t.split(".");if(c.length&&""==c[c.length-1]&&c.pop(),4<(r=c.length))return t;for(e=[],n=0;n<r;n++){if(""==(o=c[n]))return t;if(i=10,1<o.length&&"0"==o.charAt(0)&&(i=k.test(o)?16:8,o=o.slice(8==i?1:2)),""===o)a=0;else{if(!(10==i?F:8==i?P:N).test(o))return t;a=parseInt(o,i)}e.push(a)}for(n=0;n<r;n++)if(a=e[n],n==r-1){if(a>=E(256,5-r))return null}else if(255<a)return null;for(u=e.pop(),n=0;n<e.length;n++)u+=e[n]*E(256,3-n);return u},z=function(t){var r,e,n,o,i,a,u,c=[0,0,0,0,0,0,0,0],f=0,s=null,l=0,p=function(){return t.charAt(l)};if(":"==p()){if(":"!=t.charAt(1))return;l+=2,s=++f}for(;p();){if(8==f)return;if(":"!=p()){for(r=e=0;e<4&&N.test(p());)r=16*r+parseInt(p(),16),l++,e++;if("."==p()){if(0==e)return;if(l-=e,6<f)return;for(n=0;p();){if(o=null,0<n){if(!("."==p()&&n<4))return;l++}if(!j.test(p()))return;for(;j.test(p());){if(i=parseInt(p(),10),null===o)o=i;else{if(0==o)return;o=10*o+i}if(255<o)return;l++}c[f]=256*c[f]+o,2!=++n&&4!=n||f++}if(4!=n)return;break}if(":"==p()){if(l++,!p())return}else if(p())return;c[f++]=r}else{if(null!==s)return;l++,s=++f}}if(null!==s)for(a=f-s,f=7;0!=f&&0<a;)u=c[f],c[f--]=c[s+a-1],c[s+--a]=u;else if(8!=f)return;return c},W=function(t){var r,e,n,o;if("number"==typeof t){for(r=[],e=0;e<4;e++)r.unshift(t%256),t=I(t/256);return r.join(".")}if("object"!=typeof t)return t;for(r="",n=function(t){for(var r=null,e=1,n=null,o=0,i=0;i<8;i++)0!==t[i]?(e<o&&(r=n,e=o),n=null,o=0):(null===n&&(n=i),++o);return e<o&&(r=n,e=o),r}(t),e=0;e<8;e++)o&&0===t[e]||(o=o&&!1,n===e?(r+=e?":":"::",o=!0):(r+=t[e].toString(16),e<7&&(r+=":")));return"["+r+"]"},V={},G=c({},V,{" ":1,'"':1,"<":1,">":1,"`":1}),K=c({},G,{"#":1,"?":1,"{":1,"}":1}),Y=c({},K,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),$=function(t,r){var e=l(t,0);return 32<e&&e<127&&!w(r,t)?t:encodeURIComponent(t)},J={ftp:21,file:null,http:80,https:443,ws:80,wss:443},X=function(t){return w(J,t.scheme)},H=function(t){return""!=t.username||""!=t.password},Q=function(t){return!t.host||t.cannotBeABaseURL||"file"==t.scheme},Z=function(t,r){var e;return 2==t.length&&T.test(t.charAt(0))&&(":"==(e=t.charAt(1))||!r&&"|"==e)},tt=function(t){var r;return 1<t.length&&Z(t.slice(0,2))&&(2==t.length||"/"===(r=t.charAt(2))||"\\"===r||"?"===r||"#"===r)},rt=function(t){var r=t.path,e=r.length;!e||"file"==t.scheme&&1==e&&Z(r[0],!0)||r.pop()},et={},nt={},ot={},it={},at={},ut={},ct={},ft={},st={},lt={},pt={},ht={},gt={},vt={},dt={},yt={},mt={},bt={},xt={},wt={},St={},At=function(t,r,e,n){var o,i,a,u,c,f,s=e||et,l=0,p="",h=!1,g=!1,v=!1;for(e||(t.scheme="",t.username="",t.password="",t.host=null,t.port=null,t.path=[],t.query=null,t.fragment=null,t.cannotBeABaseURL=!1,r=r.replace(D,"")),r=r.replace(C,""),o=S(r);l<=o.length;){switch(i=o[l],s){case et:if(!i||!T.test(i)){if(e)return O;s=ot;continue}p+=i.toLowerCase(),s=nt;break;case nt:if(i&&(_.test(i)||"+"==i||"-"==i||"."==i))p+=i.toLowerCase();else{if(":"!=i){if(e)return O;p="",s=ot,l=0;continue}if(e&&(X(t)!=w(J,p)||"file"==p&&(H(t)||null!==t.port)||"file"==t.scheme&&!t.host))return;if(t.scheme=p,e)return void(X(t)&&J[t.scheme]==t.port&&(t.port=null));p="","file"==t.scheme?s=vt:X(t)&&n&&n.scheme==t.scheme?s=it:X(t)?s=ft:"/"==o[l+1]?(s=at,l++):(t.cannotBeABaseURL=!0,t.path.push(""),s=xt)}break;case ot:if(!n||n.cannotBeABaseURL&&"#"!=i)return O;if(n.cannotBeABaseURL&&"#"==i){t.scheme=n.scheme,t.path=n.path.slice(),t.query=n.query,t.fragment="",t.cannotBeABaseURL=!0,s=St;break}s="file"==n.scheme?vt:ut;continue;case it:if("/"!=i||"/"!=o[l+1]){s=ut;continue}s=st,l++;break;case at:if("/"==i){s=lt;break}s=bt;continue;case ut:if(t.scheme=n.scheme,i==x)t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query=n.query;else if("/"==i||"\\"==i&&X(t))s=ct;else if("?"==i)t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query="",s=wt;else{if("#"!=i){t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.path.pop(),s=bt;continue}t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query=n.query,t.fragment="",s=St}break;case ct:if(!X(t)||"/"!=i&&"\\"!=i){if("/"!=i){t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,s=bt;continue}s=lt}else s=st;break;case ft:if(s=st,"/"!=i||"/"!=p.charAt(l+1))continue;l++;break;case st:if("/"==i||"\\"==i)break;s=lt;continue;case lt:if("@"==i){h&&(p="%40"+p),h=!0,a=S(p);for(var d=0;d<a.length;d++){var y=a[d];if(":"!=y||v){var m=$(y,Y);v?t.password+=m:t.username+=m}else v=!0}p=""}else if(i==x||"/"==i||"?"==i||"#"==i||"\\"==i&&X(t)){if(h&&""==p)return"Invalid authority";l-=S(p).length+1,p="",s=pt}else p+=i;break;case pt:case ht:if(e&&"file"==t.scheme){s=yt;continue}if(":"!=i||g){if(i==x||"/"==i||"?"==i||"#"==i||"\\"==i&&X(t)){if(X(t)&&""==p)return M;if(e&&""==p&&(H(t)||null!==t.port))return;if(u=B(t,p))return u;if(p="",s=mt,e)return;continue}"["==i?g=!0:"]"==i&&(g=!1),p+=i}else{if(""==p)return M;if(u=B(t,p))return u;if(p="",s=gt,e==ht)return}break;case gt:if(!j.test(i)){if(i==x||"/"==i||"?"==i||"#"==i||"\\"==i&&X(t)||e){if(""!=p){var b=parseInt(p,10);if(65535<b)return R;t.port=X(t)&&b===J[t.scheme]?null:b,p=""}if(e)return;s=mt;continue}return R}p+=i;break;case vt:if(t.scheme="file","/"==i||"\\"==i)s=dt;else{if(!n||"file"!=n.scheme){s=bt;continue}if(i==x)t.host=n.host,t.path=n.path.slice(),t.query=n.query;else if("?"==i)t.host=n.host,t.path=n.path.slice(),t.query="",s=wt;else{if("#"!=i){tt(o.slice(l).join(""))||(t.host=n.host,t.path=n.path.slice(),rt(t)),s=bt;continue}t.host=n.host,t.path=n.path.slice(),t.query=n.query,t.fragment="",s=St}}break;case dt:if("/"==i||"\\"==i){s=yt;break}n&&"file"==n.scheme&&!tt(o.slice(l).join(""))&&(Z(n.path[0],!0)?t.path.push(n.path[0]):t.host=n.host),s=bt;continue;case yt:if(i==x||"/"==i||"\\"==i||"?"==i||"#"==i){if(!e&&Z(p))s=bt;else if(""==p){if(t.host="",e)return;s=mt}else{if(u=B(t,p))return u;if("localhost"==t.host&&(t.host=""),e)return;p="",s=mt}continue}p+=i;break;case mt:if(X(t)){if(s=bt,"/"!=i&&"\\"!=i)continue}else if(e||"?"!=i)if(e||"#"!=i){if(i!=x&&(s=bt,"/"!=i))continue}else t.fragment="",s=St;else t.query="",s=wt;break;case bt:if(i==x||"/"==i||"\\"==i&&X(t)||!e&&("?"==i||"#"==i)){if(".."===(f=(f=p).toLowerCase())||"%2e."===f||".%2e"===f||"%2e%2e"===f?(rt(t),"/"==i||"\\"==i&&X(t)||t.path.push("")):"."===(c=p)||"%2e"===c.toLowerCase()?"/"==i||"\\"==i&&X(t)||t.path.push(""):("file"==t.scheme&&!t.path.length&&Z(p)&&(t.host&&(t.host=""),p=p.charAt(0)+":"),t.path.push(p)),p="","file"==t.scheme&&(i==x||"?"==i||"#"==i))for(;1<t.path.length&&""===t.path[0];)t.path.shift();"?"==i?(t.query="",s=wt):"#"==i&&(t.fragment="",s=St)}else p+=$(i,K);break;case xt:"?"==i?(t.query="",s=wt):"#"==i?(t.fragment="",s=St):i!=x&&(t.path[0]+=$(i,V));break;case wt:e||"#"!=i?i!=x&&("'"==i&&X(t)?t.query+="%27":t.query+="#"==i?"%23":$(i,V)):(t.fragment="",s=St);break;case St:i!=x&&(t.fragment+=$(i,G))}l++}},It=function URL(t){var r,e,n=s(this,It,"URL"),o=1<arguments.length?arguments[1]:qt,i=String(t),a=b(n,{type:"URL"});if(o!==qt)if(o instanceof It)r=A(o);else if(e=At(r={},String(o)))throw TypeError(e);if(e=At(a,i,null,r))throw TypeError(e);var u=a.searchParams=new y,c=m(u);c.updateSearchParams(a.query),c.updateURL=function(){a.query=String(u)||null},f||(n.href=Ot.call(n),n.origin=Mt.call(n),n.protocol=Rt.call(n),n.username=Tt.call(n),n.password=_t.call(n),n.host=jt.call(n),n.hostname=kt.call(n),n.port=Pt.call(n),n.pathname=Ft.call(n),n.search=Nt.call(n),n.searchParams=Lt.call(n),n.hash=Ut.call(n))},Et=It.prototype,Ot=function(){var t=A(this),r=t.scheme,e=t.username,n=t.password,o=t.host,i=t.port,a=t.path,u=t.query,c=t.fragment,f=r+":";return null!==o?(f+="//",H(t)&&(f+=e+(n?":"+n:"")+"@"),f+=W(o),null!==i&&(f+=":"+i)):"file"==r&&(f+="//"),f+=t.cannotBeABaseURL?a[0]:a.length?"/"+a.join("/"):"",null!==u&&(f+="?"+u),null!==c&&(f+="#"+c),f},Mt=function(){var t=A(this),r=t.scheme,e=t.port;if("blob"==r)try{return new URL(r.path[0]).origin}catch(n){return"null"}return"file"!=r&&X(t)?r+"://"+W(t.host)+(null!==e?":"+e:""):"null"},Rt=function(){return A(this).scheme+":"},Tt=function(){return A(this).username},_t=function(){return A(this).password},jt=function(){var t=A(this),r=t.host,e=t.port;return null===r?"":null===e?W(r):W(r)+":"+e},kt=function(){var t=A(this).host;return null===t?"":W(t)},Pt=function(){var t=A(this).port;return null===t?"":String(t)},Ft=function(){var t=A(this),r=t.path;return t.cannotBeABaseURL?r[0]:r.length?"/"+r.join("/"):""},Nt=function(){var t=A(this).query;return t?"?"+t:""},Lt=function(){return A(this).searchParams},Ut=function(){var t=A(this).fragment;return t?"#"+t:""},Dt=function(t,r){return{get:t,set:r,configurable:!0,enumerable:!0}};if(f&&a(Et,{href:Dt(Ot,function(t){var r=A(this),e=String(t),n=At(r,e);if(n)throw TypeError(n);m(r.searchParams).updateSearchParams(r.query)}),origin:Dt(Mt),protocol:Dt(Rt,function(t){var r=A(this);At(r,String(t)+":",et)}),username:Dt(Tt,function(t){var r=A(this),e=S(String(t));if(!Q(r)){r.username="";for(var n=0;n<e.length;n++)r.username+=$(e[n],Y)}}),password:Dt(_t,function(t){var r=A(this),e=S(String(t));if(!Q(r)){r.password="";for(var n=0;n<e.length;n++)r.password+=$(e[n],Y)}}),host:Dt(jt,function(t){var r=A(this);r.cannotBeABaseURL||At(r,String(t),pt)}),hostname:Dt(kt,function(t){var r=A(this);r.cannotBeABaseURL||At(r,String(t),ht)}),port:Dt(Pt,function(t){var r=A(this);Q(r)||(""==(t=String(t))?r.port=null:At(r,t,gt))}),pathname:Dt(Ft,function(t){var r=A(this);r.cannotBeABaseURL||(r.path=[],At(r,t+"",mt))}),search:Dt(Nt,function(t){var r=A(this);""==(t=String(t))?r.query=null:("?"==t.charAt(0)&&(t=t.slice(1)),r.query="",At(r,t,wt)),m(r.searchParams).updateSearchParams(r.query)}),searchParams:Dt(Lt),hash:Dt(Ut,function(t){var r=A(this);""!=(t=String(t))?("#"==t.charAt(0)&&(t=t.slice(1)),r.fragment="",At(r,t,St)):r.fragment=null})}),u(Et,"toJSON",function toJSON(){return Ot.call(this)},{enumerable:!0}),u(Et,"toString",function toString(){return Ot.call(this)},{enumerable:!0}),d){var Ct=d.createObjectURL,Bt=d.revokeObjectURL;Ct&&u(It,"createObjectURL",function createObjectURL(t){return Ct.apply(d,arguments)}),Bt&&u(It,"revokeObjectURL",function revokeObjectURL(t){return Bt.apply(d,arguments)})}h(It,"URL"),n({global:!0,forced:!o,sham:!f},{URL:It})},function(t,r,e){var n=e(6),o=e(54),i=e(29),a=o("iterator");t.exports=!n(function(){var t=new URL("b?a=1&b=2&c=3","http://a"),e=t.searchParams,n="";return t.pathname="c%20d",e.forEach(function(t,r){e["delete"]("b"),n+=r+t}),i&&!t.toJSON||!e.sort||"http://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[a]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",qt).host})},function(t,r,e){var y=2147483647,i=/[^\0-\u007E]/,a=/[.\u3002\uFF0E\uFF61]/g,m="Overflow: input needs wider integers to process",b=Math.floor,x=String.fromCharCode,w=function(t){return t+22+75*(t<26)},S=function(t,r,e){var n=0;for(t=e?b(t/700):t>>1,t+=b(t/r);455<t;n+=36)t=b(t/35);return b(n+36*t/(t+38))},u=function(t){var r,e,n=[],o=(t=function(t){for(var r=[],e=0,n=t.length;e<n;){var o=t.charCodeAt(e++);if(55296<=o&&o<=56319&&e<n){var i=t.charCodeAt(e++);56320==(64512&i)?r.push(((1023&o)<<10)+(1023&i)+65536):(r.push(o),e--)}else r.push(o)}return r}(t)).length,i=128,a=0,u=72;for(r=0;r<t.length;r++)(e=t[r])<128&&n.push(x(e));var c=n.length,f=c;for(c&&n.push("-");f<o;){var s=y;for(r=0;r<t.length;r++)i<=(e=t[r])&&e<s&&(s=e);var l=f+1;if(s-i>b((y-a)/l))throw RangeError(m);for(a+=(s-i)*l,i=s,r=0;r<t.length;r++){if((e=t[r])<i&&++a>y)throw RangeError(m);if(e==i){for(var p=a,h=36;;h+=36){var g=h<=u?1:u+26<=h?26:h-u;if(p<g)break;var v=p-g,d=36-g;n.push(x(w(g+v%d))),p=b(v/d)}n.push(x(w(p))),u=S(a,l,f==c),a=0,++f}}++a,++i}return n.join("")};t.exports=function(t){var r,e,n=[],o=t.toLowerCase().replace(a,".").split(".");for(r=0;r<o.length;r++)n.push(i.test(e=o[r])?"xn--"+u(e):e);return n.join(".")}},function(t,r,e){e(108);var n=e(2),o=e(34),i=e(502),a=e(21),u=e(136),c=e(57),f=e(110),s=e(25),l=e(137),p=e(15),h=e(59),g=e(102),v=e(20),d=e(14),y=e(49),m=e(8),b=e(403),x=e(101),w=e(54),S=o("fetch"),A=o("Headers"),I=w("iterator"),E="URLSearchParams",O=E+"Iterator",M=s.set,R=s.getterFor(E),T=s.getterFor(O),_=/\+/g,j=Array(4),k=function(t){return j[t-1]||(j[t-1]=RegExp("((?:%[\\da-f]{2}){"+t+"})","gi"))},P=function(t){try{return decodeURIComponent(t)}catch(r){return t}},F=function(t){var r=t.replace(_," "),e=4;try{return decodeURIComponent(r)}catch(n){for(;e;)r=r.replace(k(e--),P);return r}},N=/[!'()~]|%20/g,L={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},U=function(t){return L[t]},D=function(t){return encodeURIComponent(t).replace(N,U)},C=function(t,r){if(r)for(var e,n,o=r.split("&"),i=0;i<o.length;)(e=o[i++]).length&&(n=e.split("="),t.push({key:F(n.shift()),value:F(n.join("="))}))},B=function(t){this.entries.length=0,C(this.entries,t)},q=function(t,r){if(t<r)throw TypeError("Not enough arguments")},z=f(function Iterator(t,r){M(this,{type:O,iterator:b(R(t).entries),kind:r})},"Iterator",function next(){var t=T(this),r=t.kind,e=t.iterator.next(),n=e.value;return e.done||(e.value="keys"===r?n.key:"values"===r?n.value:[n.key,n.value]),e}),W=function URLSearchParams(){l(this,W,E);var t,r,e,n,o,i,a,u,c,f=0<arguments.length?arguments[0]:qt,s=[];if(M(this,{type:E,entries:s,updateURL:function(){},updateSearchParams:B}),f!==qt)if(d(f))if("function"==typeof(t=x(f)))for(e=(r=t.call(f)).next;!(n=e.call(r)).done;){if((a=(i=(o=b(v(n.value))).next).call(o)).done||(u=i.call(o)).done||!i.call(o).done)throw TypeError("Expected sequence with length 2");s.push({key:a.value+"",value:u.value+""})}else for(c in f)p(f,c)&&s.push({key:c,value:f[c]+""});else C(s,"string"==typeof f?"?"===f.charAt(0)?f.slice(1):f:f+"")},V=W.prototype;u(V,{append:function append(t,r){q(arguments.length,2);var e=R(this);e.entries.push({key:t+"",value:r+""}),e.updateURL()},"delete":function(t){q(arguments.length,1);for(var r=R(this),e=r.entries,n=t+"",o=0;o<e.length;)e[o].key===n?e.splice(o,1):o++;r.updateURL()},get:function get(t){q(arguments.length,1);for(var r=R(this).entries,e=t+"",n=0;n<r.length;n++)if(r[n].key===e)return r[n].value;return null},getAll:function getAll(t){q(arguments.length,1);for(var r=R(this).entries,e=t+"",n=[],o=0;o<r.length;o++)r[o].key===e&&n.push(r[o].value);return n},has:function has(t){q(arguments.length,1);for(var r=R(this).entries,e=t+"",n=0;n<r.length;)if(r[n++].key===e)return!0;return!1},set:function set(t,r){q(arguments.length,1);for(var e,n=R(this),o=n.entries,i=!1,a=t+"",u=r+"",c=0;c<o.length;c++)(e=o[c]).key===a&&(i?o.splice(c--,1):(i=!0,e.value=u));i||o.push({key:a,value:u}),n.updateURL()},sort:function sort(){var t,r,e,n=R(this),o=n.entries,i=o.slice();for(e=o.length=0;e<i.length;e++){for(t=i[e],r=0;r<e;r++)if(t.key<o[r].key){o.splice(r,0,t);break}r===e&&o.push(t)}n.updateURL()},forEach:function forEach(t){for(var r,e=R(this).entries,n=h(t,1<arguments.length?arguments[1]:qt,3),o=0;o<e.length;)n((r=e[o++]).value,r.key,this)},keys:function keys(){return new z(this,"keys")},values:function values(){return new z(this,"values")},entries:function entries(){return new z(this,"entries")}},{enumerable:!0}),a(V,I,V.entries),a(V,"toString",function toString(){for(var t,r=R(this).entries,e=[],n=0;n<r.length;)t=r[n++],e.push(D(t.key)+"="+D(t.value));return e.join("&")},{enumerable:!0}),c(W,E),n({global:!0,forced:!i},{URLSearchParams:W}),i||"function"!=typeof S||"function"!=typeof A||n({global:!0,enumerable:!0,forced:!0},{fetch:function fetch(t){var r,e,n,o=[t];return 1<arguments.length&&(d(r=arguments[1])&&g(e=r.body)===E&&((n=r.headers?new A(r.headers):new A).has("content-type")||n.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),r=y(r,{body:m(0,String(e)),headers:m(0,n)})),o.push(r)),S.apply(this,o)}}),t.exports={URLSearchParams:W,getState:R}},function(t,r,e){e(2)({target:"URL",proto:!0,enumerable:!0},{toJSON:function toJSON(){return URL.prototype.toString.call(this)}})}],__webpack_require__.c=n,__webpack_require__.d=function(t,r,e){__webpack_require__.o(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:e})},__webpack_require__.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},__webpack_require__.t=function(r,t){if(1&t&&(r=__webpack_require__(r)),8&t)return r;if(4&t&&"object"==typeof r&&r&&r.__esModule)return r;var e=Object.create(null);if(__webpack_require__.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:r}),2&t&&"string"!=typeof r)for(var n in r)__webpack_require__.d(e,n,function(t){return r[t]}.bind(null,n));return e},__webpack_require__.n=function(t){var r=t&&t.__esModule?function getDefault(){return t["default"]}:function getModuleExports(){return t};return __webpack_require__.d(r,"a",r),r},__webpack_require__.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=0)}(); +!function(qt){"use strict";function __webpack_require__(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,__webpack_require__),r.l=!0,r.exports}var e,n;n={},__webpack_require__.m=e=[function(t,r,e){e(1),e(62),e(63),e(64),e(65),e(66),e(67),e(68),e(69),e(70),e(71),e(72),e(73),e(74),e(75),e(76),e(81),e(84),e(87),e(89),e(90),e(91),e(92),e(94),e(95),e(97),e(106),e(107),e(108),e(109),e(117),e(118),e(120),e(121),e(122),e(124),e(125),e(126),e(127),e(128),e(129),e(131),e(132),e(133),e(134),e(141),e(143),e(145),e(146),e(147),e(151),e(152),e(154),e(155),e(157),e(158),e(159),e(160),e(161),e(162),e(169),e(171),e(172),e(173),e(175),e(176),e(178),e(179),e(181),e(182),e(183),e(184),e(185),e(186),e(187),e(188),e(189),e(190),e(191),e(194),e(195),e(197),e(199),e(200),e(201),e(202),e(203),e(205),e(207),e(209),e(210),e(212),e(213),e(215),e(216),e(217),e(218),e(220),e(221),e(222),e(223),e(224),e(225),e(226),e(228),e(229),e(230),e(231),e(232),e(233),e(234),e(235),e(236),e(237),e(239),e(240),e(241),e(242),e(251),e(252),e(253),e(254),e(255),e(256),e(257),e(258),e(259),e(260),e(261),e(262),e(263),e(264),e(265),e(266),e(270),e(272),e(273),e(274),e(275),e(276),e(277),e(279),e(282),e(283),e(284),e(285),e(289),e(290),e(292),e(293),e(294),e(295),e(296),e(297),e(298),e(299),e(301),e(302),e(303),e(306),e(307),e(308),e(309),e(310),e(311),e(312),e(313),e(314),e(315),e(316),e(317),e(318),e(324),e(325),e(326),e(327),e(328),e(329),e(330),e(331),e(332),e(333),e(334),e(335),e(336),e(337),e(338),e(339),e(340),e(341),e(342),e(343),e(344),e(345),e(346),e(347),e(348),e(349),e(350),e(351),e(352),e(353),e(354),e(355),e(356),e(357),e(359),e(360),e(361),e(362),e(363),e(364),e(366),e(368),e(369),e(371),e(372),e(373),e(375),e(376),e(377),e(378),e(379),e(380),e(381),e(382),e(384),e(385),e(386),e(387),e(389),e(390),e(391),e(392),e(393),e(394),e(395),e(396),e(397),e(398),e(399),e(400),e(401),e(403),e(406),e(407),e(408),e(409),e(411),e(412),e(414),e(415),e(416),e(417),e(418),e(419),e(421),e(422),e(423),e(424),e(426),e(427),e(428),e(429),e(430),e(432),e(433),e(434),e(435),e(436),e(437),e(438),e(439),e(440),e(441),e(442),e(444),e(445),e(446),e(447),e(448),e(449),e(450),e(452),e(453),e(454),e(455),e(456),e(457),e(458),e(459),e(460),e(462),e(463),e(464),e(466),e(467),e(468),e(469),e(470),e(471),e(472),e(473),e(474),e(475),e(476),e(477),e(478),e(479),e(480),e(481),e(482),e(483),e(484),e(485),e(486),e(487),e(488),e(489),e(490),e(491),e(492),e(493),e(494),e(495),e(496),e(497),e(499),e(500),e(501),e(502),e(503),e(507),t.exports=e(506)},function(t,r,e){var n=e(2),o=e(3),i=e(34),a=e(29),u=e(5),c=e(45),f=e(46),s=e(6),l=e(15),p=e(47),h=e(14),g=e(20),v=e(48),d=e(9),y=e(13),m=e(8),b=e(49),x=e(51),w=e(36),S=e(53),A=e(43),E=e(4),I=e(19),O=e(7),M=e(18),R=e(21),T=e(28),_=e(27),j=e(31),P=e(30),k=e(54),N=e(55),F=e(56),U=e(57),L=e(25),C=e(58).forEach,D=_("hidden"),B="Symbol",q="prototype",z=k("toPrimitive"),W=L.set,G=L.getterFor(B),V=Object[q],K=o.Symbol,$=i("JSON","stringify"),Y=E.f,J=I.f,X=S.f,H=O.f,Q=T("symbols"),Z=T("op-symbols"),tt=T("string-to-symbol-registry"),rt=T("symbol-to-string-registry"),et=T("wks"),nt=o.QObject,ot=!nt||!nt[q]||!nt[q].findChild,it=u&&s(function(){return 7!=b(J({},"a",{get:function(){return J(this,"a",{value:7}).a}})).a})?function(t,r,e){var n=Y(V,r);n&&delete V[r],J(t,r,e),n&&t!==V&&J(V,r,n)}:J,at=function(t,r){var e=Q[t]=b(K[q]);return W(e,{type:B,tag:t,description:r}),u||(e.description=r),e},ut=f?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof K},ct=function defineProperty(t,r,e){t===V&&ct(Z,r,e),g(t);var n=y(r,!0);return g(e),l(Q,n)?(e.enumerable?(l(t,D)&&t[D][n]&&(t[D][n]=!1),e=b(e,{enumerable:m(0,!1)})):(l(t,D)||J(t,D,m(1,{})),t[D][n]=!0),it(t,n,e)):J(t,n,e)},ft=function defineProperties(r,t){g(r);var e=d(t),n=x(e).concat(ht(e));return C(n,function(t){u&&!st.call(e,t)||ct(r,t,e[t])}),r},st=function propertyIsEnumerable(t){var r=y(t,!0),e=H.call(this,r);return!(this===V&&l(Q,r)&&!l(Z,r))&&(!(e||!l(this,r)||!l(Q,r)||l(this,D)&&this[D][r])||e)},lt=function getOwnPropertyDescriptor(t,r){var e=d(t),n=y(r,!0);if(e!==V||!l(Q,n)||l(Z,n)){var o=Y(e,n);return!o||!l(Q,n)||l(e,D)&&e[D][n]||(o.enumerable=!0),o}},pt=function getOwnPropertyNames(t){var r=X(d(t)),e=[];return C(r,function(t){l(Q,t)||l(j,t)||e.push(t)}),e},ht=function getOwnPropertySymbols(t){var r=t===V,e=X(r?Z:d(t)),n=[];return C(e,function(t){!l(Q,t)||r&&!l(V,t)||n.push(Q[t])}),n};c||(R((K=function Symbol(){if(this instanceof K)throw TypeError("Symbol is not a constructor");var t=arguments.length&&arguments[0]!==qt?String(arguments[0]):qt,r=P(t),e=function(t){this===V&&e.call(Z,t),l(this,D)&&l(this[D],r)&&(this[D][r]=!1),it(this,r,m(1,t))};return u&&ot&&it(V,r,{configurable:!0,set:e}),at(r,t)})[q],"toString",function toString(){return G(this).tag}),R(K,"withoutSetter",function(t){return at(P(t),t)}),O.f=st,I.f=ct,E.f=lt,w.f=S.f=pt,A.f=ht,N.f=function(t){return at(k(t),t)},u&&(J(K[q],"description",{configurable:!0,get:function description(){return G(this).description}}),a||R(V,"propertyIsEnumerable",st,{unsafe:!0}))),n({global:!0,wrap:!0,forced:!c,sham:!c},{Symbol:K}),C(x(et),function(t){F(t)}),n({target:B,stat:!0,forced:!c},{"for":function(t){var r=String(t);if(l(tt,r))return tt[r];var e=K(r);return rt[tt[r]=e]=r,e},keyFor:function keyFor(t){if(!ut(t))throw TypeError(t+" is not a symbol");if(l(rt,t))return rt[t]},useSetter:function(){ot=!0},useSimple:function(){ot=!1}}),n({target:"Object",stat:!0,forced:!c,sham:!u},{create:function create(t,r){return r===qt?b(t):ft(b(t),r)},defineProperty:ct,defineProperties:ft,getOwnPropertyDescriptor:lt}),n({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:pt,getOwnPropertySymbols:ht}),n({target:"Object",stat:!0,forced:s(function(){A.f(1)})},{getOwnPropertySymbols:function getOwnPropertySymbols(t){return A.f(v(t))}}),$&&n({target:"JSON",stat:!0,forced:!c||s(function(){var t=K();return"[null]"!=$([t])||"{}"!=$({a:t})||"{}"!=$(Object(t))})},{stringify:function stringify(t,r,e){for(var n,o=[t],i=1;i<arguments.length;)o.push(arguments[i++]);if((h(n=r)||t!==qt)&&!ut(t))return p(r)||(r=function(t,r){if("function"==typeof n&&(r=n.call(this,t,r)),!ut(r))return r}),o[1]=r,$.apply(null,o)}});K[q][z]||M(K[q],z,K[q].valueOf),U(K,B),j[D]=!0},function(t,r,e){var s=e(3),l=e(4).f,p=e(18),h=e(21),g=e(22),v=e(32),d=e(44);t.exports=function(t,r){var e,n,o,i,a,u=t.target,c=t.global,f=t.stat;if(e=c?s:f?s[u]||g(u,{}):(s[u]||{}).prototype)for(n in r){if(i=r[n],o=t.noTargetGet?(a=l(e,n))&&a.value:e[n],!d(c?n:u+(f?".":"#")+n,t.forced)&&o!==qt){if(typeof i==typeof o)continue;v(i,o)}(t.sham||o&&o.sham)&&p(i,"sham",!0),h(e,n,i,t)}}},function(t,r){var e=function(t){return t&&t.Math==Math&&t};t.exports=e("object"==typeof globalThis&&globalThis)||e("object"==typeof window&&window)||e("object"==typeof self&&self)||e("object"==typeof global&&global)||Function("return this")()},function(t,r,e){var n=e(5),o=e(7),i=e(8),a=e(9),u=e(13),c=e(15),f=e(16),s=Object.getOwnPropertyDescriptor;r.f=n?s:function getOwnPropertyDescriptor(t,r){if(t=a(t),r=u(r,!0),f)try{return s(t,r)}catch(e){}if(c(t,r))return i(!o.f.call(t,r),t[r])}},function(t,r,e){var n=e(6);t.exports=!n(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},function(t,r){t.exports=function(t){try{return!!t()}catch(r){return!0}}},function(t,r,e){var n={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!n.call({1:2},1);r.f=i?function propertyIsEnumerable(t){var r=o(this,t);return!!r&&r.enumerable}:n},function(t,r){t.exports=function(t,r){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:r}}},function(t,r,e){var n=e(10),o=e(12);t.exports=function(t){return n(o(t))}},function(t,r,e){var n=e(6),o=e(11),i="".split;t.exports=n(function(){return!Object("z").propertyIsEnumerable(0)})?function(t){return"String"==o(t)?i.call(t,""):Object(t)}:Object},function(t,r){var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},function(t,r){t.exports=function(t){if(t==qt)throw TypeError("Can't call method on "+t);return t}},function(t,r,e){var o=e(14);t.exports=function(t,r){if(!o(t))return t;var e,n;if(r&&"function"==typeof(e=t.toString)&&!o(n=e.call(t)))return n;if("function"==typeof(e=t.valueOf)&&!o(n=e.call(t)))return n;if(!r&&"function"==typeof(e=t.toString)&&!o(n=e.call(t)))return n;throw TypeError("Can't convert object to primitive value")}},function(t,r){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,r){var e={}.hasOwnProperty;t.exports=function(t,r){return e.call(t,r)}},function(t,r,e){var n=e(5),o=e(6),i=e(17);t.exports=!n&&!o(function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})},function(t,r,e){var n=e(3),o=e(14),i=n.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},function(t,r,e){var n=e(5),o=e(19),i=e(8);t.exports=n?function(t,r,e){return o.f(t,r,i(1,e))}:function(t,r,e){return t[r]=e,t}},function(t,r,e){var n=e(5),o=e(16),i=e(20),a=e(13),u=Object.defineProperty;r.f=n?u:function defineProperty(t,r,e){if(i(t),r=a(r,!0),i(e),o)try{return u(t,r,e)}catch(n){}if("get"in e||"set"in e)throw TypeError("Accessors not supported");return"value"in e&&(t[r]=e.value),t}},function(t,r,e){var n=e(14);t.exports=function(t){if(!n(t))throw TypeError(String(t)+" is not an object");return t}},function(t,r,e){var u=e(3),c=e(18),f=e(15),s=e(22),n=e(23),o=e(25),i=o.get,l=o.enforce,p=String(String).split("String");(t.exports=function(t,r,e,n){var o=!!n&&!!n.unsafe,i=!!n&&!!n.enumerable,a=!!n&&!!n.noTargetGet;"function"==typeof e&&("string"!=typeof r||f(e,"name")||c(e,"name",r),l(e).source=p.join("string"==typeof r?r:"")),t!==u?(o?!a&&t[r]&&(i=!0):delete t[r],i?t[r]=e:c(t,r,e)):i?t[r]=e:s(r,e)})(Function.prototype,"toString",function toString(){return"function"==typeof this&&i(this).source||n(this)})},function(t,r,e){var n=e(3),o=e(18);t.exports=function(t,r){try{o(n,t,r)}catch(e){n[t]=r}return r}},function(t,r,e){var n=e(24),o=Function.toString;"function"!=typeof n.inspectSource&&(n.inspectSource=function(t){return o.call(t)}),t.exports=n.inspectSource},function(t,r,e){var n=e(3),o=e(22),i="__core-js_shared__",a=n[i]||o(i,{});t.exports=a},function(t,r,e){var n,o,i,a=e(26),u=e(3),c=e(14),f=e(18),s=e(15),l=e(27),p=e(31);if(a){var h=new u.WeakMap,g=h.get,v=h.has,d=h.set;n=function(t,r){return d.call(h,t,r),r},o=function(t){return g.call(h,t)||{}},i=function(t){return v.call(h,t)}}else{var y=l("state");p[y]=!0,n=function(t,r){return f(t,y,r),r},o=function(t){return s(t,y)?t[y]:{}},i=function(t){return s(t,y)}}t.exports={set:n,get:o,has:i,enforce:function(t){return i(t)?o(t):n(t,{})},getterFor:function(e){return function(t){var r;if(!c(t)||(r=o(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}}}},function(t,r,e){var n=e(3),o=e(23),i=n.WeakMap;t.exports="function"==typeof i&&/native code/.test(o(i))},function(t,r,e){var n=e(28),o=e(30),i=n("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,r,e){var n=e(29),o=e(24);(t.exports=function(t,r){return o[t]||(o[t]=r!==qt?r:{})})("versions",[]).push({version:"3.6.4",mode:n?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(t,r){t.exports=!1},function(t,r){var e=0,n=Math.random();t.exports=function(t){return"Symbol("+String(t===qt?"":t)+")_"+(++e+n).toString(36)}},function(t,r){t.exports={}},function(t,r,e){var u=e(15),c=e(33),f=e(4),s=e(19);t.exports=function(t,r){for(var e=c(r),n=s.f,o=f.f,i=0;i<e.length;i++){var a=e[i];u(t,a)||n(t,a,o(r,a))}}},function(t,r,e){var n=e(34),o=e(36),i=e(43),a=e(20);t.exports=n("Reflect","ownKeys")||function ownKeys(t){var r=o.f(a(t)),e=i.f;return e?r.concat(e(t)):r}},function(t,r,e){var n=e(35),o=e(3),i=function(t){return"function"==typeof t?t:qt};t.exports=function(t,r){return arguments.length<2?i(n[t])||i(o[t]):n[t]&&n[t][r]||o[t]&&o[t][r]}},function(t,r,e){var n=e(3);t.exports=n},function(t,r,e){var n=e(37),o=e(42).concat("length","prototype");r.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return n(t,o)}},function(t,r,e){var a=e(15),u=e(9),c=e(38).indexOf,f=e(31);t.exports=function(t,r){var e,n=u(t),o=0,i=[];for(e in n)!a(f,e)&&a(n,e)&&i.push(e);for(;o<r.length;)a(n,e=r[o++])&&(~c(i,e)||i.push(e));return i}},function(t,r,e){var c=e(9),f=e(39),s=e(41),n=function(u){return function(t,r,e){var n,o=c(t),i=f(o.length),a=s(e,i);if(u&&r!=r){for(;a<i;)if((n=o[a++])!=n)return!0}else for(;a<i;a++)if((u||a in o)&&o[a]===r)return u||a||0;return!u&&-1}};t.exports={includes:n(!0),indexOf:n(!1)}},function(t,r,e){var n=e(40),o=Math.min;t.exports=function(t){return 0<t?o(n(t),9007199254740991):0}},function(t,r){var e=Math.ceil,n=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(0<t?n:e)(t)}},function(t,r,e){var n=e(40),o=Math.max,i=Math.min;t.exports=function(t,r){var e=n(t);return e<0?o(e+r,0):i(e,r)}},function(t,r){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,r){r.f=Object.getOwnPropertySymbols},function(t,r,e){var n=e(6),o=/#|\.prototype\./,i=function(t,r){var e=u[a(t)];return e==f||e!=c&&("function"==typeof r?n(r):!!r)},a=i.normalize=function(t){return String(t).replace(o,".").toLowerCase()},u=i.data={},c=i.NATIVE="N",f=i.POLYFILL="P";t.exports=i},function(t,r,e){var n=e(6);t.exports=!!Object.getOwnPropertySymbols&&!n(function(){return!String(Symbol())})},function(t,r,e){var n=e(45);t.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(t,r,e){var n=e(11);t.exports=Array.isArray||function isArray(t){return"Array"==n(t)}},function(t,r,e){var n=e(12);t.exports=function(t){return Object(n(t))}},function(t,r,e){var o,n=e(20),i=e(50),a=e(42),u=e(31),c=e(52),f=e(17),s=e(27),l="prototype",p="script",h=s("IE_PROTO"),g=function(){},v=function(t){return"<script>"+t+"</"+p+">"},d=function(){try{o=document.domain&&new ActiveXObject("htmlfile")}catch(n){}var t,r;d=o?function(t){t.write(v("")),t.close();var r=t.parentWindow.Object;return t=null,r}(o):((r=f("iframe")).style.display="none",c.appendChild(r),r.src=String("javascript:"),(t=r.contentWindow.document).open(),t.write(v("document.F=Object")),t.close(),t.F);for(var e=a.length;e--;)delete d[l][a[e]];return d()};u[h]=!0,t.exports=Object.create||function create(t,r){var e;return null!==t?(g[l]=n(t),e=new g,g[l]=null,e[h]=t):e=d(),r===qt?e:i(e,r)}},function(t,r,e){var n=e(5),a=e(19),u=e(20),c=e(51);t.exports=n?Object.defineProperties:function defineProperties(t,r){u(t);for(var e,n=c(r),o=n.length,i=0;i<o;)a.f(t,e=n[i++],r[e]);return t}},function(t,r,e){var n=e(37),o=e(42);t.exports=Object.keys||function keys(t){return n(t,o)}},function(t,r,e){var n=e(34);t.exports=n("document","documentElement")},function(t,r,e){var n=e(9),o=e(36).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function getOwnPropertyNames(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(r){return a.slice()}}(t):o(n(t))}},function(t,r,e){var n=e(3),o=e(28),i=e(15),a=e(30),u=e(45),c=e(46),f=o("wks"),s=n.Symbol,l=c?s:s&&s.withoutSetter||a;t.exports=function(t){return i(f,t)||(u&&i(s,t)?f[t]=s[t]:f[t]=l("Symbol."+t)),f[t]}},function(t,r,e){var n=e(54);r.f=n},function(t,r,e){var n=e(35),o=e(15),i=e(55),a=e(19).f;t.exports=function(t){var r=n.Symbol||(n.Symbol={});o(r,t)||a(r,t,{value:i.f(t)})}},function(t,r,e){var n=e(19).f,o=e(15),i=e(54)("toStringTag");t.exports=function(t,r,e){t&&!o(t=e?t:t.prototype,i)&&n(t,i,{configurable:!0,value:r})}},function(t,r,e){var x=e(59),w=e(10),S=e(48),A=e(39),E=e(61),I=[].push,n=function(h){var g=1==h,v=2==h,d=3==h,y=4==h,m=6==h,b=5==h||m;return function(t,r,e,n){for(var o,i,a=S(t),u=w(a),c=x(r,e,3),f=A(u.length),s=0,l=n||E,p=g?l(t,f):v?l(t,0):qt;s<f;s++)if((b||s in u)&&(i=c(o=u[s],s,a),h))if(g)p[s]=i;else if(i)switch(h){case 3:return!0;case 5:return o;case 6:return s;case 2:I.call(p,o)}else if(y)return!1;return m?-1:d||y?y:p}};t.exports={forEach:n(0),map:n(1),filter:n(2),some:n(3),every:n(4),find:n(5),findIndex:n(6)}},function(t,r,e){var i=e(60);t.exports=function(n,o,t){if(i(n),o===qt)return n;switch(t){case 0:return function(){return n.call(o)};case 1:return function(t){return n.call(o,t)};case 2:return function(t,r){return n.call(o,t,r)};case 3:return function(t,r,e){return n.call(o,t,r,e)}}return function(){return n.apply(o,arguments)}}},function(t,r){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},function(t,r,e){var n=e(14),o=e(47),i=e(54)("species");t.exports=function(t,r){var e;return o(t)&&("function"==typeof(e=t.constructor)&&(e===Array||o(e.prototype))||n(e)&&null===(e=e[i]))&&(e=qt),new(e===qt?Array:e)(0===r?0:r)}},function(t,r,e){var n=e(2),o=e(5),i=e(3),a=e(15),u=e(14),c=e(19).f,f=e(32),s=i.Symbol;if(o&&"function"==typeof s&&(!("description"in s.prototype)||s().description!==qt)){var l={},p=function Symbol(){var t=arguments.length<1||arguments[0]===qt?qt:String(arguments[0]),r=this instanceof p?new s(t):t===qt?s():s(t);return""===t&&(l[r]=!0),r};f(p,s);var h=p.prototype=s.prototype;h.constructor=p;var g=h.toString,v="Symbol(test)"==String(s("test")),d=/^Symbol\((.*)\)[^)]+$/;c(h,"description",{configurable:!0,get:function description(){var t=u(this)?this.valueOf():this,r=g.call(t);if(a(l,t))return"";var e=v?r.slice(7,-1):r.replace(d,"$1");return""===e?qt:e}}),n({global:!0,forced:!0},{Symbol:p})}},function(t,r,e){e(56)("asyncIterator")},function(t,r,e){e(56)("hasInstance")},function(t,r,e){e(56)("isConcatSpreadable")},function(t,r,e){e(56)("iterator")},function(t,r,e){e(56)("match")},function(t,r,e){e(56)("matchAll")},function(t,r,e){e(56)("replace")},function(t,r,e){e(56)("search")},function(t,r,e){e(56)("species")},function(t,r,e){e(56)("split")},function(t,r,e){e(56)("toPrimitive")},function(t,r,e){e(56)("toStringTag")},function(t,r,e){e(56)("unscopables")},function(t,r,e){var n=e(2),o=e(6),i=e(47),a=e(14),f=e(48),s=e(39),l=e(77),p=e(61),u=e(78),c=e(54),h=e(79),g=c("isConcatSpreadable"),v=9007199254740991,d="Maximum allowed index exceeded",y=51<=h||!o(function(){var t=[];return t[g]=!1,t.concat()[0]!==t}),m=u("concat"),b=function(t){if(!a(t))return!1;var r=t[g];return r!==qt?!!r:i(t)};n({target:"Array",proto:!0,forced:!y||!m},{concat:function concat(t){var r,e,n,o,i,a=f(this),u=p(a,0),c=0;for(r=-1,n=arguments.length;r<n;r++)if(b(i=-1===r?a:arguments[r])){if(o=s(i.length),v<c+o)throw TypeError(d);for(e=0;e<o;e++,c++)e in i&&l(u,c,i[e])}else{if(v<=c)throw TypeError(d);l(u,c++,i)}return u.length=c,u}})},function(t,r,e){var o=e(13),i=e(19),a=e(8);t.exports=function(t,r,e){var n=o(r);n in t?i.f(t,n,a(0,e)):t[n]=e}},function(t,r,e){var n=e(6),o=e(54),i=e(79),a=o("species");t.exports=function(r){return 51<=i||!n(function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[r](Boolean).foo})}},function(t,r,e){var n,o,i=e(3),a=e(80),u=i.process,c=u&&u.versions,f=c&&c.v8;f?o=(n=f.split("."))[0]+n[1]:a&&(!(n=a.match(/Edge\/(\d+)/))||74<=n[1])&&(n=a.match(/Chrome\/(\d+)/))&&(o=n[1]),t.exports=o&&+o},function(t,r,e){var n=e(34);t.exports=n("navigator","userAgent")||""},function(t,r,e){var n=e(2),o=e(82),i=e(83);n({target:"Array",proto:!0},{copyWithin:o}),i("copyWithin")},function(t,r,e){var f=e(48),s=e(41),l=e(39),p=Math.min;t.exports=[].copyWithin||function copyWithin(t,r){var e=f(this),n=l(e.length),o=s(t,n),i=s(r,n),a=2<arguments.length?arguments[2]:qt,u=p((a===qt?n:s(a,n))-i,n-o),c=1;for(i<o&&o<i+u&&(c=-1,i+=u-1,o+=u-1);0<u--;)i in e?e[o]=e[i]:delete e[o],o+=c,i+=c;return e}},function(t,r,e){var n=e(54),o=e(49),i=e(19),a=n("unscopables"),u=Array.prototype;u[a]==qt&&i.f(u,a,{configurable:!0,value:o(null)}),t.exports=function(t){u[a][t]=!0}},function(t,r,e){var n=e(2),o=e(58).every,i=e(85),a=e(86),u=i("every"),c=a("every");n({target:"Array",proto:!0,forced:!u||!c},{every:function every(t){return o(this,t,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var n=e(6);t.exports=function(t,r){var e=[][t];return!!e&&n(function(){e.call(null,r||function(){throw 1},1)})}},function(t,r,e){var a=e(5),u=e(6),c=e(15),f=Object.defineProperty,s={},l=function(t){throw t};t.exports=function(t,r){if(c(s,t))return s[t];var e=[][t],n=!!c(r=r||{},"ACCESSORS")&&r.ACCESSORS,o=c(r,0)?r[0]:l,i=c(r,1)?r[1]:qt;return s[t]=!!e&&!u(function(){if(n&&!a)return!0;var t={length:-1};n?f(t,1,{enumerable:!0,get:l}):t[1]=1,e.call(t,o,i)})}},function(t,r,e){var n=e(2),o=e(88),i=e(83);n({target:"Array",proto:!0},{fill:o}),i("fill")},function(t,r,e){var u=e(48),c=e(41),f=e(39);t.exports=function fill(t){for(var r=u(this),e=f(r.length),n=arguments.length,o=c(1<n?arguments[1]:qt,e),i=2<n?arguments[2]:qt,a=i===qt?e:c(i,e);o<a;)r[o++]=t;return r}},function(t,r,e){var n=e(2),o=e(58).filter,i=e(78),a=e(86),u=i("filter"),c=a("filter");n({target:"Array",proto:!0,forced:!u||!c},{filter:function filter(t){return o(this,t,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var n=e(2),o=e(58).find,i=e(83),a=e(86),u="find",c=!0,f=a(u);u in[]&&Array(1)[u](function(){c=!1}),n({target:"Array",proto:!0,forced:c||!f},{find:function find(t){return o(this,t,1<arguments.length?arguments[1]:qt)}}),i(u)},function(t,r,e){var n=e(2),o=e(58).findIndex,i=e(83),a=e(86),u="findIndex",c=!0,f=a(u);u in[]&&Array(1)[u](function(){c=!1}),n({target:"Array",proto:!0,forced:c||!f},{findIndex:function findIndex(t){return o(this,t,1<arguments.length?arguments[1]:qt)}}),i(u)},function(t,r,e){var n=e(2),o=e(93),i=e(48),a=e(39),u=e(40),c=e(61);n({target:"Array",proto:!0},{flat:function flat(){var t=arguments.length?arguments[0]:qt,r=i(this),e=a(r.length),n=c(r,0);return n.length=o(n,r,r,e,0,t===qt?1:u(t)),n}})},function(t,r,e){var p=e(47),h=e(39),g=e(59),v=function(t,r,e,n,o,i,a,u){for(var c,f=o,s=0,l=!!a&&g(a,u,3);s<n;){if(s in e){if(c=l?l(e[s],s,r):e[s],0<i&&p(c))f=v(t,r,c,h(c.length),f,i-1)-1;else{if(9007199254740991<=f)throw TypeError("Exceed the acceptable array length");t[f]=c}f++}s++}return f};t.exports=v},function(t,r,e){var n=e(2),o=e(93),i=e(48),a=e(39),u=e(60),c=e(61);n({target:"Array",proto:!0},{flatMap:function flatMap(t){var r,e=i(this),n=a(e.length);return u(t),(r=c(e,0)).length=o(r,e,e,n,0,1,t,1<arguments.length?arguments[1]:qt),r}})},function(t,r,e){var n=e(2),o=e(96);n({target:"Array",proto:!0,forced:[].forEach!=o},{forEach:o})},function(t,r,e){var n=e(58).forEach,o=e(85),i=e(86),a=o("forEach"),u=i("forEach");t.exports=a&&u?[].forEach:function forEach(t){return n(this,t,1<arguments.length?arguments[1]:qt)}},function(t,r,e){var n=e(2),o=e(98);n({target:"Array",stat:!0,forced:!e(105)(function(t){Array.from(t)})},{from:o})},function(t,r,e){var g=e(59),v=e(48),d=e(99),y=e(100),m=e(39),b=e(77),x=e(102);t.exports=function from(t){var r,e,n,o,i,a,u=v(t),c="function"==typeof this?this:Array,f=arguments.length,s=1<f?arguments[1]:qt,l=s!==qt,p=x(u),h=0;if(l&&(s=g(s,2<f?arguments[2]:qt,2)),p==qt||c==Array&&y(p))for(e=new c(r=m(u.length));h<r;h++)a=l?s(u[h],h):u[h],b(e,h,a);else for(i=(o=p.call(u)).next,e=new c;!(n=i.call(o)).done;h++)a=l?d(o,s,[n.value,h],!0):n.value,b(e,h,a);return e.length=h,e}},function(t,r,e){var a=e(20);t.exports=function(t,r,e,n){try{return n?r(a(e)[0],e[1]):r(e)}catch(i){var o=t["return"];throw o!==qt&&a(o.call(t)),i}}},function(t,r,e){var n=e(54),o=e(101),i=n("iterator"),a=Array.prototype;t.exports=function(t){return t!==qt&&(o.Array===t||a[i]===t)}},function(t,r){t.exports={}},function(t,r,e){var n=e(103),o=e(101),i=e(54)("iterator");t.exports=function(t){if(t!=qt)return t[i]||t["@@iterator"]||o[n(t)]}},function(t,r,e){var n=e(104),o=e(11),i=e(54)("toStringTag"),a="Arguments"==o(function(){return arguments}());t.exports=n?o:function(t){var r,e,n;return t===qt?"Undefined":null===t?"Null":"string"==typeof(e=function(t,r){try{return t[r]}catch(e){}}(r=Object(t),i))?e:a?o(r):"Object"==(n=o(r))&&"function"==typeof r.callee?"Arguments":n}},function(t,r,e){var n={};n[e(54)("toStringTag")]="z",t.exports="[object z]"===String(n)},function(t,r,e){var o=e(54)("iterator"),i=!1;try{var n=0,a={next:function(){return{done:!!n++}},"return":function(){i=!0}};a[o]=function(){return this},Array.from(a,function(){throw 2})}catch(u){}t.exports=function(t,r){if(!r&&!i)return!1;var e=!1;try{var n={};n[o]=function(){return{next:function(){return{done:e=!0}}}},t(n)}catch(u){}return e}},function(t,r,e){var n=e(2),o=e(38).includes,i=e(83);n({target:"Array",proto:!0,forced:!e(86)("indexOf",{ACCESSORS:!0,1:0})},{includes:function includes(t){return o(this,t,1<arguments.length?arguments[1]:qt)}}),i("includes")},function(t,r,e){var n=e(2),o=e(38).indexOf,i=e(85),a=e(86),u=[].indexOf,c=!!u&&1/[1].indexOf(1,-0)<0,f=i("indexOf"),s=a("indexOf",{ACCESSORS:!0,1:0});n({target:"Array",proto:!0,forced:c||!f||!s},{indexOf:function indexOf(t){return c?u.apply(this,arguments)||0:o(this,t,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){e(2)({target:"Array",stat:!0},{isArray:e(47)})},function(t,r,e){var n=e(9),o=e(83),i=e(101),a=e(25),u=e(110),c="Array Iterator",f=a.set,s=a.getterFor(c);t.exports=u(Array,"Array",function(t,r){f(this,{type:c,target:n(t),index:0,kind:r})},function(){var t=s(this),r=t.target,e=t.kind,n=t.index++;return!r||r.length<=n?{value:t.target=qt,done:!0}:"keys"==e?{value:n,done:!1}:"values"==e?{value:r[n],done:!1}:{value:[n,r[n]],done:!1}},"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},function(t,r,e){var y=e(2),m=e(111),b=e(113),x=e(115),w=e(57),S=e(18),A=e(21),n=e(54),E=e(29),I=e(101),o=e(112),O=o.IteratorPrototype,M=o.BUGGY_SAFARI_ITERATORS,R=n("iterator"),T="values",_="entries",j=function(){return this};t.exports=function(t,r,e,n,o,i,a){m(e,r,n);var u,c,f,s=function(t){if(t===o&&v)return v;if(!M&&t in h)return h[t];switch(t){case"keys":return function keys(){return new e(this,t)};case T:return function values(){return new e(this,t)};case _:return function entries(){return new e(this,t)}}return function(){return new e(this)}},l=r+" Iterator",p=!1,h=t.prototype,g=h[R]||h["@@iterator"]||o&&h[o],v=!M&&g||s(o),d="Array"==r&&h.entries||g;if(d&&(u=b(d.call(new t)),O!==Object.prototype&&u.next&&(E||b(u)===O||(x?x(u,O):"function"!=typeof u[R]&&S(u,R,j)),w(u,l,!0,!0),E&&(I[l]=j))),o==T&&g&&g.name!==T&&(p=!0,v=function values(){return g.call(this)}),E&&!a||h[R]===v||S(h,R,v),I[r]=v,o)if(c={values:s(T),keys:i?v:s("keys"),entries:s(_)},a)for(f in c)!M&&!p&&f in h||A(h,f,c[f]);else y({target:r,proto:!0,forced:M||p},c);return c}},function(t,r,e){var o=e(112).IteratorPrototype,i=e(49),a=e(8),u=e(57),c=e(101),f=function(){return this};t.exports=function(t,r,e){var n=r+" Iterator";return t.prototype=i(o,{next:a(1,e)}),u(t,n,!1,!0),c[n]=f,t}},function(t,r,e){var n,o,i,a=e(113),u=e(18),c=e(15),f=e(54),s=e(29),l=f("iterator"),p=!1;[].keys&&("next"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(n=o):p=!0),n==qt&&(n={}),s||c(n,l)||u(n,l,function(){return this}),t.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:p}},function(t,r,e){var n=e(15),o=e(48),i=e(27),a=e(114),u=i("IE_PROTO"),c=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=o(t),n(t,u)?t[u]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?c:null}},function(t,r,e){var n=e(6);t.exports=!n(function(){function F(){}return F.prototype.constructor=null,Object.getPrototypeOf(new F)!==F.prototype})},function(t,r,e){var o=e(20),i=e(116);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,n=!1,t={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(t,[]),n=t instanceof Array}catch(r){}return function setPrototypeOf(t,r){return o(t),i(r),n?e.call(t,r):t.__proto__=r,t}}():qt)},function(t,r,e){var n=e(14);t.exports=function(t){if(!n(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},function(t,r,e){var n=e(2),o=e(10),i=e(9),a=e(85),u=[].join,c=o!=Object,f=a("join",",");n({target:"Array",proto:!0,forced:c||!f},{join:function join(t){return u.call(i(this),t===qt?",":t)}})},function(t,r,e){var n=e(2),o=e(119);n({target:"Array",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},function(t,r,e){var o=e(9),i=e(40),a=e(39),n=e(85),u=e(86),c=Math.min,f=[].lastIndexOf,s=!!f&&1/[1].lastIndexOf(1,-0)<0,l=n("lastIndexOf"),p=u("indexOf",{ACCESSORS:!0,1:0});t.exports=s||!l||!p?function lastIndexOf(t){if(s)return f.apply(this,arguments)||0;var r=o(this),e=a(r.length),n=e-1;for(1<arguments.length&&(n=c(n,i(arguments[1]))),n<0&&(n=e+n);0<=n;n--)if(n in r&&r[n]===t)return n||0;return-1}:f},function(t,r,e){var n=e(2),o=e(58).map,i=e(78),a=e(86),u=i("map"),c=a("map");n({target:"Array",proto:!0,forced:!u||!c},{map:function map(t){return o(this,t,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var n=e(2),o=e(6),i=e(77);n({target:"Array",stat:!0,forced:o(function(){function F(){}return!(Array.of.call(F)instanceof F)})},{of:function of(){for(var t=0,r=arguments.length,e=new("function"==typeof this?this:Array)(r);t<r;)i(e,t,arguments[t++]);return e.length=r,e}})},function(t,r,e){var n=e(2),o=e(123).left,i=e(85),a=e(86),u=i("reduce"),c=a("reduce",{1:0});n({target:"Array",proto:!0,forced:!u||!c},{reduce:function reduce(t){return o(this,t,arguments.length,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var s=e(60),l=e(48),p=e(10),h=e(39),n=function(f){return function(t,r,e,n){s(r);var o=l(t),i=p(o),a=h(o.length),u=f?a-1:0,c=f?-1:1;if(e<2)for(;;){if(u in i){n=i[u],u+=c;break}if(u+=c,f?u<0:a<=u)throw TypeError("Reduce of empty array with no initial value")}for(;f?0<=u:u<a;u+=c)u in i&&(n=r(n,i[u],u,o));return n}};t.exports={left:n(!1),right:n(!0)}},function(t,r,e){var n=e(2),o=e(123).right,i=e(85),a=e(86),u=i("reduceRight"),c=a("reduce",{1:0});n({target:"Array",proto:!0,forced:!u||!c},{reduceRight:function reduceRight(t){return o(this,t,arguments.length,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var n=e(2),o=e(47),i=[].reverse,a=[1,2];n({target:"Array",proto:!0,forced:String(a)===String(a.reverse())},{reverse:function reverse(){return o(this)&&(this.length=this.length),i.call(this)}})},function(t,r,e){var n=e(2),f=e(14),s=e(47),l=e(41),p=e(39),h=e(9),g=e(77),o=e(54),i=e(78),a=e(86),u=i("slice"),c=a("slice",{ACCESSORS:!0,0:0,1:2}),v=o("species"),d=[].slice,y=Math.max;n({target:"Array",proto:!0,forced:!u||!c},{slice:function slice(t,r){var e,n,o,i=h(this),a=p(i.length),u=l(t,a),c=l(r===qt?a:r,a);if(s(i)&&(("function"==typeof(e=i.constructor)&&(e===Array||s(e.prototype))||f(e)&&null===(e=e[v]))&&(e=qt),e===Array||e===qt))return d.call(i,u,c);for(n=new(e===qt?Array:e)(y(c-u,0)),o=0;u<c;u++,o++)u in i&&g(n,o,i[u]);return n.length=o,n}})},function(t,r,e){var n=e(2),o=e(58).some,i=e(85),a=e(86),u=i("some"),c=a("some");n({target:"Array",proto:!0,forced:!u||!c},{some:function some(t){return o(this,t,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var n=e(2),o=e(60),i=e(48),a=e(6),u=e(85),c=[],f=c.sort,s=a(function(){c.sort(qt)}),l=a(function(){c.sort(null)}),p=u("sort");n({target:"Array",proto:!0,forced:s||!l||!p},{sort:function sort(t){return t===qt?f.call(i(this)):f.call(i(this),o(t))}})},function(t,r,e){e(130)("Array")},function(t,r,e){var n=e(34),o=e(19),i=e(54),a=e(5),u=i("species");t.exports=function(t){var r=n(t);a&&r&&!r[u]&&(0,o.f)(r,u,{configurable:!0,get:function(){return this}})}},function(t,r,e){var n=e(2),p=e(41),h=e(40),g=e(39),v=e(48),d=e(61),y=e(77),o=e(78),i=e(86),a=o("splice"),u=i("splice",{ACCESSORS:!0,0:0,1:2}),m=Math.max,b=Math.min;n({target:"Array",proto:!0,forced:!a||!u},{splice:function splice(t,r){var e,n,o,i,a,u,c=v(this),f=g(c.length),s=p(t,f),l=arguments.length;if(0===l?e=n=0:n=1===l?(e=0,f-s):(e=l-2,b(m(h(r),0),f-s)),9007199254740991<f+e-n)throw TypeError("Maximum allowed length exceeded");for(o=d(c,n),i=0;i<n;i++)(a=s+i)in c&&y(o,i,c[a]);if(e<(o.length=n)){for(i=s;i<f-n;i++)u=i+e,(a=i+n)in c?c[u]=c[a]:delete c[u];for(i=f;f-n+e<i;i--)delete c[i-1]}else if(n<e)for(i=f-n;s<i;i--)u=i+e-1,(a=i+n-1 +)in c?c[u]=c[a]:delete c[u];for(i=0;i<e;i++)c[i+s]=arguments[i+2];return c.length=f-n+e,o}})},function(t,r,e){e(83)("flat")},function(t,r,e){e(83)("flatMap")},function(t,r,e){var n=e(2),o=e(3),i=e(135),a=e(130),u="ArrayBuffer",c=i[u];n({global:!0,forced:o[u]!==c},{ArrayBuffer:c}),a(u)},function(t,r,e){var n=e(3),i=e(5),o=e(136),a=e(18),u=e(137),c=e(6),f=e(138),s=e(40),l=e(39),p=e(139),h=e(140),g=e(113),v=e(115),d=e(36).f,y=e(19).f,m=e(88),b=e(57),x=e(25),w=x.get,S=x.set,A="ArrayBuffer",E="DataView",I="prototype",O="Wrong index",M=n[A],R=M,T=n[E],_=T&&T[I],j=Object.prototype,P=n.RangeError,k=h.pack,N=h.unpack,F=function(t){return[255&t]},U=function(t){return[255&t,t>>8&255]},L=function(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]},C=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},D=function(t){return k(t,23,4)},B=function(t){return k(t,52,8)},q=function(t,r){y(t[I],r,{get:function(){return w(this)[r]}})},z=function(t,r,e,n){var o=p(e),i=w(t);if(i.byteLength<o+r)throw P(O);var a=w(i.buffer).bytes,u=o+i.byteOffset,c=a.slice(u,u+r);return n?c:c.reverse()},W=function(t,r,e,n,o,i){var a=p(e),u=w(t);if(u.byteLength<a+r)throw P(O);for(var c=w(u.buffer).bytes,f=a+u.byteOffset,s=n(+o),l=0;l<r;l++)c[f+l]=s[i?l:r-l-1]};if(o){if(!c(function(){M(1)})||!c(function(){new M(-1)})||c(function(){return new M,new M(1.5),new M(NaN),M.name!=A})){for(var G,V=(R=function ArrayBuffer(t){return f(this,R),new M(p(t))})[I]=M[I],K=d(M),$=0;$<K.length;)(G=K[$++])in R||a(R,G,M[G]);V.constructor=R}v&&g(_)!==j&&v(_,j);var Y=new T(new R(2)),J=_.setInt8;Y.setInt8(0,2147483648),Y.setInt8(1,2147483649),!Y.getInt8(0)&&Y.getInt8(1)||u(_,{setInt8:function setInt8(t,r){J.call(this,t,r<<24>>24)},setUint8:function setUint8(t,r){J.call(this,t,r<<24>>24)}},{unsafe:!0})}else R=function ArrayBuffer(t){f(this,R,A);var r=p(t);S(this,{bytes:m.call(new Array(r),0),byteLength:r}),i||(this.byteLength=r)},T=function DataView(t,r,e){f(this,T,E),f(t,R,E);var n=w(t).byteLength,o=s(r);if(o<0||n<o)throw P("Wrong offset");if(n<o+(e=e===qt?n-o:l(e)))throw P("Wrong length");S(this,{buffer:t,byteLength:e,byteOffset:o}),i||(this.buffer=t,this.byteLength=e,this.byteOffset=o)},i&&(q(R,"byteLength"),q(T,"buffer"),q(T,"byteLength"),q(T,"byteOffset")),u(T[I],{getInt8:function getInt8(t){return z(this,1,t)[0]<<24>>24},getUint8:function getUint8(t){return z(this,1,t)[0]},getInt16:function getInt16(t){var r=z(this,2,t,1<arguments.length?arguments[1]:qt);return(r[1]<<8|r[0])<<16>>16},getUint16:function getUint16(t){var r=z(this,2,t,1<arguments.length?arguments[1]:qt);return r[1]<<8|r[0]},getInt32:function getInt32(t){return C(z(this,4,t,1<arguments.length?arguments[1]:qt))},getUint32:function getUint32(t){return C(z(this,4,t,1<arguments.length?arguments[1]:qt))>>>0},getFloat32:function getFloat32(t){return N(z(this,4,t,1<arguments.length?arguments[1]:qt),23)},getFloat64:function getFloat64(t){return N(z(this,8,t,1<arguments.length?arguments[1]:qt),52)},setInt8:function setInt8(t,r){W(this,1,t,F,r)},setUint8:function setUint8(t,r){W(this,1,t,F,r)},setInt16:function setInt16(t,r){W(this,2,t,U,r,2<arguments.length?arguments[2]:qt)},setUint16:function setUint16(t,r){W(this,2,t,U,r,2<arguments.length?arguments[2]:qt)},setInt32:function setInt32(t,r){W(this,4,t,L,r,2<arguments.length?arguments[2]:qt)},setUint32:function setUint32(t,r){W(this,4,t,L,r,2<arguments.length?arguments[2]:qt)},setFloat32:function setFloat32(t,r){W(this,4,t,D,r,2<arguments.length?arguments[2]:qt)},setFloat64:function setFloat64(t,r){W(this,8,t,B,r,2<arguments.length?arguments[2]:qt)}});b(R,A),b(T,E),t.exports={ArrayBuffer:R,DataView:T}},function(t,r){t.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},function(t,r,e){var o=e(21);t.exports=function(t,r,e){for(var n in r)o(t,n,r[n],e);return t}},function(t,r){t.exports=function(t,r,e){if(!(t instanceof r))throw TypeError("Incorrect "+(e?e+" ":"")+"invocation");return t}},function(t,r,e){var n=e(40),o=e(39);t.exports=function(t){if(t===qt)return 0;var r=n(t),e=o(r);if(r!==e)throw RangeError("Wrong length or index");return e}},function(t,r){var h=Math.abs,g=Math.pow,v=Math.floor,d=Math.log,y=Math.LN2;t.exports={pack:function(t,r,e){var n,o,i,a=new Array(e),u=8*e-r-1,c=(1<<u)-1,f=c>>1,s=23===r?g(2,-24)-g(2,-77):0,l=t<0||0===t&&1/t<0?1:0,p=0;for((t=h(t))!=t||t===1/0?(o=t!=t?1:0,n=c):(n=v(d(t)/y),t*(i=g(2,-n))<1&&(n--,i*=2),2<=(t+=1<=n+f?s/i:s*g(2,1-f))*i&&(n++,i/=2),c<=n+f?(o=0,n=c):1<=n+f?(o=(t*i-1)*g(2,r),n+=f):(o=t*g(2,f-1)*g(2,r),n=0));8<=r;a[p++]=255&o,o/=256,r-=8);for(n=n<<r|o,u+=r;0<u;a[p++]=255&n,n/=256,u-=8);return a[--p]|=128*l,a},unpack:function(t,r){var e,n=t.length,o=8*n-r-1,i=(1<<o)-1,a=i>>1,u=o-7,c=n-1,f=t[c--],s=127&f;for(f>>=7;0<u;s=256*s+t[c],c--,u-=8);for(e=s&(1<<-u)-1,s>>=-u,u+=r;0<u;e=256*e+t[c],c--,u-=8);if(0===s)s=1-a;else{if(s===i)return e?NaN:f?-1/0:1/0;e+=g(2,r),s-=a}return(f?-1:1)*e*g(2,s-r)}}},function(t,r,e){var n=e(2),o=e(142);n({target:"ArrayBuffer",stat:!0,forced:!o.NATIVE_ARRAY_BUFFER_VIEWS},{isView:o.isView})},function(t,r,e){var n,o=e(136),a=e(5),u=e(3),i=e(14),c=e(15),f=e(103),s=e(18),l=e(21),p=e(19).f,h=e(113),g=e(115),v=e(54),d=e(30),y=u.Int8Array,m=y&&y.prototype,b=u.Uint8ClampedArray,x=b&&b.prototype,w=y&&h(y),S=m&&h(m),A=Object.prototype,E=A.isPrototypeOf,I=v("toStringTag"),O=d("TYPED_ARRAY_TAG"),M=o&&!!g&&"Opera"!==f(u.opera),R=!1,T={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},_=function _(t){var r=f(t);return"DataView"===r||c(T,r)},j=function(t){return i(t)&&c(T,f(t))};for(n in T)u[n]||(M=!1);if((!M||"function"!=typeof w||w===Function.prototype)&&(w=function w(){throw TypeError("Incorrect invocation")},M))for(n in T)u[n]&&g(u[n],w);if((!M||!S||S===A)&&(S=w.prototype,M))for(n in T)u[n]&&g(u[n].prototype,S);if(M&&h(x)!==S&&g(x,S),a&&!c(S,I))for(n in R=!0,p(S,I,{get:function(){return i(this)?this[O]:qt}}),T)u[n]&&s(u[n],O,n);t.exports={NATIVE_ARRAY_BUFFER_VIEWS:M,TYPED_ARRAY_TAG:R&&O,aTypedArray:function(t){if(j(t))return t;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(t){if(g){if(E.call(w,t))return t}else for(var r in T)if(c(T,n)){var e=u[r];if(e&&(t===e||E.call(e,t)))return t}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(t,r,e){if(a){if(e)for(var n in T){var o=u[n];o&&c(o.prototype,t)&&delete o.prototype[t]}S[t]&&!e||l(S,t,!e&&M&&m[t]||r)}},exportTypedArrayStaticMethod:function(t,r,e){var n,o;if(a){if(g){if(e)for(n in T)(o=u[n])&&c(o,t)&&delete o[t];if(w[t]&&!e)return;try{return l(w,t,!e&&M&&y[t]||r)}catch(i){}}for(n in T)!(o=u[n])||o[t]&&!e||l(o,t,r)}},isView:_,isTypedArray:j,TypedArray:w,TypedArrayPrototype:S}},function(t,r,e){var n=e(2),o=e(6),i=e(135),f=e(20),s=e(41),l=e(39),p=e(144),h=i.ArrayBuffer,g=i.DataView,v=h.prototype.slice;n({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:o(function(){return!new h(2).slice(1,qt).byteLength})},{slice:function slice(t,r){if(v!==qt&&r===qt)return v.call(f(this),t);for(var e=f(this).byteLength,n=s(t,e),o=s(r===qt?e:r,e),i=new(p(this,h))(l(o-n)),a=new g(this),u=new g(i),c=0;n<o;)u.setUint8(c++,a.getUint8(n++));return i}})},function(t,r,e){var o=e(20),i=e(60),a=e(54)("species");t.exports=function(t,r){var e,n=o(t).constructor;return n===qt||(e=o(n)[a])==qt?r:i(e)}},function(t,r,e){var n=e(2),o=e(135);n({global:!0,forced:!e(136)},{DataView:o.DataView})},function(t,r,e){e(2)({target:"Date",stat:!0},{now:function now(){return(new Date).getTime()}})},function(t,r,e){var n=e(2),o=e(148);n({target:"Date",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},function(t,r,e){var n=e(6),o=e(149).start,i=Math.abs,a=Date.prototype,u=a.getTime,c=a.toISOString;t.exports=n(function(){return"0385-07-25T07:06:39.999Z"!=c.call(new Date(-5e13-1))})||!n(function(){c.call(new Date(NaN))})?function toISOString(){if(!isFinite(u.call(this)))throw RangeError("Invalid time value");var t=this,r=t.getUTCFullYear(),e=t.getUTCMilliseconds(),n=r<0?"-":9999<r?"+":"";return n+o(i(r),n?6:4,0)+"-"+o(t.getUTCMonth()+1,2,0)+"-"+o(t.getUTCDate(),2,0)+"T"+o(t.getUTCHours(),2,0)+":"+o(t.getUTCMinutes(),2,0)+":"+o(t.getUTCSeconds(),2,0)+"."+o(e,3,0)+"Z"}:c},function(t,r,e){var s=e(39),l=e(150),p=e(12),h=Math.ceil,n=function(f){return function(t,r,e){var n,o,i=String(p(t)),a=i.length,u=e===qt?" ":String(e),c=s(r);return c<=a||""==u?i:((n=c-a)<(o=l.call(u,h(n/u.length))).length&&(o=o.slice(0,n)),f?i+o:o+i)}};t.exports={start:n(!1),end:n(!0)}},function(t,r,e){var o=e(40),i=e(12);t.exports="".repeat||function repeat(t){var r=String(i(this)),e="",n=o(t);if(n<0||n==Infinity)throw RangeError("Wrong number of repetitions");for(;0<n;(n>>>=1)&&(r+=r))1&n&&(e+=r);return e}},function(t,r,e){var n=e(2),o=e(6),i=e(48),a=e(13);n({target:"Date",proto:!0,forced:o(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})})},{toJSON:function toJSON(t){var r=i(this),e=a(r);return"number"!=typeof e||isFinite(e)?r.toISOString():null}})},function(t,r,e){var n=e(18),o=e(153),i=e(54)("toPrimitive"),a=Date.prototype;i in a||n(a,i,o)},function(t,r,e){var n=e(20),o=e(13);t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return o(n(this),"number"!==t)}},function(t,r,e){var n=e(21),o=Date.prototype,i="Invalid Date",a="toString",u=o[a],c=o.getTime;new Date(NaN)+""!=i&&n(o,a,function toString(){var t=c.call(this);return t==t?u.call(this):i})},function(t,r,e){e(2)({target:"Function",proto:!0},{bind:e(156)})},function(t,r,e){var i=e(60),a=e(14),u=[].slice,c={};t.exports=Function.bind||function bind(r){var e=i(this),n=u.call(arguments,1),o=function bound(){var t=n.concat(u.call(arguments));return this instanceof o?function(t,r,e){if(!(r in c)){for(var n=[],o=0;o<r;o++)n[o]="a["+o+"]";c[r]=Function("C,a","return new C("+n.join(",")+")")}return c[r](t,e)}(e,t.length,t):e.apply(r,t)};return a(e.prototype)&&(o.prototype=e.prototype),o}},function(t,r,e){var n=e(14),o=e(19),i=e(113),a=e(54)("hasInstance"),u=Function.prototype;a in u||o.f(u,a,{value:function(t){if("function"!=typeof this||!n(t))return!1;if(!n(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},function(t,r,e){var n=e(5),o=e(19).f,i=Function.prototype,a=i.toString,u=/^\s*function ([^ (]*)/;!n||"name"in i||o(i,"name",{configurable:!0,get:function(){try{return a.call(this).match(u)[1]}catch(t){return""}}})},function(t,r,e){e(2)({global:!0},{globalThis:e(3)})},function(t,r,e){var n=e(2),o=e(34),i=e(6),a=o("JSON","stringify"),u=/[\uD800-\uDFFF]/g,c=/^[\uD800-\uDBFF]$/,f=/^[\uDC00-\uDFFF]$/,s=function(t,r,e){var n=e.charAt(r-1),o=e.charAt(r+1);return c.test(t)&&!f.test(o)||f.test(t)&&!c.test(n)?"\\u"+t.charCodeAt(0).toString(16):t},l=i(function(){return'"\\udf06\\ud834"'!==a("\udf06\ud834")||'"\\udead"'!==a("\udead")});a&&n({target:"JSON",stat:!0,forced:l},{stringify:function stringify(t,r,e){var n=a.apply(null,arguments);return"string"==typeof n?n.replace(u,s):n}})},function(t,r,e){var n=e(3);e(57)(n.JSON,"JSON",!0)},function(t,r,e){var n=e(163),o=e(168);t.exports=n("Map",function(t){return function Map(){return t(this,arguments.length?arguments[0]:qt)}},o)},function(t,r,e){var d=e(2),y=e(3),m=e(44),b=e(21),x=e(164),w=e(166),S=e(138),A=e(14),E=e(6),I=e(105),O=e(57),M=e(167);t.exports=function(n,t,r){var o=-1!==n.indexOf("Map"),i=-1!==n.indexOf("Weak"),a=o?"set":"add",u=y[n],c=u&&u.prototype,f=u,e={},s=function(t){var e=c[t];b(c,t,"add"==t?function add(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(i&&!A(t))&&e.call(this,0===t?0:t)}:"get"==t?function get(t){return i&&!A(t)?qt:e.call(this,0===t?0:t)}:"has"==t?function has(t){return!(i&&!A(t))&&e.call(this,0===t?0:t)}:function set(t,r){return e.call(this,0===t?0:t,r),this})};if(m(n,"function"!=typeof u||!(i||c.forEach&&!E(function(){(new u).entries().next()}))))f=r.getConstructor(t,n,o,a),x.REQUIRED=!0;else if(m(n,!0)){var l=new f,p=l[a](i?{}:-0,1)!=l,h=E(function(){l.has(1)}),g=I(function(t){new u(t)}),v=!i&&E(function(){for(var t=new u,r=5;r--;)t[a](r,r);return!t.has(-0)});g||(((f=t(function(t,r){S(t,f,n);var e=M(new u,t,f);return r!=qt&&w(r,e[a],e,o),e})).prototype=c).constructor=f),(h||v)&&(s("delete"),s("has"),o&&s("get")),(v||p)&&s(a),i&&c.clear&&delete c.clear}return d({global:!0,forced:(e[n]=f)!=u},e),O(f,n),i||r.setStrong(f,n,o),f}},function(t,r,e){var n=e(31),o=e(14),i=e(15),a=e(19).f,u=e(30),c=e(165),f=u("meta"),s=0,l=Object.isExtensible||function(){return!0},p=function(t){a(t,f,{value:{objectID:"O"+ ++s,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,r){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,f)){if(!l(t))return"F";if(!r)return"E";p(t)}return t[f].objectID},getWeakData:function(t,r){if(!i(t,f)){if(!l(t))return!0;if(!r)return!1;p(t)}return t[f].weakData},onFreeze:function(t){return c&&h.REQUIRED&&l(t)&&!i(t,f)&&p(t),t}};n[f]=!0},function(t,r,e){var n=e(6);t.exports=!n(function(){return Object.isExtensible(Object.preventExtensions({}))})},function(t,r,e){var h=e(20),g=e(100),v=e(39),d=e(59),y=e(102),m=e(99),b=function(t,r){this.stopped=t,this.result=r};(t.exports=function(t,r,e,n,o){var i,a,u,c,f,s,l,p=d(r,e,n?2:1);if(o)i=t;else{if("function"!=typeof(a=y(t)))throw TypeError("Target is not iterable");if(g(a)){for(u=0,c=v(t.length);u<c;u++)if((f=n?p(h(l=t[u])[0],l[1]):p(t[u]))&&f instanceof b)return f;return new b(!1)}i=a.call(t)}for(s=i.next;!(l=s.call(i)).done;)if("object"==typeof(f=m(i,p,l.value,n))&&f&&f instanceof b)return f;return new b(!1)}).stop=function(t){return new b(!0,t)}},function(t,r,e){var i=e(14),a=e(115);t.exports=function(t,r,e){var n,o;return a&&"function"==typeof(n=r.constructor)&&n!==e&&i(o=n.prototype)&&o!==e.prototype&&a(t,o),t}},function(t,r,e){var f=e(19).f,s=e(49),l=e(137),p=e(59),h=e(138),g=e(166),a=e(110),u=e(130),v=e(5),d=e(164).fastKey,n=e(25),y=n.set,m=n.getterFor;t.exports={getConstructor:function(t,e,n,o){var i=t(function(t,r){h(t,i,e),y(t,{type:e,index:s(null),first:qt,last:qt,size:0}),v||(t.size=0),r!=qt&&g(r,t[o],t,n)}),u=m(e),a=function(t,r,e){var n,o,i=u(t),a=c(t,r);return a?a.value=e:(i.last=a={index:o=d(r,!0),key:r,value:e,previous:n=i.last,next:qt,removed:!1},i.first||(i.first=a),n&&(n.next=a),v?i.size++:t.size++,"F"!==o&&(i.index[o]=a)),t},c=function(t,r){var e,n=u(t),o=d(r);if("F"!==o)return n.index[o];for(e=n.first;e;e=e.next)if(e.key==r)return e};return l(i.prototype,{clear:function clear(){for(var t=u(this),r=t.index,e=t.first;e;)e.removed=!0,e.previous&&(e.previous=e.previous.next=qt),delete r[e.index],e=e.next;t.first=t.last=qt,v?t.size=0:this.size=0},"delete":function(t){var r=u(this),e=c(this,t);if(e){var n=e.next,o=e.previous;delete r.index[e.index],e.removed=!0,o&&(o.next=n),n&&(n.previous=o),r.first==e&&(r.first=n),r.last==e&&(r.last=o),v?r.size--:this.size--}return!!e},forEach:function forEach(t){for(var r,e=u(this),n=p(t,1<arguments.length?arguments[1]:qt,3);r=r?r.next:e.first;)for(n(r.value,r.key,this);r&&r.removed;)r=r.previous},has:function has(t){return!!c(this,t)}}),l(i.prototype,n?{get:function get(t){var r=c(this,t);return r&&r.value},set:function set(t,r){return a(this,0===t?0:t,r)}}:{add:function add(t){return a(this,t=0===t?0:t,t)}}),v&&f(i.prototype,"size",{get:function(){return u(this).size}}),i},setStrong:function(t,r,e){var n=r+" Iterator",o=m(r),i=m(n);a(t,r,function(t,r){y(this,{type:n,target:t,state:o(t),kind:r,last:qt})},function(){for(var t=i(this),r=t.kind,e=t.last;e&&e.removed;)e=e.previous;return t.target&&(t.last=e=e?e.next:t.state.first)?"keys"==r?{value:e.key,done:!1}:"values"==r?{value:e.value,done:!1}:{value:[e.key,e.value],done:!1}:{value:t.target=qt,done:!0}},e?"entries":"values",!e,!0),u(r)}}},function(t,r,e){var n=e(2),o=e(170),i=Math.acosh,a=Math.log,u=Math.sqrt,c=Math.LN2;n({target:"Math",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(Infinity)!=Infinity},{acosh:function acosh(t){return(t=+t)<1?NaN:94906265.62425156<t?a(t)+c:o(t-1+u(t-1)*u(t+1))}})},function(t,r){var e=Math.log;t.exports=Math.log1p||function log1p(t){return-1e-8<(t=+t)&&t<1e-8?t-t*t/2:e(1+t)}},function(t,r,e){var n=e(2),o=Math.asinh,i=Math.log,a=Math.sqrt;n({target:"Math",stat:!0,forced:!(o&&0<1/o(0))},{asinh:function asinh(t){return isFinite(t=+t)&&0!=t?t<0?-asinh(-t):i(t+a(t*t+1)):t}})},function(t,r,e){var n=e(2),o=Math.atanh,i=Math.log;n({target:"Math",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function atanh(t){return 0==(t=+t)?t:i((1+t)/(1-t))/2}})},function(t,r,e){var n=e(2),o=e(174),i=Math.abs,a=Math.pow;n({target:"Math",stat:!0},{cbrt:function cbrt(t){return o(t=+t)*a(i(t),1/3)}})},function(t,r){t.exports=Math.sign||function sign(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,r,e){var n=e(2),o=Math.floor,i=Math.log,a=Math.LOG2E;n({target:"Math",stat:!0},{clz32:function clz32(t){return(t>>>=0)?31-o(i(t+.5)*a):32}})},function(t,r,e){var n=e(2),o=e(177),i=Math.cosh,a=Math.abs,u=Math.E;n({target:"Math",stat:!0,forced:!i||i(710)===Infinity},{cosh:function cosh(t){var r=o(a(t)-1)+1;return(r+1/(r*u*u))*(u/2)}})},function(t,r){var e=Math.expm1,n=Math.exp;t.exports=!e||22025.465794806718<e(10)||e(10)<22025.465794806718||-2e-17!=e(-2e-17)?function expm1(t){return 0==(t=+t)?t:-1e-6<t&&t<1e-6?t+t*t/2:n(t)-1}:e},function(t,r,e){var n=e(2),o=e(177);n({target:"Math",stat:!0,forced:o!=Math.expm1},{expm1:o})},function(t,r,e){e(2)({target:"Math",stat:!0},{fround:e(180)})},function(t,r,e){var i=e(174),a=Math.abs,n=Math.pow,u=n(2,-52),c=n(2,-23),f=n(2,127)*(2-c),s=n(2,-126);t.exports=Math.fround||function fround(t){var r,e,n=a(t),o=i(t);return n<s?o*(n/s/c+1/u-1/u)*s*c:f<(e=(r=(1+c/u)*n)-(r-n))||e!=e?o*Infinity:o*e}},function(t,r,e){var n=e(2),o=Math.hypot,c=Math.abs,f=Math.sqrt;n({target:"Math",stat:!0,forced:!!o&&o(Infinity,NaN)!==Infinity},{hypot:function hypot(t,r){for(var e,n,o=0,i=0,a=arguments.length,u=0;i<a;)u<(e=c(arguments[i++]))?(o=o*(n=u/e)*n+1,u=e):o+=0<e?(n=e/u)*n:e;return u===Infinity?Infinity:u*f(o)}})},function(t,r,e){var n=e(2),o=e(6),i=Math.imul;n({target:"Math",stat:!0,forced:o(function(){return-5!=i(4294967295,5)||2!=i.length})},{imul:function imul(t,r){var e=65535,n=+t,o=+r,i=e&n,a=e&o;return 0|i*a+((e&n>>>16)*a+i*(e&o>>>16)<<16>>>0)}})},function(t,r,e){var n=e(2),o=Math.log,i=Math.LOG10E;n({target:"Math",stat:!0},{log10:function log10(t){return o(t)*i}})},function(t,r,e){e(2)({target:"Math",stat:!0},{log1p:e(170)})},function(t,r,e){var n=e(2),o=Math.log,i=Math.LN2;n({target:"Math",stat:!0},{log2:function log2(t){return o(t)/i}})},function(t,r,e){e(2)({target:"Math",stat:!0},{sign:e(174)})},function(t,r,e){var n=e(2),o=e(6),i=e(177),a=Math.abs,u=Math.exp,c=Math.E;n({target:"Math",stat:!0,forced:o(function(){return-2e-17!=Math.sinh(-2e-17)})},{sinh:function sinh(t){return a(t=+t)<1?(i(t)-i(-t))/2:(u(t-1)-u(-t-1))*(c/2)}})},function(t,r,e){var n=e(2),o=e(177),i=Math.exp;n({target:"Math",stat:!0},{tanh:function tanh(t){var r=o(t=+t),e=o(-t);return r==Infinity?1:e==Infinity?-1:(r-e)/(i(t)+i(-t))}})},function(t,r,e){e(57)(Math,"Math",!0)},function(t,r,e){var n=e(2),o=Math.ceil,i=Math.floor;n({target:"Math",stat:!0},{trunc:function trunc(t){return(0<t?i:o)(t)}})},function(t,r,e){var n=e(5),o=e(3),i=e(44),a=e(21),u=e(15),c=e(11),f=e(167),s=e(13),l=e(6),p=e(49),h=e(36).f,g=e(4).f,v=e(19).f,d=e(192).trim,y="Number",m=o[y],b=m.prototype,x=c(p(b))==y,w=function(t){var r,e,n,o,i,a,u,c,f=s(t,!1);if("string"==typeof f&&2<f.length)if(43===(r=(f=d(f)).charCodeAt(0))||45===r){if(88===(e=f.charCodeAt(2))||120===e)return NaN}else if(48===r){switch(f.charCodeAt(1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+f}for(a=(i=f.slice(2)).length,u=0;u<a;u++)if((c=i.charCodeAt(u))<48||o<c)return NaN;return parseInt(i,n)}return+f};if(i(y,!m(" 0o1")||!m("0b1")||m("+0x1"))){for(var S,A=function Number(t){var r=arguments.length<1?0:t,e=this;return e instanceof A&&(x?l(function(){b.valueOf.call(e)}):c(e)!=y)?f(new m(w(r)),e,A):w(r)},E=n?h(m):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),I=0;I<E.length;I++)u(m,S=E[I])&&!u(A,S)&&v(A,S,g(m,S));a(o,y,(A.prototype=b).constructor=A)}},function(t,r,e){var n=e(12),o="["+e(193)+"]",i=RegExp("^"+o+o+"*"),a=RegExp(o+o+"*$"),u=function(e){return function(t){var r=String(n(t));return 1&e&&(r=r.replace(i,"")),2&e&&(r=r.replace(a,"")),r}};t.exports={start:u(1),end:u(2),trim:u(3)}},function(t,r){t.exports="\t\n\x0B\f\r                 \u2028\u2029\ufeff"},function(t,r,e){e(2)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},function(t,r,e){e(2)({target:"Number",stat:!0},{isFinite:e(196)})},function(t,r,e){var n=e(3).isFinite;t.exports=Number.isFinite||function isFinite(t){return"number"==typeof t&&n(t)}},function(t,r,e){e(2)({target:"Number",stat:!0},{isInteger:e(198)})},function(t,r,e){var n=e(14),o=Math.floor;t.exports=function isInteger(t){return!n(t)&&isFinite(t)&&o(t)===t}},function(t,r,e){e(2)({target:"Number",stat:!0},{isNaN:function isNaN(t){return t!=t}})},function(t,r,e){var n=e(2),o=e(198),i=Math.abs;n({target:"Number",stat:!0},{isSafeInteger:function isSafeInteger(t){return o(t)&&i(t)<=9007199254740991}})},function(t,r,e){e(2)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(t,r,e){e(2)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(t,r,e){var n=e(2),o=e(204);n({target:"Number",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},function(t,r,e){var n=e(3),o=e(192).trim,i=e(193),a=n.parseFloat,u=1/a(i+"-0")!=-Infinity;t.exports=u?function parseFloat(t){var r=o(String(t)),e=a(r);return 0===e&&"-"==r.charAt(0)?-0:e}:a},function(t,r,e){var n=e(2),o=e(206);n({target:"Number",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},function(t,r,e){var n=e(3),o=e(192).trim,i=e(193),a=n.parseInt,u=/^[+-]?0[Xx]/,c=8!==a(i+"08")||22!==a(i+"0x16");t.exports=c?function parseInt(t,r){var e=o(String(t));return a(e,r>>>0||(u.test(e)?16:10))}:a},function(t,r,e){var n=e(2),h=e(40),g=e(208),v=e(150),o=e(6),i=1..toFixed,d=Math.floor,y=function(t,r,e){return 0===r?e:r%2==1?y(t,r-1,e*t):y(t*t,r/2,e)};n({target:"Number",proto:!0,forced:i&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!o(function(){i.call({})})},{toFixed:function toFixed(t){var r,e,n,o,i=g(this),a=h(t),u=[0,0,0,0,0,0],c="",f="0",s=function(t,r){for(var e=-1,n=r;++e<6;)u[e]=(n+=t*u[e])%1e7,n=d(n/1e7)},l=function(t){for(var r=6,e=0;0<=--r;)u[r]=d((e+=u[r])/t),e=e%t*1e7},p=function(){for(var t=6,r="";0<=--t;)if(""!==r||0===t||0!==u[t]){var e=String(u[t]);r=""===r?e:r+v.call("0",7-e.length)+e}return r};if(a<0||20<a)throw RangeError("Incorrect fraction digits");if(i!=i)return"NaN";if(i<=-1e21||1e21<=i)return String(i);if(i<0&&(c="-",i=-i),1e-21<i)if(e=(r=function(t){for(var r=0,e=t;4096<=e;)r+=12,e/=4096;for(;2<=e;)r+=1,e/=2;return r}(i*y(2,69,1))-69)<0?i*y(2,-r,1):i/y(2,r,1),e*=4503599627370496,0<(r=52-r)){for(s(0,e),n=a;7<=n;)s(1e7,0),n-=7;for(s(y(10,n,1),0),n=r-1;23<=n;)l(1<<23),n-=23;l(1<<n),s(1,1),l(2),f=p()}else s(0,e),s(1<<-r,0),f=p()+v.call("0",a);return f=0<a?c+((o=f.length)<=a?"0."+v.call("0",a-o)+f:f.slice(0,o-a)+"."+f.slice(o-a)):c+f}})},function(t,r,e){var n=e(11);t.exports=function(t){if("number"!=typeof t&&"Number"!=n(t))throw TypeError("Incorrect invocation");return+t}},function(t,r,e){var n=e(2),o=e(6),i=e(208),a=1..toPrecision;n({target:"Number",proto:!0,forced:o(function(){return"1"!==a.call(1,qt)})||!o(function(){a.call({})})},{toPrecision:function toPrecision(t){return t===qt?a.call(i(this)):a.call(i(this),t)}})},function(t,r,e){var n=e(2),o=e(211);n({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},function(t,r,e){var p=e(5),n=e(6),h=e(51),g=e(43),v=e(7),d=e(48),y=e(10),o=Object.assign,i=Object.defineProperty;t.exports=!o||n(function(){if(p&&1!==o({b:1},o(i({},"a",{enumerable:!0,get:function(){i(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},r={},e=Symbol(),n="abcdefghijklmnopqrst";return t[e]=7,n.split("").forEach(function(t){r[t]=t}),7!=o({},t)[e]||h(o({},r)).join("")!=n})?function assign(t,r){for(var e=d(t),n=arguments.length,o=1,i=g.f,a=v.f;o<n;)for(var u,c=y(arguments[o++]),f=i?h(c).concat(i(c)):h(c),s=f.length,l=0;l<s;)u=f[l++],p&&!a.call(c,u)||(e[u]=c[u]);return e}:o},function(t,r,e){e(2)({target:"Object",stat:!0,sham:!e(5)},{create:e(49)})},function(t,r,e){var n=e(2),o=e(5),i=e(214),a=e(48),u=e(60),c=e(19);o&&n({target:"Object",proto:!0,forced:i},{__defineGetter__:function __defineGetter__(t,r){c.f(a(this),t,{get:u(r),enumerable:!0,configurable:!0})}})},function(t,r,e){var n=e(29),o=e(3),i=e(6);t.exports=n||!i(function(){var t=Math.random();__defineSetter__.call(null,t,function(){}),delete o[t]})},function(t,r,e){var n=e(2),o=e(5);n({target:"Object",stat:!0,forced:!o,sham:!o},{defineProperties:e(50)})},function(t,r,e){var n=e(2),o=e(5);n({target:"Object",stat:!0,forced:!o,sham:!o},{defineProperty:e(19).f})},function(t,r,e){var n=e(2),o=e(5),i=e(214),a=e(48),u=e(60),c=e(19);o&&n({target:"Object",proto:!0,forced:i},{__defineSetter__:function __defineSetter__(t,r){c.f(a(this),t,{set:u(r),enumerable:!0,configurable:!0})}})},function(t,r,e){var n=e(2),o=e(219).entries;n({target:"Object",stat:!0},{entries:function entries(t){return o(t)}})},function(t,r,e){var c=e(5),f=e(51),s=e(9),l=e(7).f,n=function(u){return function(t){for(var r,e=s(t),n=f(e),o=n.length,i=0,a=[];i<o;)r=n[i++],c&&!l.call(e,r)||a.push(u?[r,e[r]]:e[r]);return a}};t.exports={entries:n(!0),values:n(!1)}},function(t,r,e){var n=e(2),o=e(165),i=e(6),a=e(14),u=e(164).onFreeze,c=Object.freeze;n({target:"Object",stat:!0,forced:i(function(){c(1)}),sham:!o},{freeze:function freeze(t){return c&&a(t)?c(u(t)):t}})},function(t,r,e){var n=e(2),o=e(166),i=e(77);n({target:"Object",stat:!0},{fromEntries:function fromEntries(t){var e={};return o(t,function(t,r){i(e,t,r)},qt,!0),e}})},function(t,r,e){var n=e(2),o=e(6),i=e(9),a=e(4).f,u=e(5),c=o(function(){a(1)});n({target:"Object",stat:!0,forced:!u||c,sham:!u},{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(t,r){return a(i(t),r)}})},function(t,r,e){var n=e(2),o=e(5),c=e(33),f=e(9),s=e(4),l=e(77);n({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(t){for(var r,e,n=f(t),o=s.f,i=c(n),a={},u=0;u<i.length;)(e=o(n,r=i[u++]))!==qt&&l(a,r,e);return a}})},function(t,r,e){var n=e(2),o=e(6),i=e(53).f;n({target:"Object",stat:!0,forced:o(function(){return!Object.getOwnPropertyNames(1)})},{getOwnPropertyNames:i})},function(t,r,e){var n=e(2),o=e(6),i=e(48),a=e(113),u=e(114);n({target:"Object",stat:!0,forced:o(function(){a(1)}),sham:!u},{getPrototypeOf:function getPrototypeOf(t){return a(i(t))}})},function(t,r,e){e(2)({target:"Object",stat:!0},{is:e(227)})},function(t,r){t.exports=Object.is||function is(t,r){return t===r?0!==t||1/t==1/r:t!=t&&r!=r}},function(t,r,e){var n=e(2),o=e(6),i=e(14),a=Object.isExtensible;n({target:"Object",stat:!0,forced:o(function(){a(1)})},{isExtensible:function isExtensible(t){return!!i(t)&&(!a||a(t))}})},function(t,r,e){var n=e(2),o=e(6),i=e(14),a=Object.isFrozen;n({target:"Object",stat:!0,forced:o(function(){a(1)})},{isFrozen:function isFrozen(t){return!i(t)||!!a&&a(t)}})},function(t,r,e){var n=e(2),o=e(6),i=e(14),a=Object.isSealed;n({target:"Object",stat:!0,forced:o(function(){a(1)})},{isSealed:function isSealed(t){return!i(t)||!!a&&a(t)}})},function(t,r,e){var n=e(2),o=e(48),i=e(51);n({target:"Object",stat:!0,forced:e(6)(function(){i(1)})},{keys:function keys(t){return i(o(t))}})},function(t,r,e){var n=e(2),o=e(5),i=e(214),a=e(48),u=e(13),c=e(113),f=e(4).f;o&&n({target:"Object",proto:!0,forced:i},{__lookupGetter__:function __lookupGetter__(t){var r,e=a(this),n=u(t,!0);do{if(r=f(e,n))return r.get}while(e=c(e))}})},function(t,r,e){var n=e(2),o=e(5),i=e(214),a=e(48),u=e(13),c=e(113),f=e(4).f;o&&n({target:"Object",proto:!0,forced:i},{__lookupSetter__:function __lookupSetter__(t){var r,e=a(this),n=u(t,!0);do{if(r=f(e,n))return r.set}while(e=c(e))}})},function(t,r,e){var n=e(2),o=e(14),i=e(164).onFreeze,a=e(165),u=e(6),c=Object.preventExtensions;n({target:"Object",stat:!0,forced:u(function(){c(1)}),sham:!a},{preventExtensions:function preventExtensions(t){return c&&o(t)?c(i(t)):t}})},function(t,r,e){var n=e(2),o=e(14),i=e(164).onFreeze,a=e(165),u=e(6),c=Object.seal;n({target:"Object",stat:!0,forced:u(function(){c(1)}),sham:!a},{seal:function seal(t){return c&&o(t)?c(i(t)):t}})},function(t,r,e){e(2)({target:"Object",stat:!0},{setPrototypeOf:e(115)})},function(t,r,e){var n=e(104),o=e(21),i=e(238);n||o(Object.prototype,"toString",i,{unsafe:!0})},function(t,r,e){var n=e(104),o=e(103);t.exports=n?{}.toString:function toString(){return"[object "+o(this)+"]"}},function(t,r,e){var n=e(2),o=e(219).values;n({target:"Object",stat:!0},{values:function values(t){return o(t)}})},function(t,r,e){var n=e(2),o=e(204);n({global:!0,forced:parseFloat!=o},{parseFloat:o})},function(t,r,e){var n=e(2),o=e(206);n({global:!0,forced:parseInt!=o},{parseInt:o})},function(t,r,e){var n,o,i,a,u=e(2),c=e(29),f=e(3),s=e(34),l=e(243),p=e(21),h=e(137),g=e(57),v=e(130),d=e(14),y=e(60),m=e(138),b=e(11),x=e(23),w=e(166),S=e(105),A=e(144),E=e(244).set,I=e(246),O=e(247),M=e(249),R=e(248),T=e(250),_=e(25),j=e(44),P=e(54),k=e(79),N=P("species"),F="Promise",U=_.get,L=_.set,C=_.getterFor(F),D=l,B=f.TypeError,q=f.document,z=f.process,W=s("fetch"),G=R.f,V=G,K="process"==b(z),$=!!(q&&q.createEvent&&f.dispatchEvent),Y="unhandledrejection",J=j(F,function(){if(!(x(D)!==String(D))){if(66===k)return!0;if(!K&&"function"!=typeof PromiseRejectionEvent)return!0}if(c&&!D.prototype["finally"])return!0;if(51<=k&&/native code/.test(D))return!1;var t=D.resolve(1),r=function(t){t(function(){},function(){})};return(t.constructor={})[N]=r,!(t.then(function(){})instanceof r)}),X=J||!S(function(t){D.all(t)["catch"](function(){})}),H=function(t){var r;return!(!d(t)||"function"!=typeof(r=t.then))&&r},Q=function(p,h,g){if(!h.notified){h.notified=!0;var v=h.reactions;I(function(){for(var t=h.value,r=1==h.state,e=0;e<v.length;){var n,o,i,a=v[e++],u=r?a.ok:a.fail,c=a.resolve,f=a.reject,s=a.domain;try{u?(r||(2===h.rejection&&et(p,h),h.rejection=1),!0===u?n=t:(s&&s.enter(),n=u(t),s&&(s.exit(),i=!0)),n===a.promise?f(B("Promise-chain cycle")):(o=H(n))?o.call(n,c,f):c(n)):f(t)}catch(l){s&&!i&&s.exit(),f(l)}}h.reactions=[],h.notified=!1,g&&!h.rejection&&tt(p,h)})}},Z=function(t,r,e){var n,o;$?((n=q.createEvent("Event")).promise=r,n.reason=e,n.initEvent(t,!1,!0),f.dispatchEvent(n)):n={promise:r,reason:e},(o=f["on"+t])?o(n):t===Y&&M("Unhandled promise rejection",e)},tt=function(e,n){E.call(f,function(){var t,r=n.value;if(rt(n)&&(t=T(function(){K?z.emit("unhandledRejection",r,e):Z(Y,e,r)}),n.rejection=K||rt(n)?2:1,t.error))throw t.value})},rt=function(t){return 1!==t.rejection&&!t.parent},et=function(t,r){E.call(f,function(){K?z.emit("rejectionHandled",t):Z("rejectionhandled",t,r.value)})},nt=function(r,e,n,o){return function(t){r(e,n,t,o)}},ot=function(t,r,e,n){r.done||(r.done=!0,n&&(r=n),r.value=e,r.state=2,Q(t,r,!0))},it=function(e,n,o,t){if(!n.done){n.done=!0,t&&(n=t);try{if(e===o)throw B("Promise can't be resolved itself");var i=H(o);i?I(function(){var t={done:!1};try{i.call(o,nt(it,e,t,n),nt(ot,e,t,n))}catch(r){ot(e,t,r,n)}}):(n.value=o,n.state=1,Q(e,n,!1))}catch(r){ot(e,{done:!1},r,n)}}};J&&(D=function Promise(t){m(this,D,F),y(t),n.call(this);var r=U(this);try{t(nt(it,this,r),nt(ot,this,r))}catch(e){ot(this,r,e)}},(n=function Promise(t){L(this,{type:F,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:qt})}).prototype=h(D.prototype,{then:function then(t,r){var e=C(this),n=G(A(this,D));return n.ok="function"!=typeof t||t,n.fail="function"==typeof r&&r,n.domain=K?z.domain:qt,e.parent=!0,e.reactions.push(n),0!=e.state&&Q(this,e,!1),n.promise},"catch":function(t){return this.then(qt,t)}}),o=function(){ +var t=new n,r=U(t);this.promise=t,this.resolve=nt(it,t,r),this.reject=nt(ot,t,r)},R.f=G=function(t){return t===D||t===i?new o:V(t)},c||"function"!=typeof l||(a=l.prototype.then,p(l.prototype,"then",function then(t,r){var e=this;return new D(function(t,r){a.call(e,t,r)}).then(t,r)},{unsafe:!0}),"function"==typeof W&&u({global:!0,enumerable:!0,forced:!0},{fetch:function fetch(t){return O(D,W.apply(f,arguments))}}))),u({global:!0,wrap:!0,forced:J},{Promise:D}),g(D,F,!1,!0),v(F),i=s(F),u({target:F,stat:!0,forced:J},{reject:function reject(t){var r=G(this);return r.reject.call(qt,t),r.promise}}),u({target:F,stat:!0,forced:c||J},{resolve:function resolve(t){return O(c&&this===i?D:this,t)}}),u({target:F,stat:!0,forced:X},{all:function all(t){var u=this,r=G(u),c=r.resolve,f=r.reject,e=T(function(){var n=y(u.resolve),o=[],i=0,a=1;w(t,function(t){var r=i++,e=!1;o.push(qt),a++,n.call(u,t).then(function(t){e||(e=!0,o[r]=t,--a||c(o))},f)}),--a||c(o)});return e.error&&f(e.value),r.promise},race:function race(t){var e=this,n=G(e),o=n.reject,r=T(function(){var r=y(e.resolve);w(t,function(t){r.call(e,t).then(n.resolve,o)})});return r.error&&o(r.value),n.promise}})},function(t,r,e){var n=e(3);t.exports=n.Promise},function(t,r,e){var n,o,i,a=e(3),u=e(6),c=e(11),f=e(59),s=e(52),l=e(17),p=e(245),h=a.location,g=a.setImmediate,v=a.clearImmediate,d=a.process,y=a.MessageChannel,m=a.Dispatch,b=0,x={},w="onreadystatechange",S=function(t){if(x.hasOwnProperty(t)){var r=x[t];delete x[t],r()}},A=function(t){return function(){S(t)}},E=function(t){S(t.data)},I=function(t){a.postMessage(t+"",h.protocol+"//"+h.host)};g&&v||(g=function setImmediate(t){for(var r=[],e=1;e<arguments.length;)r.push(arguments[e++]);return x[++b]=function(){("function"==typeof t?t:Function(t)).apply(qt,r)},n(b),b},v=function clearImmediate(t){delete x[t]},"process"==c(d)?n=function(t){d.nextTick(A(t))}:m&&m.now?n=function(t){m.now(A(t))}:y&&!p?(i=(o=new y).port2,o.port1.onmessage=E,n=f(i.postMessage,i,1)):!a.addEventListener||"function"!=typeof postMessage||a.importScripts||u(I)||"file:"===h.protocol?n=w in l("script")?function(t){s.appendChild(l("script"))[w]=function(){s.removeChild(this),S(t)}}:function(t){setTimeout(A(t),0)}:(n=I,a.addEventListener("message",E,!1))),t.exports={set:g,clear:v}},function(t,r,e){var n=e(80);t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(n)},function(t,r,e){var n,o,i,a,u,c,f,s,l=e(3),p=e(4).f,h=e(11),g=e(244).set,v=e(245),d=l.MutationObserver||l.WebKitMutationObserver,y=l.process,m=l.Promise,b="process"==h(y),x=p(l,"queueMicrotask"),w=x&&x.value;w||(n=function(){var t,r;for(b&&(t=y.domain)&&t.exit();o;){r=o.fn,o=o.next;try{r()}catch(e){throw o?a():i=qt,e}}i=qt,t&&t.enter()},a=b?function(){y.nextTick(n)}:d&&!v?(u=!0,c=document.createTextNode(""),new d(n).observe(c,{characterData:!0}),function(){c.data=u=!u}):m&&m.resolve?(f=m.resolve(qt),s=f.then,function(){s.call(f,n)}):function(){g.call(l,n)}),t.exports=w||function(t){var r={fn:t,next:qt};i&&(i.next=r),o||(o=r,a()),i=r}},function(t,r,e){var n=e(20),o=e(14),i=e(248);t.exports=function(t,r){if(n(t),o(r)&&r.constructor===t)return r;var e=i.f(t);return(0,e.resolve)(r),e.promise}},function(t,r,e){var o=e(60),n=function(t){var e,n;this.promise=new t(function(t,r){if(e!==qt||n!==qt)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=o(e),this.reject=o(n)};t.exports.f=function(t){return new n(t)}},function(t,r,e){var n=e(3);t.exports=function(t,r){var e=n.console;e&&e.error&&(1===arguments.length?e.error(t):e.error(t,r))}},function(t,r){t.exports=function(t){try{return{error:!1,value:t()}}catch(r){return{error:!0,value:r}}}},function(t,r,e){var n=e(2),f=e(60),o=e(248),i=e(250),s=e(166);n({target:"Promise",stat:!0},{allSettled:function allSettled(t){var u=this,r=o.f(u),c=r.resolve,e=r.reject,n=i(function(){var n=f(u.resolve),o=[],i=0,a=1;s(t,function(t){var r=i++,e=!1;o.push(qt),a++,n.call(u,t).then(function(t){e||(e=!0,o[r]={status:"fulfilled",value:t},--a||c(o))},function(t){e||(e=!0,o[r]={status:"rejected",reason:t},--a||c(o))})}),--a||c(o)});return n.error&&e(n.value),r.promise}})},function(t,r,e){var n=e(2),o=e(29),i=e(243),a=e(6),u=e(34),c=e(144),f=e(247),s=e(21);n({target:"Promise",proto:!0,real:!0,forced:!!i&&a(function(){i.prototype["finally"].call({then:function(){}},function(){})})},{"finally":function(r){var e=c(this,u("Promise")),t="function"==typeof r;return this.then(t?function(t){return f(e,r()).then(function(){return t})}:r,t?function(t){return f(e,r()).then(function(){throw t})}:r)}}),o||"function"!=typeof i||i.prototype["finally"]||s(i.prototype,"finally",u("Promise").prototype["finally"])},function(t,r,e){var n=e(2),o=e(34),i=e(60),a=e(20),u=e(6),c=o("Reflect","apply"),f=Function.apply;n({target:"Reflect",stat:!0,forced:!u(function(){c(function(){})})},{apply:function apply(t,r,e){return i(t),a(e),c?c(t,r,e):f.call(t,r,e)}})},function(t,r,e){var n=e(2),o=e(34),u=e(60),c=e(20),f=e(14),s=e(49),l=e(156),i=e(6),p=o("Reflect","construct"),h=i(function(){function F(){}return!(p(function(){},[],F)instanceof F)}),g=!i(function(){p(function(){})}),a=h||g;n({target:"Reflect",stat:!0,forced:a,sham:a},{construct:function construct(t,r){u(t),c(r);var e=arguments.length<3?t:u(arguments[2]);if(g&&!h)return p(t,r,e);if(t==e){switch(r.length){case 0:return new t;case 1:return new t(r[0]);case 2:return new t(r[0],r[1]);case 3:return new t(r[0],r[1],r[2]);case 4:return new t(r[0],r[1],r[2],r[3])}var n=[null];return n.push.apply(n,r),new(l.apply(t,n))}var o=e.prototype,i=s(f(o)?o:Object.prototype),a=Function.apply.call(t,i,r);return f(a)?a:i}})},function(t,r,e){var n=e(2),o=e(5),i=e(20),a=e(13),u=e(19);n({target:"Reflect",stat:!0,forced:e(6)(function(){Reflect.defineProperty(u.f({},1,{value:1}),1,{value:2})}),sham:!o},{defineProperty:function defineProperty(t,r,e){i(t);var n=a(r,!0);i(e);try{return u.f(t,n,e),!0}catch(o){return!1}}})},function(t,r,e){var n=e(2),o=e(20),i=e(4).f;n({target:"Reflect",stat:!0},{deleteProperty:function deleteProperty(t,r){var e=i(o(t),r);return!(e&&!e.configurable)&&delete t[r]}})},function(t,r,e){var n=e(2),i=e(14),a=e(20),u=e(15),c=e(4),f=e(113);n({target:"Reflect",stat:!0},{get:function get(t,r){var e,n,o=arguments.length<3?t:arguments[2];return a(t)===o?t[r]:(e=c.f(t,r))?u(e,"value")?e.value:e.get===qt?qt:e.get.call(o):i(n=f(t))?get(n,r,o):void 0}})},function(t,r,e){var n=e(2),o=e(5),i=e(20),a=e(4);n({target:"Reflect",stat:!0,sham:!o},{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(t,r){return a.f(i(t),r)}})},function(t,r,e){var n=e(2),o=e(20),i=e(113);n({target:"Reflect",stat:!0,sham:!e(114)},{getPrototypeOf:function getPrototypeOf(t){return i(o(t))}})},function(t,r,e){e(2)({target:"Reflect",stat:!0},{has:function has(t,r){return r in t}})},function(t,r,e){var n=e(2),o=e(20),i=Object.isExtensible;n({target:"Reflect",stat:!0},{isExtensible:function isExtensible(t){return o(t),!i||i(t)}})},function(t,r,e){e(2)({target:"Reflect",stat:!0},{ownKeys:e(33)})},function(t,r,e){var n=e(2),o=e(34),i=e(20);n({target:"Reflect",stat:!0,sham:!e(165)},{preventExtensions:function preventExtensions(t){i(t);try{var r=o("Object","preventExtensions");return r&&r(t),!0}catch(e){return!1}}})},function(t,r,e){var n=e(2),u=e(20),c=e(14),f=e(15),o=e(6),s=e(19),l=e(4),p=e(113),h=e(8);n({target:"Reflect",stat:!0,forced:o(function(){var t=s.f({},"a",{configurable:!0});return!1!==Reflect.set(p(t),"a",1,t)})},{set:function set(t,r,e){var n,o,i=arguments.length<4?t:arguments[3],a=l.f(u(t),r);if(!a){if(c(o=p(t)))return set(o,r,e,i);a=h(0)}if(f(a,"value")){if(!1===a.writable||!c(i))return!1;if(n=l.f(i,r)){if(n.get||n.set||!1===n.writable)return!1;n.value=e,s.f(i,r,n)}else s.f(i,r,h(0,e));return!0}return a.set!==qt&&(a.set.call(i,e),!0)}})},function(t,r,e){var n=e(2),o=e(20),i=e(116),a=e(115);a&&n({target:"Reflect",stat:!0},{setPrototypeOf:function setPrototypeOf(t,r){o(t),i(r);try{return a(t,r),!0}catch(e){return!1}}})},function(t,r,e){var n=e(5),o=e(3),i=e(44),u=e(167),a=e(19).f,c=e(36).f,f=e(267),s=e(268),l=e(269),p=e(21),h=e(6),g=e(25).set,v=e(130),d=e(54)("match"),y=o.RegExp,m=y.prototype,b=/a/g,x=/a/g,w=new y(b)!==b,S=l.UNSUPPORTED_Y;if(n&&i("RegExp",!w||S||h(function(){return x[d]=!1,y(b)!=b||y(x)==x||"/a/i"!=y(b,"i")}))){for(var A=function RegExp(t,r){var e,n=this instanceof A,o=f(t),i=r===qt;if(!n&&o&&t.constructor===A&&i)return t;w?o&&!i&&(t=t.source):t instanceof A&&(i&&(r=s.call(t)),t=t.source),S&&(e=!!r&&-1<r.indexOf("y"))&&(r=r.replace(/y/g,""));var a=u(w?new y(t,r):y(t,r),n?this:m,A);return S&&e&&g(a,{sticky:e}),a},E=function(r){r in A||a(A,r,{configurable:!0,get:function(){return y[r]},set:function(t){y[r]=t}})},I=c(y),O=0;O<I.length;)E(I[O++]);(m.constructor=A).prototype=m,p(o,"RegExp",A)}v("RegExp")},function(t,r,e){var n=e(14),o=e(11),i=e(54)("match");t.exports=function(t){var r;return n(t)&&((r=t[i])!==qt?!!r:"RegExp"==o(t))}},function(t,r,e){var n=e(20);t.exports=function(){var t=n(this),r="";return t.global&&(r+="g"),t.ignoreCase&&(r+="i"),t.multiline&&(r+="m"),t.dotAll&&(r+="s"),t.unicode&&(r+="u"),t.sticky&&(r+="y"),r}},function(t,r,e){var n=e(6);function RE(t,r){return RegExp(t,r)}r.UNSUPPORTED_Y=n(function(){var t=RE("a","y");return t.lastIndex=2,null!=t.exec("abcd")}),r.BROKEN_CARET=n(function(){var t=RE("^r","gy");return t.lastIndex=2,null!=t.exec("str")})},function(t,r,e){var n=e(2),o=e(271);n({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},function(t,r,e){var n,o,l=e(268),i=e(269),p=RegExp.prototype.exec,h=String.prototype.replace,a=p,g=(o=/b*/g,p.call(n=/a/,"a"),p.call(o,"a"),0!==n.lastIndex||0!==o.lastIndex),v=i.UNSUPPORTED_Y||i.BROKEN_CARET,d=/()??/.exec("")[1]!==qt;(g||d||v)&&(a=function exec(t){var r,e,n,o,i=this,a=v&&i.sticky,u=l.call(i),c=i.source,f=0,s=t;return a&&(-1===(u=u.replace("y","")).indexOf("g")&&(u+="g"),s=String(t).slice(i.lastIndex),0<i.lastIndex&&(!i.multiline||i.multiline&&"\n"!==t[i.lastIndex-1])&&(c="(?: "+c+")",s=" "+s,f++),e=new RegExp("^(?:"+c+")",u)),d&&(e=new RegExp("^"+c+"$(?!\\s)",u)),g&&(r=i.lastIndex),n=p.call(a?e:i,s),a?n?(n.input=n.input.slice(f),n[0]=n[0].slice(f),n.index=i.lastIndex,i.lastIndex+=n[0].length):i.lastIndex=0:g&&n&&(i.lastIndex=i.global?n.index+n[0].length:r),d&&n&&1<n.length&&h.call(n[0],e,function(){for(o=1;o<arguments.length-2;o++)arguments[o]===qt&&(n[o]=qt)}),n}),t.exports=a},function(t,r,e){var n=e(5),o=e(19),i=e(268),a=e(269).UNSUPPORTED_Y;n&&("g"!=/./g.flags||a)&&o.f(RegExp.prototype,"flags",{configurable:!0,get:i})},function(t,r,e){var n=e(5),o=e(269).UNSUPPORTED_Y,i=e(19).f,a=e(25).get,u=RegExp.prototype;n&&o&&i(RegExp.prototype,"sticky",{configurable:!0,get:function(){if(this===u)return qt;if(this instanceof RegExp)return!!a(this).sticky;throw TypeError("Incompatible receiver, RegExp required")}})},function(t,r,e){e(270);var n,o,i=e(2),a=e(14),u=(n=!1,(o=/[ac]/).exec=function(){return n=!0,/./.exec.apply(this,arguments)},!0===o.test("abc")&&n),c=/./.test;i({target:"RegExp",proto:!0,forced:!u},{test:function(t){if("function"!=typeof this.exec)return c.call(this,t);var r=this.exec(t);if(null!==r&&!a(r))throw new Error("RegExp exec method returned something other than an Object or null");return!!r}})},function(t,r,e){var n=e(21),o=e(20),i=e(6),a=e(268),u="toString",c=RegExp.prototype,f=c[u];!i(function(){return"/a/b"!=f.call({source:"a",flags:"b"})})&&f.name==u||n(RegExp.prototype,u,function toString(){var t=o(this),r=String(t.source),e=t.flags;return"/"+r+"/"+String(e===qt&&t instanceof RegExp&&!("flags"in c)?a.call(t):e)},{unsafe:!0})},function(t,r,e){var n=e(163),o=e(168);t.exports=n("Set",function(t){return function Set(){return t(this,arguments.length?arguments[0]:qt)}},o)},function(t,r,e){var n=e(2),o=e(278).codeAt;n({target:"String",proto:!0},{codePointAt:function codePointAt(t){return o(this,t)}})},function(t,r,e){var c=e(40),f=e(12),n=function(u){return function(t,r){var e,n,o=String(f(t)),i=c(r),a=o.length;return i<0||a<=i?u?"":qt:(e=o.charCodeAt(i))<55296||56319<e||i+1===a||(n=o.charCodeAt(i+1))<56320||57343<n?u?o.charAt(i):e:u?o.slice(i,i+2):n-56320+(e-55296<<10)+65536}};t.exports={codeAt:n(!1),charAt:n(!0)}},function(t,r,e){var n,o=e(2),i=e(4).f,a=e(39),u=e(280),c=e(12),f=e(281),s=e(29),l="".endsWith,p=Math.min,h=f("endsWith");o({target:"String",proto:!0,forced:!!(s||h||(!(n=i(String.prototype,"endsWith"))||n.writable))&&!h},{endsWith:function endsWith(t){var r=String(c(this));u(t);var e=1<arguments.length?arguments[1]:qt,n=a(r.length),o=e===qt?n:p(a(e),n),i=String(t);return l?l.call(r,i,o):r.slice(o-i.length,o)===i}})},function(t,r,e){var n=e(267);t.exports=function(t){if(n(t))throw TypeError("The method doesn't accept regular expressions");return t}},function(t,r,e){var o=e(54)("match");t.exports=function(t){var r=/./;try{"/./"[t](r)}catch(e){try{return r[o]=!1,"/./"[t](r)}catch(n){}}return!1}},function(t,r,e){var n=e(2),i=e(41),a=String.fromCharCode,o=String.fromCodePoint;n({target:"String",stat:!0,forced:!!o&&1!=o.length},{fromCodePoint:function fromCodePoint(t){for(var r,e=[],n=arguments.length,o=0;o<n;){if(r=+arguments[o++],i(r,1114111)!==r)throw RangeError(r+" is not a valid code point");e.push(r<65536?a(r):a(55296+((r-=65536)>>10),r%1024+56320))}return e.join("")}})},function(t,r,e){var n=e(2),o=e(280),i=e(12);n({target:"String",proto:!0,forced:!e(281)("includes")},{includes:function includes(t){return!!~String(i(this)).indexOf(o(t),1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var o=e(278).charAt,n=e(25),i=e(110),a="String Iterator",u=n.set,c=n.getterFor(a);i(String,"String",function(t){u(this,{type:a,string:String(t),index:0})},function next(){var t,r=c(this),e=r.string,n=r.index;return e.length<=n?{value:qt,done:!0}:(t=o(e,n),r.index+=t.length,{value:t,done:!1})})},function(t,r,e){var n=e(286),l=e(20),p=e(39),o=e(12),h=e(287),g=e(288);n("match",1,function(n,f,s){return[function match(t){var r=o(this),e=t==qt?qt:t[n];return e!==qt?e.call(t,r):new RegExp(t)[n](String(r))},function(t){var r=s(f,t,this);if(r.done)return r.value;var e=l(t),n=String(this);if(!e.global)return g(e,n);for(var o,i=e.unicode,a=[],u=e.lastIndex=0;null!==(o=g(e,n));){var c=String(o[0]);""===(a[u]=c)&&(e.lastIndex=h(n,p(e.lastIndex),i)),u++}return 0===u?null:a}]})},function(t,r,e){e(270);var s=e(21),l=e(6),p=e(54),h=e(271),g=e(18),v=p("species"),d=!l(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}),y="$0"==="a".replace(/./,"$0"),n=p("replace"),m=!!/./[n]&&""===/./[n]("a","$0"),b=!l(function(){var t=/(?:)/,r=t.exec;t.exec=function(){return r.apply(this,arguments)};var e="ab".split(t);return 2!==e.length||"a"!==e[0]||"b"!==e[1]});t.exports=function(e,t,r,n){var o=p(e),i=!l(function(){var t={};return t[o]=function(){return 7},7!=""[e](t)}),a=i&&!l(function(){var t=!1,r=/a/;return"split"===e&&((r={constructor:{}}).constructor[v]=function(){return r},r.flags="",r[o]=/./[o]),r.exec=function(){return t=!0,null},r[o](""),!t});if(!i||!a||"replace"===e&&(!d||!y||m)||"split"===e&&!b){var u=/./[o],c=r(o,""[e],function(t,r,e,n,o){return r.exec===h?i&&!o?{done:!0,value:u.call(r,e,n)}:{done:!0,value:t.call(e,r,n)}:{done:!1}},{REPLACE_KEEPS_$0:y,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:m}),f=c[1];s(String.prototype,e,c[0]),s(RegExp.prototype,o,2==t?function(t,r){return f.call(t,this,r)}:function(t){return f.call(t,this)})}n&&g(RegExp.prototype[o],"sham",!0)}},function(t,r,e){var n=e(278).charAt;t.exports=function(t,r,e){return r+(e?n(t,r).length:1)}},function(t,r,e){var o=e(11),i=e(271);t.exports=function(t,r){var e=t.exec;if("function"==typeof e){var n=e.call(t,r);if("object"!=typeof n)throw TypeError("RegExp exec method returned something other than an Object or null");return n}if("RegExp"!==o(t))throw TypeError("RegExp#exec called on incompatible receiver");return i.call(t,r)}},function(t,r,e){var n=e(2),o=e(111),i=e(12),f=e(39),a=e(60),s=e(20),u=e(11),c=e(267),l=e(268),p=e(18),h=e(6),g=e(54),v=e(144),d=e(287),y=e(25),m=e(29),b=g("matchAll"),x="RegExp String",w=x+" Iterator",S=y.set,A=y.getterFor(w),E=RegExp.prototype,I=E.exec,O="".matchAll,M=!!O&&!h(function(){"a".matchAll(/./)}),R=o(function RegExpStringIterator(t,r,e,n){S(this,{type:w,regexp:t,string:r,global:e,unicode:n,done:!1})},x,function next(){var t=A(this);if(t.done)return{value:qt,done:!0};var r=t.regexp,e=t.string,n=function(t,r){var e,n=t.exec;if("function"!=typeof n)return I.call(t,r);if("object"!=typeof(e=n.call(t,r)))throw TypeError("Incorrect exec result");return e}(r,e);return null===n?{value:qt,done:t.done=!0}:t.global?(""==String(n[0])&&(r.lastIndex=d(e,f(r.lastIndex),t.unicode)),{value:n,done:!1}):{value:n,done:!(t.done=!0)}}),T=function(t){var r,e,n,o,i,a,u=s(this),c=String(t);return r=v(u,RegExp),(e=u.flags)===qt&&u instanceof RegExp&&!("flags"in E)&&(e=l.call(u)),n=e===qt?"":String(e),o=new r(r===RegExp?u.source:u,n),i=!!~n.indexOf("g"),a=!!~n.indexOf("u"),o.lastIndex=f(u.lastIndex),new R(o,c,i,a)};n({target:"String",proto:!0,forced:M},{matchAll:function matchAll(t){var r,e,n,o=i(this);if(null!=t){if(c(t)&&!~String(i("flags"in E?t.flags:l.call(t))).indexOf("g"))throw TypeError("`.matchAll` does not allow non-global regexes");if(M)return O.apply(o,arguments);if((e=t[b])===qt&&m&&"RegExp"==u(t)&&(e=T),null!=e)return a(e).call(t,o)}else if(M)return O.apply(o,arguments);return r=String(o),n=new RegExp(t,"g"),m?T.call(n,r):n[b](r)}}),m||b in E||p(E,b,T)},function(t,r,e){var n=e(2),o=e(149).end;n({target:"String",proto:!0,forced:e(291)},{padEnd:function padEnd(t){return o(this,t,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var n=e(80);t.exports=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(n)},function(t,r,e){var n=e(2),o=e(149).start;n({target:"String",proto:!0,forced:e(291)},{padStart:function padStart(t){return o(this,t,1<arguments.length?arguments[1]:qt)}})},function(t,r,e){var n=e(2),a=e(9),u=e(39);n({target:"String",stat:!0},{raw:function raw(t){for(var r=a(t.raw),e=u(r.length),n=arguments.length,o=[],i=0;i<e;)o.push(String(r[i++])),i<n&&o.push(String(arguments[i]));return o.join("")}})},function(t,r,e){e(2)({target:"String",proto:!0},{repeat:e(150)})},function(t,r,e){var n=e(286),O=e(20),p=e(48),M=e(39),R=e(40),i=e(12),T=e(287),_=e(288),j=Math.max,P=Math.min,h=Math.floor,g=/\$([$&'`]|\d\d?|<[^>]*>)/g,v=/\$([$&'`]|\d\d?)/g;n("replace",2,function(o,w,S,t){var A=t.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,E=t.REPLACE_KEEPS_$0,I=A?"$":"$0";return[function replace(t,r){var e=i(this),n=t==qt?qt:t[o];return n!==qt?n.call(t,e,r):w.call(String(e),t,r)},function(t,r){if(!A&&E||"string"==typeof r&&-1===r.indexOf(I)){var e=S(w,t,this,r);if(e.done)return e.value}var n=O(t),o=String(this),i="function"==typeof r;i||(r=String(r));var a=n.global;if(a){var u=n.unicode;n.lastIndex=0}for(var c=[];;){var f=_(n,o);if(null===f)break;if(c.push(f),!a)break;""===String(f[0])&&(n.lastIndex=T(o,M(n.lastIndex),u))}for(var s,l="",p=0,h=0;h<c.length;h++){f=c[h];for(var g=String(f[0]),v=j(P(R(f.index),o.length),0),d=[],y=1;y<f.length;y++)d.push((s=f[y])===qt?s:String(s));var m=f.groups;if(i){var b=[g].concat(d,v,o);m!==qt&&b.push(m);var x=String(r.apply(qt,b))}else x=getSubstitution(g,o,v,d,m,r);p<=v&&(l+=o.slice(p,v)+x,p=v+g.length)}return l+o.slice(p)}];function getSubstitution(i,a,u,c,f,t){var s=u+i.length,l=c.length,r=v;return f!==qt&&(f=p(f),r=g),w.call(t,r,function(t,r){var e;switch(r.charAt(0)){case"$":return"$";case"&":return i;case"`":return a.slice(0,u);case"'":return a.slice(s);case"<":e=f[r.slice(1,-1)];break;default:var n=+r;if(0==n)return t;if(l<n){var o=h(n/10);return 0===o?t:o<=l?c[o-1]===qt?r.charAt(1):c[o-1]+r.charAt(1):t}e=c[n-1]}return e===qt?"":e})}})},function(t,r,e){var n=e(286),c=e(20),o=e(12),f=e(227),s=e(288);n("search",1,function(n,a,u){return[function search(t){var r=o(this),e=t==qt?qt:t[n];return e!==qt?e.call(t,r):new RegExp(t)[n](String(r))},function(t){var r=u(a,t,this);if(r.done)return r.value;var e=c(t),n=String(this),o=e.lastIndex;f(o,0)||(e.lastIndex=0);var i=s(e,n);return f(e.lastIndex,o)||(e.lastIndex=o),null===i?-1:i.index}]})},function(t,r,e){var n=e(286),s=e(267),m=e(20),l=e(12),b=e(144),x=e(287),w=e(39),S=e(288),p=e(271),o=e(6),h=[].push,A=Math.min,E=4294967295,I=!o(function(){return!RegExp(E,"y")});n("split",2,function(o,v,d){var y;return y="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||1<".".split(/()()/).length||"".split(/.?/).length?function(t,r){var e=String(l(this)),n=r===qt?E:r>>>0;if(0==n)return[];if(t===qt)return[e];if(!s(t))return v.call(e,t,n);for(var o,i,a,u=[],c=0,f=new RegExp(t.source,(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":"")+"g");(o=p.call(f,e))&&!(c<(i=f.lastIndex)&&(u.push(e.slice(c,o.index)),1<o.length&&o.index<e.length&&h.apply(u,o.slice(1)),a=o[0].length,c=i,n<=u.length));)f.lastIndex===o.index&&f.lastIndex++;return c===e.length?!a&&f.test("")||u.push(""):u.push(e.slice(c)),n<u.length?u.slice(0,n):u}:"0".split(qt,0).length?function(t,r){return t===qt&&0===r?[]:v.call(this,t,r)}:v,[function split(t,r){var e=l(this),n=t==qt?qt:t[o];return n!==qt?n.call(t,e,r):y.call(String(e),t,r)},function(t,r){var e=d(y,t,this,r,y!==v);if(e.done)return e.value;var n=m(t),o=String(this),i=b(n,RegExp),a=n.unicode,u=new i(I?n:"^(?:"+n.source+")",(n.ignoreCase?"i":"")+(n.multiline?"m":"")+(n.unicode?"u":"")+(I?"y":"g")),c=r===qt?E:r>>>0;if(0==c)return[];if(0===o.length)return null===S(u,o)?[o]:[];for(var f=0,s=0,l=[];s<o.length;){u.lastIndex=I?s:0;var p,h=S(u,I?o:o.slice(s));if(null===h||(p=A(w(u.lastIndex+(I?0:s)),o.length))===f)s=x(o,s,a);else{if(l.push(o.slice(f,s)),l.length===c)return l;for(var g=1;g<=h.length-1;g++)if(l.push(h[g]),l.length===c)return l;s=f=p}}return l.push(o.slice(f)),l}]},!I)},function(t,r,e){var n,o=e(2),i=e(4).f,a=e(39),u=e(280),c=e(12),f=e(281),s=e(29),l="".startsWith,p=Math.min,h=f("startsWith");o({target:"String",proto:!0,forced:!!(s||h||(!(n=i(String.prototype,"startsWith"))||n.writable))&&!h},{startsWith:function startsWith(t){var r=String(c(this));u(t);var e=a(p(1<arguments.length?arguments[1]:qt,r.length)),n=String(t);return l?l.call(r,n,e):r.slice(e,e+n.length)===n}})},function(t,r,e){var n=e(2),o=e(192).trim;n({target:"String",proto:!0,forced:e(300)("trim")},{trim:function trim(){return o(this)}})},function(t,r,e){var n=e(6),o=e(193);t.exports=function(t){return n(function(){return!!o[t]()||"​…᠎"!="​…᠎"[t]()||o[t].name!==t})}},function(t,r,e){var n=e(2),o=e(192).end,i=e(300)("trimEnd"),a=i?function a(){return o(this)}:"".trimEnd;n({target:"String",proto:!0,forced:i},{trimEnd:a,trimRight:a})},function(t,r,e){var n=e(2),o=e(192).start,i=e(300)("trimStart"),a=i?function a(){return o(this)}:"".trimStart;n({target:"String",proto:!0,forced:i},{trimStart:a,trimLeft:a})},function(t,r,e){var n=e(2),o=e(304);n({target:"String",proto:!0,forced:e(305)("anchor")},{anchor:function anchor(t){return o(this,"a","name",t)}})},function(t,r,e){var a=e(12),u=/"/g;t.exports=function(t,r,e,n){var o=String(a(t)),i="<"+r;return""!==e&&(i+=" "+e+'="'+String(n).replace(u,""")+'"'),i+">"+o+"</"+r+">"}},function(t,r,e){var n=e(6);t.exports=function(r){return n(function(){var t=""[r]('"');return t!==t.toLowerCase()||3<t.split('"').length})}},function(t,r,e){var n=e(2),o=e(304);n({target:"String",proto:!0,forced:e(305)("big")},{big:function big(){return o(this,"big","","")}})},function(t,r,e){var n=e(2),o=e(304);n({target:"String",proto:!0,forced:e(305)("blink")},{blink:function blink(){return o(this,"blink","","")}})},function(t,r,e){var n=e(2),o=e(304);n({target:"String",proto:!0,forced:e(305)("bold")},{bold:function bold(){return o(this,"b","","")}})},function(t,r,e){var n=e(2),o=e(304);n({target:"String",proto:!0,forced:e(305)("fixed")},{fixed:function fixed(){return o(this,"tt","","")}})},function(t,r,e){var n=e(2),o=e(304);n({target:"String",proto:!0,forced:e(305)("fontcolor")},{fontcolor:function fontcolor(t){return o(this,"font","color",t)}})},function(t,r,e){var n=e(2),o=e(304);n({target:"String",proto:!0,forced:e(305)("fontsize")},{fontsize:function fontsize(t){return o(this,"font","size",t)}})},function(t,r,e){var n=e(2),o=e(304);n({target:"String",proto:!0,forced:e(305)("italics")},{italics:function italics(){return o(this,"i","","")}})},function(t,r,e){var n=e(2),o=e(304);n({target:"String",proto:!0,forced:e(305)("link")},{link:function link(t){return o(this,"a","href",t)}})},function(t,r,e){var n=e(2),o=e(304);n({target:"String",proto:!0,forced:e(305)("small")},{small:function small(){return o(this,"small","","")}})},function(t,r,e){var n=e(2),o=e(304);n({target:"String",proto:!0,forced:e(305)("strike")},{strike:function strike(){return o(this,"strike","","")}})},function(t,r,e){var n=e(2),o=e(304);n({target:"String",proto:!0,forced:e(305)("sub")},{sub:function sub(){return o(this,"sub","","")}})},function(t,r,e){var n=e(2),o=e(304);n({target:"String",proto:!0,forced:e(305)("sup")},{sup:function sup(){return o(this,"sup","","")}})},function(t,r,e){e(319)("Float32",function(n){return function Float32Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){var c=e(2),f=e(3),n=e(5),g=e(320),o=e(142),i=e(135),v=e(138),a=e(8),d=e(18),y=e(39),m=e(139),b=e(321),u=e(13),s=e(15),l=e(103),x=e(14),w=e(49),S=e(115),A=e(36).f,E=e(323),I=e(58).forEach,O=e(130),p=e(19),h=e(4),M=e(25),R=e(167),T=M.get,_=M.set,j=p.f,P=h.f,k=Math.round,N=f.RangeError,F=i.ArrayBuffer,U=i.DataView,L=o.NATIVE_ARRAY_BUFFER_VIEWS,C=o.TYPED_ARRAY_TAG,D=o.TypedArray,B=o.TypedArrayPrototype,q=o.aTypedArrayConstructor,z=o.isTypedArray,W="BYTES_PER_ELEMENT",G="Wrong length",V=function(t,r){for(var e=0,n=r.length,o=new(q(t))(n);e<n;)o[e]=r[e++];return o},K=function(t,r){j(t,r,{get:function(){return T(this)[r]}})},$=function(t){var r;return t instanceof F||"ArrayBuffer"==(r=l(t))||"SharedArrayBuffer"==r},Y=function(t,r){return z(t)&&"symbol"!=typeof r&&r in t&&String(+r)==String(r)},J=function getOwnPropertyDescriptor(t,r){return Y(t,r=u(r,!0))?a(2,t[r]):P(t,r)},X=function defineProperty(t,r,e){return!(Y(t,r=u(r,!0))&&x(e)&&s(e,"value"))||s(e,"get")||s(e,"set")||e.configurable||s(e,"writable")&&!e.writable||s(e,"enumerable")&&!e.enumerable?j(t,r,e):(t[r]=e.value,t)};n?(L||(h.f=J,p.f=X,K(B,"buffer"),K(B,"byteOffset"),K(B,"byteLength"),K(B,"length")),c({target:"Object",stat:!0,forced:!L},{getOwnPropertyDescriptor:J,defineProperty:X}),t.exports=function(t,r,i){var s=t.match(/\d+$/)[0]/8,l=t+(i?"Clamped":"")+"Array",e="get"+t,a="set"+t,o=f[l],p=o,n=p&&p.prototype,u={},h=function(t,o){j(t,o,{get:function(){return t=o,(r=T(this)).view[e](t*s+r.byteOffset,!0);var t,r},set:function(t){return r=o,e=t,n=T(this),i&&(e=(e=k(e))<0?0:255<e?255:255&e),void n.view[a](r*s+n.byteOffset,e,!0);var r,e,n},enumerable:!0})};L?g&&(p=r(function(t,r,e,n){return v(t,p,l),R(x(r)?$(r)?n!==qt?new o(r,b(e,s),n):e!==qt?new o(r,b(e,s)):new o(r):z(r)?V(p,r):E.call(p,r):new o(m(r)),t,p)}),S&&S(p,D),I(A(o),function(t){t in p||d(p,t,o[t])}),p.prototype=n):(p=r(function(t,r,e,n){v(t,p,l);var o,i,a,u=0,c=0;if(x(r)){if(!$(r))return z(r)?V(p,r):E.call(p,r);o=r,c=b(e,s);var f=r.byteLength;if(n===qt){if(f%s)throw N(G);if((i=f-c)<0)throw N(G)}else if(f<(i=y(n)*s)+c)throw N(G);a=i/s}else a=m(r),o=new F(i=a*s);for(_(t,{buffer:o,byteOffset:c,byteLength:i,length:a,view:new U(o)});u<a;)h(t,u++)}),S&&S(p,D),n=p.prototype=w(B)),n.constructor!==p&&d(n,"constructor",p),C&&d(n,C,l),c({global:!0,forced:(u[l]=p)!=o,sham:!L},u),W in p||d(p,W,s),W in n||d(n,W,s),O(l)}):t.exports=function(){}},function(t,r,e){var n=e(3),o=e(6),i=e(105),a=e(142).NATIVE_ARRAY_BUFFER_VIEWS,u=n.ArrayBuffer,c=n.Int8Array;t.exports=!a||!o(function(){c(1)})||!o(function(){new c(-1)})||!i(function(t){new c,new c(null),new c(1.5),new c(t)},!0)||o(function(){return 1!==new c(new u(2),1,qt).length})},function(t,r,e){var n=e(322);t.exports=function(t,r){var e=n(t);if(e%r)throw RangeError("Wrong offset");return e}},function(t,r,e){var n=e(40);t.exports=function(t){var r=n(t);if(r<0)throw RangeError("The argument can't be less than 0");return r}},function(t,r,e){var p=e(48),h=e(39),g=e(102),v=e(100),d=e(59),y=e(142).aTypedArrayConstructor;t.exports=function from(t){var r,e,n,o,i,a,u=p(t),c=arguments.length,f=1<c?arguments[1]:qt,s=f!==qt,l=g(u);if(l!=qt&&!v(l))for(a=(i=l.call(u)).next,u=[];!(o=a.call(i)).done;)u.push(o.value);for(s&&2<c&&(f=d(f,arguments[2],2)),e=h(u.length),n=new(y(this))(e),r=0;r<e;r++)n[r]=s?f(u[r],r):u[r];return n}},function(t,r,e){e(319)("Float64",function(n){return function Float64Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){e(319)("Int8",function(n){return function Int8Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){e(319)("Int16",function(n){return function Int16Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){e(319)("Int32",function(n){return function Int32Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){e(319)("Uint8",function(n){return function Uint8Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){e(319)("Uint8",function(n){return function Uint8ClampedArray(t,r,e){return n(this,t,r,e)}},!0)},function(t,r,e){e(319)("Uint16",function(n){return function Uint16Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){e(319)("Uint32",function(n){return function Uint32Array(t,r,e){return n(this,t,r,e)}})},function(t,r,e){var n=e(142),o=e(82),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("copyWithin",function copyWithin(t,r){return o.call(i(this),t,r,2<arguments.length?arguments[2]:qt)})},function(t,r,e){var n=e(142),o=e(58).every,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("every",function every(t){return o(i(this),t,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(142),o=e(88),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("fill",function fill(t){return o.apply(i(this),arguments)})},function(t,r,e){var n=e(142),a=e(58).filter,u=e(144),c=n.aTypedArray,f=n.aTypedArrayConstructor;(0,n.exportTypedArrayMethod)("filter",function filter(t){for(var r=a(c(this),t,1<arguments.length?arguments[1]:qt),e=u(this,this.constructor),n=0,o=r.length,i=new(f(e))(o);n<o;)i[n]=r[n++];return i})},function(t,r,e){var n=e(142),o=e(58).find,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("find",function find(t){return o(i(this),t,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(142),o=e(58).findIndex,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("findIndex",function findIndex(t){return o(i(this),t,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(142),o=e(58).forEach,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("forEach",function forEach(t){o(i(this),t,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(320);(0,e(142).exportTypedArrayStaticMethod)("from",e(323),n)},function(t,r,e){var n=e(142),o=e(38).includes,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("includes",function includes(t){return o(i(this),t,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(142),o=e(38).indexOf,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("indexOf",function indexOf(t){return o(i(this),t,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(3),o=e(142),i=e(109),a=e(54)("iterator"),u=n.Uint8Array,c=i.values,f=i.keys,s=i.entries,l=o.aTypedArray,p=o.exportTypedArrayMethod,h=u&&u.prototype[a],g=!!h&&("values"==h.name||h.name==qt),v=function values(){return c.call(l(this))};p("entries",function entries(){return s.call(l(this))}),p("keys",function keys(){return f.call(l(this))}),p("values",v,!g),p(a,v,!g)},function(t,r,e){var n=e(142),o=n.aTypedArray,i=[].join;(0,n.exportTypedArrayMethod)("join",function join(t){return i.apply(o(this),arguments)})},function(t,r,e){var n=e(142),o=e(119),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("lastIndexOf",function lastIndexOf(t){return o.apply(i(this),arguments)})},function(t,r,e){var n=e(142),o=e(58).map,i=e(144),a=n.aTypedArray,u=n.aTypedArrayConstructor;(0,n.exportTypedArrayMethod)("map",function map(t){return o(a(this),t,1<arguments.length?arguments[1]:qt,function(t,r){return new(u(i(t,t.constructor)))(r)})})},function(t,r,e){var n=e(142),o=e(320), +i=n.aTypedArrayConstructor;(0,n.exportTypedArrayStaticMethod)("of",function of(){for(var t=0,r=arguments.length,e=new(i(this))(r);t<r;)e[t]=arguments[t++];return e},o)},function(t,r,e){var n=e(142),o=e(123).left,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduce",function reduce(t){return o(i(this),t,arguments.length,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(142),o=e(123).right,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduceRight",function reduceRight(t){return o(i(this),t,arguments.length,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(142),o=n.aTypedArray,i=Math.floor;(0,n.exportTypedArrayMethod)("reverse",function reverse(){for(var t,r=o(this).length,e=i(r/2),n=0;n<e;)t=this[n],this[n++]=this[--r],this[r]=t;return this})},function(t,r,e){var n=e(142),a=e(39),u=e(321),c=e(48),o=e(6),f=n.aTypedArray;(0,n.exportTypedArrayMethod)("set",function set(t){f(this);var r=u(1<arguments.length?arguments[1]:qt,1),e=this.length,n=c(t),o=a(n.length),i=0;if(e<o+r)throw RangeError("Wrong length");for(;i<o;)this[r+i]=n[i++]},o(function(){new Int8Array(1).set({})}))},function(t,r,e){var n=e(142),u=e(144),o=e(6),c=n.aTypedArray,f=n.aTypedArrayConstructor,s=[].slice;(0,n.exportTypedArrayMethod)("slice",function slice(t,r){for(var e=s.call(c(this),t,r),n=u(this,this.constructor),o=0,i=e.length,a=new(f(n))(i);o<i;)a[o]=e[o++];return a},o(function(){new Int8Array(1).slice()}))},function(t,r,e){var n=e(142),o=e(58).some,i=n.aTypedArray;(0,n.exportTypedArrayMethod)("some",function some(t){return o(i(this),t,1<arguments.length?arguments[1]:qt)})},function(t,r,e){var n=e(142),o=n.aTypedArray,i=[].sort;(0,n.exportTypedArrayMethod)("sort",function sort(t){return i.call(o(this),t)})},function(t,r,e){var n=e(142),i=e(39),a=e(41),u=e(144),c=n.aTypedArray;(0,n.exportTypedArrayMethod)("subarray",function subarray(t,r){var e=c(this),n=e.length,o=a(t,n);return new(u(e,e.constructor))(e.buffer,e.byteOffset+o*e.BYTES_PER_ELEMENT,i((r===qt?n:a(r,n))-o))})},function(t,r,e){var n=e(3),o=e(142),i=e(6),a=n.Int8Array,u=o.aTypedArray,c=o.exportTypedArrayMethod,f=[].toLocaleString,s=[].slice,l=!!a&&i(function(){f.call(new a(1))});c("toLocaleString",function toLocaleString(){return f.apply(l?s.call(u(this)):u(this),arguments)},i(function(){return[1,2].toLocaleString()!=new a([1,2]).toLocaleString()})||!i(function(){a.prototype.toLocaleString.call([1,2])}))},function(t,r,e){var n=e(142).exportTypedArrayMethod,o=e(6),i=e(3).Uint8Array,a=i&&i.prototype||{},u=[].toString,c=[].join;o(function(){u.call({})})&&(u=function toString(){return c.call(this)}),n("toString",u,a.toString!=u)},function(t,r,e){var n,o=e(3),i=e(137),a=e(164),u=e(163),c=e(358),f=e(14),s=e(25).enforce,l=e(26),p=!o.ActiveXObject&&"ActiveXObject"in o,h=Object.isExtensible,g=function(t){return function WeakMap(){return t(this,arguments.length?arguments[0]:qt)}},v=t.exports=u("WeakMap",g,c);if(l&&p){n=c.getConstructor(g,"WeakMap",!0),a.REQUIRED=!0;var d=v.prototype,y=d["delete"],m=d.has,b=d.get,x=d.set;i(d,{"delete":function(t){if(!f(t)||h(t))return y.call(this,t);var r=s(this);return r.frozen||(r.frozen=new n),y.call(this,t)||r.frozen["delete"](t)},has:function has(t){if(!f(t)||h(t))return m.call(this,t);var r=s(this);return r.frozen||(r.frozen=new n),m.call(this,t)||r.frozen.has(t)},get:function get(t){if(!f(t)||h(t))return b.call(this,t);var r=s(this);return r.frozen||(r.frozen=new n),m.call(this,t)?b.call(this,t):r.frozen.get(t)},set:function set(t,r){if(f(t)&&!h(t)){var e=s(this);e.frozen||(e.frozen=new n),m.call(this,t)?x.call(this,t,r):e.frozen.set(t,r)}else x.call(this,t,r);return this}})}},function(t,r,e){var c=e(137),f=e(164).getWeakData,s=e(20),l=e(14),p=e(138),h=e(166),n=e(58),g=e(15),o=e(25),v=o.set,d=o.getterFor,i=n.find,a=n.findIndex,y=0,m=function(t){return t.frozen||(t.frozen=new u)},u=function(){this.entries=[]},b=function(t,r){return i(t.entries,function(t){return t[0]===r})};u.prototype={get:function(t){var r=b(this,t);if(r)return r[1]},has:function(t){return!!b(this,t)},set:function(t,r){var e=b(this,t);e?e[1]=r:this.entries.push([t,r])},"delete":function(r){var t=a(this.entries,function(t){return t[0]===r});return~t&&this.entries.splice(t,1),!!~t}},t.exports={getConstructor:function(t,e,n,o){var i=t(function(t,r){p(t,i,e),v(t,{type:e,id:y++,frozen:qt}),r!=qt&&h(r,t[o],t,n)}),a=d(e),u=function(t,r,e){var n=a(t),o=f(s(r),!0);return!0===o?m(n).set(r,e):o[n.id]=e,t};return c(i.prototype,{"delete":function(t){var r=a(this);if(!l(t))return!1;var e=f(t);return!0===e?m(r)["delete"](t):e&&g(e,r.id)&&delete e[r.id]},has:function has(t){var r=a(this);if(!l(t))return!1;var e=f(t);return!0===e?m(r).has(t):e&&g(e,r.id)}}),c(i.prototype,n?{get:function get(t){var r=a(this);if(l(t)){var e=f(t);return!0===e?m(r).get(t):e?e[r.id]:qt}},set:function set(t,r){return u(this,t,r)}}:{add:function add(t){return u(this,t,!0)}}),i}}},function(t,r,e){e(163)("WeakSet",function(t){return function WeakSet(){return t(this,arguments.length?arguments[0]:qt)}},e(358))},function(t,r,e){var n=e(2),o=e(5),i=e(113),a=e(115),u=e(49),c=e(19),f=e(8),s=e(166),l=e(18),p=e(25),h=p.set,g=p.getterFor("AggregateError"),v=function AggregateError(t,r){var e=this;if(!(e instanceof v))return new v(t,r);a&&(e=a(new Error(r),i(e)));var n=[];return s(t,n.push,n),o?h(e,{errors:n,type:"AggregateError"}):e.errors=n,r!==qt&&l(e,"message",String(r)),e};v.prototype=u(Error.prototype,{constructor:f(5,v),message:f(5,""),name:f(5,"AggregateError")}),o&&c.f(v.prototype,"errors",{get:function(){return g(this).errors},configurable:!0}),n({global:!0},{AggregateError:v})},function(t,r,e){var n=e(2),i=e(47),a=Object.isFrozen,o=function(t,r){if(!a||!i(t)||!a(t))return!1;for(var e,n=0,o=t.length;n<o;)if(!("string"==typeof(e=t[n++])||r&&void 0===e))return!1;return 0!==o};n({target:"Array",stat:!0},{isTemplateObject:function isTemplateObject(t){if(!o(t,!0))return!1;var r=t.raw;return!(r.length!==t.length||!o(r,!1))}})},function(t,r,e){var n=e(5),o=e(83),i=e(48),a=e(39),u=e(19).f;!n||"lastIndex"in[]||(u(Array.prototype,"lastIndex",{configurable:!0,get:function lastIndex(){var t=i(this),r=a(t.length);return 0==r?0:r-1}}),o("lastIndex"))},function(t,r,e){var n=e(5),o=e(83),i=e(48),a=e(39),u=e(19).f;!n||"lastItem"in[]||(u(Array.prototype,"lastItem",{configurable:!0,get:function lastItem(){var t=i(this),r=a(t.length);return 0==r?qt:t[r-1]},set:function lastItem(t){var r=i(this),e=a(r.length);return r[0==e?0:e-1]=t}}),o("lastItem"))},function(t,r,e){var n=e(2),o=e(138),i=e(18),a=e(15),u=e(54),c=e(365),f=e(29),s=u("toStringTag"),l=function AsyncIterator(){o(this,l)};a(l.prototype=c,s)||i(c,s,"AsyncIterator"),a(c,"constructor")&&c.constructor!==Object||i(c,"constructor",l),n({global:!0,forced:f},{AsyncIterator:l})},function(t,r,e){var n,o,i=e(3),a=e(24),u=e(113),c=e(15),f=e(18),s=e(54),l=e(29),p="USE_FUNCTION_CONSTRUCTOR",h=s("asyncIterator"),g=i.AsyncIterator,v=a.AsyncIteratorPrototype;if(!l)if(v)n=v;else if("function"==typeof g)n=g.prototype;else if(a[p]||i[p])try{o=u(u(u(Function("return async function*(){}()")()))),u(o)===Object.prototype&&(n=o)}catch(d){}c(n=n||{},h)||f(n,h,function(){return this}),t.exports=n},function(t,r,e){var n=e(2),o=e(20),i=e(367)(function(t,r){var e=this;return r.resolve(o(e.next.call(e.iterator,t))).then(function(t){return o(t).done?{done:e.done=!0,value:qt}:{done:!1,value:[e.index++,t.value]}})});n({target:"AsyncIterator",proto:!0,real:!0},{asIndexedPairs:function asIndexedPairs(){return new i({iterator:o(this),index:0})}})},function(t,r,e){var o=e(35),i=e(60),a=e(20),u=e(49),c=e(18),f=e(137),n=e(54),s=e(25),l=e(34)("Promise"),p=s.set,h=s.get,g=n("toStringTag"),v=function(t){var r=h(this).iterator,e=r["return"];return e===qt?l.resolve({done:!0,value:t}):a(e.call(r,t))},d=function(t){var r=h(this).iterator,e=r["throw"];return e===qt?l.reject(t):e.call(r,t)};t.exports=function(n,t){var r=function AsyncIterator(t){t.next=i(t.iterator.next),t.done=!1,p(this,t)};return r.prototype=f(u(o.AsyncIterator.prototype),{next:function next(t){var r=h(this);if(r.done)return l.resolve({done:!0,value:qt});try{return l.resolve(a(n.call(r,t,l)))}catch(e){return l.reject(e)}},"return":v,"throw":d}),t||c(r.prototype,g,"Generator"),r}},function(t,r,e){var n=e(2),u=e(20),o=e(322),i=e(367)(function(r,i){var a=this;return new i(function(e,n){var o=function(){try{i.resolve(u(a.next.call(a.iterator,a.remaining?qt:r))).then(function(t){try{u(t).done?e({done:a.done=!0,value:qt}):a.remaining?(a.remaining--,o()):e({done:!1,value:t.value})}catch(r){n(r)}},n)}catch(t){n(t)}};o()})});n({target:"AsyncIterator",proto:!0,real:!0},{drop:function drop(t){return new i({iterator:u(this),remaining:o(t)})}})},function(t,r,e){var n=e(2),o=e(370).every;n({target:"AsyncIterator",proto:!0,real:!0},{every:function every(t){return o(this,t)}})},function(t,r,e){var n=e(60),p=e(20),h=e(34)("Promise"),g=[].push,o=function(t){var c=0==t,f=1==t,s=2==t,l=3==t;return function(r,a){p(r);var e=n(r.next),u=c?[]:qt;return c||n(a),new h(function(n,o){var i=function(){try{h.resolve(p(e.call(r))).then(function(t){try{if(p(t).done)n(c?u:!l&&(s||qt));else{var r=t.value;c?(g.call(u,r),i()):h.resolve(a(r)).then(function(t){f?i():s?t?i():n(!1):t?n(l||r):i()},o)}}catch(e){o(e)}},o)}catch(t){o(t)}};i()})}};t.exports={toArray:o(0),forEach:o(1),every:o(2),some:o(3),find:o(4)}},function(t,r,e){var n=e(2),o=e(60),f=e(20),i=e(367)(function(r,a){var u=this,c=u.filterer;return new a(function(n,o){var i=function(){try{a.resolve(f(u.next.call(u.iterator,r))).then(function(t){try{if(f(t).done)n({done:u.done=!0,value:qt});else{var r=t.value;a.resolve(c(r)).then(function(t){t?n({done:!1,value:r}):i()},o)}}catch(e){o(e)}},o)}catch(t){o(t)}};i()})});n({target:"AsyncIterator",proto:!0,real:!0},{filter:function filter(t){return new i({iterator:f(this),filterer:o(t)})}})},function(t,r,e){var n=e(2),o=e(370).find;n({target:"AsyncIterator",proto:!0,real:!0},{find:function find(t){return o(this,t)}})},function(t,r,e){var n=e(2),l=e(60),p=e(20),o=e(367),h=e(374),i=o(function(r,a){var u,c,f=this,s=f.mapper;return new a(function(e,n){var o=function(){try{a.resolve(p(f.next.call(f.iterator,r))).then(function(t){try{p(t).done?e({done:f.done=!0,value:qt}):a.resolve(s(t.value)).then(function(t){try{if((c=h(t))!==qt)return f.innerIterator=u=p(c.call(t)),f.innerNext=l(u.next),i();n(TypeError(".flatMap callback should return an iterable object"))}catch(r){n(r)}},n)}catch(r){n(r)}},n)}catch(t){n(t)}},i=function(){if(u=f.innerIterator)try{a.resolve(p(f.innerNext.call(u))).then(function(t){try{p(t).done?(f.innerIterator=f.innerNext=null,o()):e({done:!1,value:t.value})}catch(r){n(r)}},n)}catch(t){n(t)}else o()};i()})});n({target:"AsyncIterator",proto:!0,real:!0},{flatMap:function flatMap(t){return new i({iterator:p(this),mapper:l(t),innerIterator:null,innerNext:null})}})},function(t,r,e){var n=e(102),o=e(54)("asyncIterator");t.exports=function(t){var r=t[o];return r===qt?n(t):r}},function(t,r,e){var n=e(2),o=e(370).forEach;n({target:"AsyncIterator",proto:!0,real:!0},{forEach:function forEach(t){return o(this,t)}})},function(t,r,e){var n=e(2),o=e(35),i=e(60),a=e(20),u=e(48),c=e(367),f=e(374),s=o.AsyncIterator,l=c(function(t){return a(this.next.call(this.iterator,t))},!0);n({target:"AsyncIterator",stat:!0},{from:function from(t){var r,e=u(t),n=f(e);if(null!=n){if((r=i(n).call(e))instanceof s)return r}else r=e;return new l({iterator:r})}})},function(t,r,e){var n=e(2),o=e(60),i=e(20),a=e(367)(function(t,r){var e=this,n=e.mapper;return r.resolve(i(e.next.call(e.iterator,t))).then(function(t){return i(t).done?{done:e.done=!0,value:qt}:r.resolve(n(t.value)).then(function(t){return{done:!1,value:t}})})});n({target:"AsyncIterator",proto:!0,real:!0},{map:function map(t){return new a({iterator:i(this),mapper:o(t)})}})},function(t,r,e){var n=e(2),o=e(60),f=e(20),s=e(34)("Promise");n({target:"AsyncIterator",proto:!0,real:!0},{reduce:function reduce(a){var r=f(this),e=o(r.next),u=arguments.length<2,c=u?qt:arguments[1];return o(a),new s(function(n,o){var i=function(){try{s.resolve(f(e.call(r))).then(function(t){try{if(f(t).done)u?o(TypeError("Reduce of empty iterator with no initial value")):n(c);else{var r=t.value;u?(u=!1,c=r,i()):s.resolve(a(c,r)).then(function(t){c=t,i()},o)}}catch(e){o(e)}},o)}catch(t){o(t)}};i()})}})},function(t,r,e){var n=e(2),o=e(370).some;n({target:"AsyncIterator",proto:!0,real:!0},{some:function some(t){return o(this,t)}})},function(t,r,e){var n=e(2),o=e(20),i=e(322),a=e(367)(function(t){return this.remaining--?this.next.call(this.iterator,t):{done:this.done=!0,value:qt}});n({target:"AsyncIterator",proto:!0,real:!0},{take:function take(t){return new a({iterator:o(this),remaining:i(t)})}})},function(t,r,e){var n=e(2),o=e(370).toArray;n({target:"AsyncIterator",proto:!0,real:!0},{toArray:function toArray(){return o(this)}})},function(t,r,e){var n=e(2),o=e(383),i=e(34),a=e(49),u=function(){var t=i("Object","freeze");return t?t(a(null)):a(null)};n({global:!0},{compositeKey:function compositeKey(){return o.apply(Object,arguments).get("object",u)}})},function(t,r,e){var i=e(162),a=e(357),n=e(49),o=e(14),u=function(){this.object=null,this.symbol=null,this.primitives=null,this.objectsByIndex=n(null)};u.prototype.get=function(t,r){return this[t]||(this[t]=r())},u.prototype.next=function(t,r,e){var n=e?this.objectsByIndex[t]||(this.objectsByIndex[t]=new a):this.primitives||(this.primitives=new i),o=n.get(r);return o||n.set(r,o=new u),o};var c=new u;t.exports=function(){var t,r,e=c,n=arguments.length;for(t=0;t<n;t++)o(r=arguments[t])&&(e=e.next(t,r,!0));if(this===Object&&e===c)throw TypeError("Composite keys must contain a non-primitive component");for(t=0;t<n;t++)o(r=arguments[t])||(e=e.next(t,r,!1));return e}},function(t,r,e){var n=e(2),o=e(383),i=e(34);n({global:!0},{compositeSymbol:function compositeSymbol(){return 1===arguments.length&&"string"==typeof arguments[0]?i("Symbol")["for"](arguments[0]):o.apply(null,arguments).get("symbol",i("Symbol"))}})},function(t,r,e){e(159)},function(t,r,e){var n=e(2),o=e(3),i=e(138),a=e(18),u=e(6),c=e(15),f=e(54),s=e(112).IteratorPrototype,l=e(29),p=f("iterator"),h=f("toStringTag"),g=o.Iterator,v=l||"function"!=typeof g||g.prototype!==s||!u(function(){g({})}),d=function Iterator(){i(this,d)};l&&a(s={},p,function(){return this}),c(s,h)||a(s,h,"Iterator"),!v&&c(s,"constructor")&&s.constructor!==Object||a(s,"constructor",d),d.prototype=s,n({global:!0,forced:v},{Iterator:d})},function(t,r,e){var n=e(2),o=e(20),i=e(388)(function(t){var r=o(this.next.call(this.iterator,t));if(!(this.done=!!r.done))return[this.index++,r.value]});n({target:"Iterator",proto:!0,real:!0},{asIndexedPairs:function asIndexedPairs(){return new i({iterator:o(this),index:0})}})},function(t,r,e){var n=e(35),o=e(60),i=e(20),a=e(49),u=e(18),c=e(137),f=e(54),s=e(25),l=s.set,p=s.get,h=f("toStringTag"),g=function(t){var r=p(this).iterator,e=r["return"];return e===qt?{done:!0,value:t}:i(e.call(r,t))},v=function(t){var r=p(this).iterator,e=r["throw"];if(e===qt)throw t;return e.call(r,t)};t.exports=function(e,t){var r=function Iterator(t){t.next=o(t.iterator.next),t.done=!1,l(this,t)};return r.prototype=c(a(n.Iterator.prototype),{next:function next(){var t=p(this),r=t.done?qt:e.apply(t,arguments);return{done:t.done,value:r}},"return":g,"throw":v}),t||u(r.prototype,h,"Generator"),r}},function(t,r,e){var n=e(2),o=e(20),i=e(322),a=e(388)(function(t){for(var r,e=this.iterator,n=this.next;this.remaining;)if(this.remaining--,r=o(n.call(e)),this.done=!!r.done)return;if(r=o(n.call(e,t)),!(this.done=!!r.done))return r.value});n({target:"Iterator",proto:!0,real:!0},{drop:function drop(t){return new a({iterator:o(this),remaining:i(t)})}})},function(t,r,e){var n=e(2),o=e(166),i=e(60),a=e(20);n({target:"Iterator",proto:!0,real:!0},{every:function every(r){return a(this),i(r),!o(this,function(t){if(!r(t))return o.stop()},qt,!1,!0).stopped}})},function(t,r,e){var n=e(2),o=e(60),a=e(20),i=e(388),u=e(99),c=i(function(t){for(var r,e,n=this.iterator,o=this.filterer,i=this.next;;){if(r=a(i.call(n,t)),this.done=!!r.done)return;if(u(n,o,e=r.value))return e}});n({target:"Iterator",proto:!0,real:!0},{filter:function filter(t){return new c({iterator:a(this),filterer:o(t)})}})},function(t,r,e){var n=e(2),o=e(166),i=e(60),a=e(20);n({target:"Iterator",proto:!0,real:!0},{find:function find(r){return a(this),i(r),o(this,function(t){if(r(t))return o.stop(t)},qt,!1,!0).result}})},function(t,r,e){var n=e(2),a=e(60),u=e(20),c=e(102),o=e(388),f=e(99),i=o(function(t){for(var r,e,n,o,i=this.iterator;;){if(o=this.innerIterator){if(!(r=u(this.innerNext.call(o))).done)return r.value;this.innerIterator=this.innerNext=null}if(r=u(this.next.call(i,t)),this.done=!!r.done)return;if(e=f(i,this.mapper,r.value),(n=c(e))===qt)throw TypeError(".flatMap callback should return an iterable object");this.innerIterator=o=u(n.call(e)),this.innerNext=a(o.next)}});n({target:"Iterator",proto:!0,real:!0},{flatMap:function flatMap(t){return new i({iterator:u(this),mapper:a(t),innerIterator:null,innerNext:null})}})},function(t,r,e){var n=e(2),o=e(166),i=e(20);n({target:"Iterator",proto:!0,real:!0},{forEach:function forEach(t){o(i(this),t,qt,!1,!0)}})},function(t,r,e){var n=e(2),o=e(35),i=e(60),a=e(20),u=e(48),c=e(388),f=e(102),s=o.Iterator,l=c(function(t){var r=a(this.next.call(this.iterator,t));if(!(this.done=!!r.done))return r.value},!0);n({target:"Iterator",stat:!0},{from:function from(t){var r,e=u(t),n=f(e);if(null!=n){if((r=i(n).call(e))instanceof s)return r}else r=e;return new l({iterator:r})}})},function(t,r,e){var n=e(2),o=e(60),i=e(20),a=e(388),u=e(99),c=a(function(t){var r=this.iterator,e=i(this.next.call(r,t));if(!(this.done=!!e.done))return u(r,this.mapper,e.value)});n({target:"Iterator",proto:!0,real:!0},{map:function map(t){return new c({iterator:i(this),mapper:o(t)})}})},function(t,r,e){var n=e(2),o=e(166),i=e(60),a=e(20);n({target:"Iterator",proto:!0,real:!0},{reduce:function reduce(r){a(this),i(r);var e=arguments.length<2,n=e?qt:arguments[1];if(o(this,function(t){n=e?(e=!1,t):r(n,t)},qt,!1,!0),e)throw TypeError("Reduce of empty iterator with no initial value");return n}})},function(t,r,e){var n=e(2),o=e(166),i=e(60),a=e(20);n({target:"Iterator",proto:!0,real:!0},{some:function some(r){return a(this),i(r),o(this,function(t){if(r(t))return o.stop()},qt,!1,!0).stopped}})},function(t,r,e){var n=e(2),o=e(20),i=e(322),a=e(388)(function(t){if(this.remaining--){var r=o(this.next.call(this.iterator,t));return(this.done=!!r.done)?void 0:r.value}this.done=!0});n({target:"Iterator",proto:!0,real:!0},{take:function take(t){return new a({iterator:o(this),remaining:i(t)})}})},function(t,r,e){var n=e(2),o=e(166),i=e(20),a=[].push;n({target:"Iterator",proto:!0,real:!0},{toArray:function toArray(){var t=[];return o(i(this),a,t,!1,!0),t}})},function(t,r,e){var n=e(2),o=e(29),i=e(402);n({target:"Map",proto:!0,real:!0,forced:o},{deleteAll:function deleteAll(){return i.apply(this,arguments)}})},function(t,r,e){var a=e(20),u=e(60);t.exports=function(){for(var t,r=a(this),e=u(r["delete"]),n=!0,o=0,i=arguments.length;o<i;o++)t=e.call(r,arguments[o]),n=n&&t;return!!n}},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(59),u=e(404),c=e(166);n({target:"Map",proto:!0,real:!0,forced:o},{every:function every(t){var e=i(this),r=u(e),n=a(t,1<arguments.length?arguments[1]:qt,3);return!c(r,function(t,r){if(!n(r,t,e))return c.stop()},qt,!0,!0).stopped}})},function(t,r,e){var n=e(29),o=e(405);t.exports=n?o:function(t){return Map.prototype.entries.call(t)}},function(t,r,e){var n=e(20),o=e(102);t.exports=function(t){var r=o(t);if("function"!=typeof r)throw TypeError(String(t)+" is not iterable");return n(r.call(t))}},function(t,r,e){var n=e(2),o=e(29),a=e(34),u=e(20),c=e(60),f=e(59),s=e(144),l=e(404),p=e(166);n({target:"Map",proto:!0,real:!0,forced:o},{filter:function filter(t){var e=u(this),r=l(e),n=f(t,1<arguments.length?arguments[1]:qt,3),o=new(s(e,a("Map"))),i=c(o.set);return p(r,function(t,r){n(r,t,e)&&i.call(o,t,r)},qt,!0,!0),o}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(59),u=e(404),c=e(166);n({target:"Map",proto:!0,real:!0,forced:o},{find:function find(t){var e=i(this),r=u(e),n=a(t,1<arguments.length?arguments[1]:qt,3);return c(r,function(t,r){if(n(r,t,e))return c.stop(r)},qt,!0,!0).result}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(59),u=e(404),c=e(166);n({target:"Map",proto:!0,real:!0,forced:o},{findKey:function findKey(t){var e=i(this),r=u(e),n=a(t,1<arguments.length?arguments[1]:qt,3);return c(r,function(t,r){if(n(r,t,e))return c.stop(t)},qt,!0,!0).result}})},function(t,r,e){e(2)({target:"Map",stat:!0},{from:e(410)})},function(t,r,e){var u=e(60),c=e(59),f=e(166);t.exports=function from(t){var r,e,n,o,i=arguments.length,a=1<i?arguments[1]:qt;return u(this),(r=a!==qt)&&u(a),t==qt?new this:(e=[],r?(n=0,o=c(a,2<i?arguments[2]:qt,2),f(t,function(t){e.push(o(t,n++))})):f(t,e.push,e),new this(e))}},function(t,r,e){var n=e(2),u=e(166),c=e(60);n({target:"Map",stat:!0},{groupBy:function groupBy(t,e){var n=new this;c(e);var o=c(n.has),i=c(n.get),a=c(n.set);return u(t,function(t){var r=e(t);o.call(n,r)?i.call(n,r).push(t):a.call(n,r,[t])}),n}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(404),u=e(413),c=e(166);n({target:"Map",proto:!0,real:!0,forced:o},{includes:function includes(e){return c(a(i(this)),function(t,r){if(u(r,e))return c.stop()},qt,!0,!0).stopped}})},function(t,r){t.exports=function(t,r){return t===r||t!=t&&r!=r}},function(t,r,e){var n=e(2),o=e(166),i=e(60);n({target:"Map",stat:!0},{keyBy:function keyBy(t,r){var e=new this;i(r);var n=i(e.set);return o(t,function(t){n.call(e,r(t),t)}),e}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(404),u=e(166);n({target:"Map",proto:!0,real:!0,forced:o},{keyOf:function keyOf(e){return u(a(i(this)),function(t,r){if(r===e)return u.stop(t)},qt,!0,!0).result}})},function(t,r,e){var n=e(2),o=e(29),a=e(34),u=e(20),c=e(60),f=e(59),s=e(144),l=e(404),p=e(166);n({target:"Map",proto:!0,real:!0,forced:o},{mapKeys:function mapKeys(t){var e=u(this),r=l(e),n=f(t,1<arguments.length?arguments[1]:qt,3),o=new(s(e,a("Map"))),i=c(o.set);return p(r,function(t,r){i.call(o,n(r,t,e),r)},qt,!0,!0),o}})},function(t,r,e){var n=e(2),o=e(29),a=e(34),u=e(20),c=e(60),f=e(59),s=e(144),l=e(404),p=e(166);n({target:"Map",proto:!0,real:!0,forced:o},{mapValues:function mapValues(t){var e=u(this),r=l(e),n=f(t,1<arguments.length?arguments[1]:qt,3),o=new(s(e,a("Map"))),i=c(o.set);return p(r,function(t,r){i.call(o,t,n(r,t,e))},qt,!0,!0),o}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(60),u=e(166);n({target:"Map",proto:!0,real:!0,forced:o},{merge:function merge(t){for(var r=i(this),e=a(r.set),n=0;n<arguments.length;)u(arguments[n++],e,r,!0);return r}})},function(t,r,e){e(2)({target:"Map",stat:!0},{of:e(420)})},function(t,r,e){t.exports=function of(){for(var t=arguments.length,r=new Array(t);t--;)r[t]=arguments[t];return new this(r)}},function(t,r,e){var n=e(2),o=e(29),a=e(20),u=e(60),c=e(404),f=e(166);n({target:"Map",proto:!0,real:!0,forced:o},{reduce:function reduce(e){var n=a(this),t=c(n),o=arguments.length<2,i=o?qt:arguments[1];if(u(e),f(t,function(t,r){i=o?(o=!1,r):e(i,r,t,n)},qt,!0,!0),o)throw TypeError("Reduce of empty map with no initial value");return i}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(59),u=e(404),c=e(166);n({target:"Map",proto:!0,real:!0,forced:o},{some:function some(t){var e=i(this),r=u(e),n=a(t,1<arguments.length?arguments[1]:qt,3);return c(r,function(t,r){if(n(r,t,e))return c.stop()},qt,!0,!0).stopped}})},function(t,r,e){var n=e(2),o=e(29),a=e(20),u=e(60);n({target:"Map",proto:!0,real:!0,forced:o},{update:function update(t,r){var e=a(this),n=arguments.length;u(r);var o=e.has(t);if(!o&&n<3)throw TypeError("Updating absent value");var i=o?e.get(t):u(2<n?arguments[2]:qt)(t,e);return e.set(t,r(i,t,e)),e}})},function(t,r,e){e(2)({target:"Map",proto:!0,real:!0,forced:e(29)},{updateOrInsert:e(425)})},function(t,r,e){var i=e(20);t.exports=function upsert(t,r){var e,n=i(this),o=2<arguments.length?arguments[2]:qt;if("function"!=typeof r&&"function"!=typeof o)throw TypeError("At least one callback required");return n.has(t)?(e=n.get(t),"function"==typeof r&&(e=r(e),n.set(t,e))):"function"==typeof o&&(e=o(),n.set(t,e)),e}},function(t,r,e){e(2)({target:"Map",proto:!0,real:!0,forced:e(29)},{upsert:e(425)})},function(t,r,e){var n=e(2),o=Math.min,i=Math.max;n({target:"Math",stat:!0},{clamp:function clamp(t,r,e){return o(e,i(r,t))}})},function(t,r,e){e(2)({target:"Math",stat:!0},{DEG_PER_RAD:Math.PI/180})},function(t,r,e){var n=e(2),o=180/Math.PI;n({target:"Math",stat:!0},{degrees:function degrees(t){return t*o}})},function(t,r,e){var n=e(2),i=e(431),a=e(180);n({target:"Math",stat:!0},{fscale:function fscale(t,r,e,n,o){return a(i(t,r,e,n,o))}})},function(t,r){t.exports=Math.scale||function scale(t,r,e,n,o){return 0===arguments.length||t!=t||r!=r||e!=e||n!=n||o!=o?NaN:t===Infinity||t===-Infinity?t:(t-r)*(o-n)/(e-r)+n}},function(t,r,e){e(2)({target:"Math",stat:!0},{iaddh:function iaddh(t,r,e,n){var o=t>>>0,i=e>>>0;return(r>>>0)+(n>>>0)+((o&i|(o|i)&~(o+i>>>0))>>>31)|0}})},function(t,r,e){e(2)({target:"Math",stat:!0},{imulh:function imulh(t,r){var e=+t,n=+r,o=65535&e,i=65535&n,a=e>>16,u=n>>16,c=(a*i>>>0)+(o*i>>>16);return a*u+(c>>16)+((o*u>>>0)+(65535&c)>>16)}})},function(t,r,e){e(2)({target:"Math",stat:!0},{isubh:function isubh(t,r,e,n){var o=t>>>0,i=e>>>0;return(r>>>0)-(n>>>0)-((~o&i|~(o^i)&o-i>>>0)>>>31)|0}})},function(t,r,e){e(2)({target:"Math",stat:!0},{RAD_PER_DEG:180/Math.PI})},function(t,r,e){var n=e(2),o=Math.PI/180;n({target:"Math",stat:!0},{radians:function radians(t){return t*o}})},function(t,r,e){e(2)({target:"Math",stat:!0},{scale:e(431)})},function(t,r,e){var n=e(2),o=e(20),i=e(196),a=e(111),u=e(25),c="Seeded Random",f=c+" Generator",s=u.set,l=u.getterFor(f),p=a(function SeededRandomGenerator(t){s(this,{type:f,seed:t%2147483647})},c,function next(){var t=l(this);return{value:(1073741823&(t.seed=(1103515245*t.seed+12345)%2147483647))/1073741823,done:!1}});n({target:"Math",stat:!0,forced:!0},{seededPRNG:function seededPRNG(t){var r=o(t).seed;if(!i(r))throw TypeError('Math.seededPRNG() argument should have a "seed" field with a finite value.');return new p(r)}})},function(t,r,e){e(2)({target:"Math",stat:!0},{signbit:function signbit(t){return(t=+t)==t&&0==t?1/t==-Infinity:t<0}})},function(t,r,e){e(2)({target:"Math",stat:!0},{umulh:function umulh(t,r){var e=+t,n=+r,o=65535&e,i=65535&n,a=e>>>16,u=n>>>16,c=(a*i>>>0)+(o*i>>>16);return a*u+(c>>>16)+((o*u>>>0)+(65535&c)>>>16)}})},function(t,r,e){var n=e(2),i=e(40),a=e(206),u="Invalid number representation",c=/^[\da-z]+$/;n({target:"Number",stat:!0},{fromString:function fromString(t,r){var e,n,o=1;if("string"!=typeof t)throw TypeError(u);if(!t.length)throw SyntaxError(u);if("-"==t.charAt(0)&&(o=-1,!(t=t.slice(1)).length))throw SyntaxError(u);if((e=r===qt?10:i(r))<2||36<e)throw RangeError("Invalid radix");if(!c.test(t)||(n=a(t,e)).toString(e)!==t)throw SyntaxError(u);return o*n}})},function(t,r,e){var n=e(2),o=e(443);n({target:"Object",stat:!0},{iterateEntries:function iterateEntries(t){return new o(t,"entries")}})},function(t,r,e){var n=e(25),o=e(111),i=e(15),a=e(51),u=e(48),c="Object Iterator",f=n.set,s=n.getterFor(c);t.exports=o(function ObjectIterator(t,r){var e=u(t);f(this,{type:c,mode:r,object:e,keys:a(e),index:0})},"Object",function next(){for(var t=s(this),r=t.keys;;){if(null===r||r.length<=t.index)return t.object=t.keys=null,{value:qt,done:!0};var e=r[t.index++],n=t.object;if(i(n,e)){switch(t.mode){case"keys":return{value:e,done:!1};case"values":return{value:n[e],done:!1}}return{value:[e,n[e]],done:!1}}}})},function(t,r,e){var n=e(2),o=e(443);n({target:"Object",stat:!0},{iterateKeys:function iterateKeys(t){return new o(t,"keys")}})},function(t,r,e){var n=e(2),o=e(443);n({target:"Object",stat:!0},{iterateValues:function iterateValues(t){return new o(t,"values")}})},function(t,r,e){var n=e(2),c=e(5),o=e(130),f=e(60),s=e(20),i=e(14),a=e(138),u=e(19).f,l=e(18),p=e(137),h=e(405),g=e(166),v=e(249),d=e(54),y=e(25),m=d("observable"),b=y.get,x=y.set,w=function(t){return null==t?qt:f(t)},S=function(t){var r=t.cleanup;if(r){t.cleanup=qt;try{r()}catch(e){v(e)}}},A=function(t){return t.observer===qt},E=function(t,r){if(!c){t.closed=!0;var e=r.subscriptionObserver;e&&(e.closed=!0)}r.observer=qt},I=function(t,r){var e,n=x(this,{cleanup:qt,observer:s(t),subscriptionObserver:qt});c||(this.closed=!1);try{(e=w(t.start))&&e.call(t,this)}catch(u){v(u)}if(!A(n)){var o=n.subscriptionObserver=new O(this);try{var i=r(o),a=i;null!=i&&(n.cleanup="function"==typeof i.unsubscribe?function(){a.unsubscribe()}:f(i))}catch(u){return void o.error(u)}A(n)&&S(n)}};I.prototype=p({},{unsubscribe:function unsubscribe(){var t=b(this);A(t)||(E(this,t),S(t))}}),c&&u(I.prototype,"closed",{configurable:!0,get:function(){return A(b(this))}});var O=function(t){x(this,{subscription:t}),c||(this.closed=!1)};O.prototype=p({},{next:function next(t){var r=b(b(this).subscription);if(!A(r)){var e=r.observer;try{var n=w(e.next);n&&n.call(e,t)}catch(o){v(o)}}},error:function error(t){var r=b(this).subscription,e=b(r);if(!A(e)){var n=e.observer;E(r,e);try{var o=w(n.error);o?o.call(n,t):v(t)}catch(i){v(i)}S(e)}},complete:function complete(){var t=b(this).subscription,r=b(t);if(!A(r)){var e=r.observer;E(t,r);try{var n=w(e.complete);n&&n.call(e)}catch(error){v(error)}S(r)}}}),c&&u(O.prototype,"closed",{configurable:!0,get:function(){return A(b(b(this).subscription))}});var M=function Observable(t){a(this,M,"Observable"),x(this,{subscriber:f(t)})};p(M.prototype,{subscribe:function subscribe(t){var r=arguments.length;return new I("function"==typeof t?{next:t,error:1<r?arguments[1]:qt,complete:2<r?arguments[2]:qt}:i(t)?t:{},b(this).subscriber)}}),p(M,{from:function from(t){var r="function"==typeof this?this:M,e=w(s(t)[m]);if(e){var n=s(e.call(t));return n.constructor===r?n:new r(function(t){return n.subscribe(t)})}var o=h(t);return new r(function(r){g(o,function(t){if(r.next(t),r.closed)return g.stop()},qt,!1,!0),r.complete()})},of:function of(){for(var t="function"==typeof this?this:M,e=arguments.length,n=new Array(e),r=0;r<e;)n[r]=arguments[r++];return new t(function(t){for(var r=0;r<e;r++)if(t.next(n[r]),t.closed)return;t.complete()})}}),l(M.prototype,m,function(){return this}),n({global:!0},{Observable:M}),o("Observable")},function(t,r,e){e(251)},function(t,r,e){var n=e(2),l=e(60),p=e(34),o=e(248),i=e(250),h=e(166),g="No one promise resolved";n({target:"Promise",stat:!0},{any:function any(t){var c=this,r=o.f(c),f=r.resolve,s=r.reject,e=i(function(){var n=l(c.resolve),o=[],i=0,a=1,u=!1;h(t,function(t){var r=i++,e=!1;o.push(qt),a++,n.call(c,t).then(function(t){e||u||(u=!0,f(t))},function(t){e||u||(e=!0,o[r]=t,--a||s(new(p("AggregateError"))(o,g)))})}),--a||s(new(p("AggregateError"))(o,g))});return e.error&&s(e.value),r.promise}})},function(t,r,e){var n=e(2),o=e(248),i=e(250);n({target:"Promise",stat:!0},{"try":function(t){var r=o.f(this),e=i(t);return(e.error?r.reject:r.resolve)(e.value),r.promise}})},function(t,r,e){var n=e(2),o=e(451),i=e(20),a=o.toKey,u=o.set;n({target:"Reflect",stat:!0},{defineMetadata:function defineMetadata(t,r,e){var n=arguments.length<4?qt:a(arguments[3]);u(t,r,i(e),n)}})},function(t,r,e){var i=e(162),n=e(357),o=e(28)("metadata"),a=o.store||(o.store=new n),u=function(t,r,e){var n=a.get(t);if(!n){if(!e)return;a.set(t,n=new i)}var o=n.get(r);if(!o){if(!e)return;n.set(r,o=new i)}return o};t.exports={store:a,getMap:u,has:function(t,r,e){var n=u(r,e,!1);return n!==qt&&n.has(t)},get:function(t,r,e){var n=u(r,e,!1);return n===qt?qt:n.get(t)},set:function(t,r,e,n){u(e,n,!0).set(t,r)},keys:function(t,r){var e=u(t,r,!1),n=[];return e&&e.forEach(function(t,r){n.push(r)}),n},toKey:function(t){return t===qt||"symbol"==typeof t?t:String(t)}}},function(t,r,e){var n=e(2),o=e(451),i=e(20),a=o.toKey,u=o.getMap,c=o.store;n({target:"Reflect",stat:!0},{deleteMetadata:function deleteMetadata(t,r){var e=arguments.length<3?qt:a(arguments[2]),n=u(i(r),e,!1);if(n===qt||!n["delete"](t))return!1 +;if(n.size)return!0;var o=c.get(r);return o["delete"](e),!!o.size||c["delete"](r)}})},function(t,r,e){var n=e(2),o=e(451),i=e(20),a=e(113),u=o.has,c=o.get,f=o.toKey,s=function(t,r,e){if(u(t,r,e))return c(t,r,e);var n=a(r);return null!==n?s(t,n,e):qt};n({target:"Reflect",stat:!0},{getMetadata:function getMetadata(t,r){var e=arguments.length<3?qt:f(arguments[2]);return s(t,i(r),e)}})},function(t,r,e){var n=e(2),u=e(276),o=e(451),i=e(20),c=e(113),f=e(166),s=o.keys,a=o.toKey,l=function(t,r){var e=s(t,r),n=c(t);if(null===n)return e;var o,i,a=l(n,r);return a.length?e.length?(o=new u(e.concat(a)),f(o,(i=[]).push,i),i):a:e};n({target:"Reflect",stat:!0},{getMetadataKeys:function getMetadataKeys(t){var r=arguments.length<2?qt:a(arguments[1]);return l(i(t),r)}})},function(t,r,e){var n=e(2),o=e(451),i=e(20),a=o.get,u=o.toKey;n({target:"Reflect",stat:!0},{getOwnMetadata:function getOwnMetadata(t,r){var e=arguments.length<3?qt:u(arguments[2]);return a(t,i(r),e)}})},function(t,r,e){var n=e(2),o=e(451),i=e(20),a=o.keys,u=o.toKey;n({target:"Reflect",stat:!0},{getOwnMetadataKeys:function getOwnMetadataKeys(t){var r=arguments.length<2?qt:u(arguments[1]);return a(i(t),r)}})},function(t,r,e){var n=e(2),o=e(451),i=e(20),a=e(113),u=o.has,c=o.toKey,f=function(t,r,e){if(u(t,r,e))return!0;var n=a(r);return null!==n&&f(t,n,e)};n({target:"Reflect",stat:!0},{hasMetadata:function hasMetadata(t,r){var e=arguments.length<3?qt:c(arguments[2]);return f(t,i(r),e)}})},function(t,r,e){var n=e(2),o=e(451),i=e(20),a=o.has,u=o.toKey;n({target:"Reflect",stat:!0},{hasOwnMetadata:function hasOwnMetadata(t,r){var e=arguments.length<3?qt:u(arguments[2]);return a(t,i(r),e)}})},function(t,r,e){var n=e(2),o=e(451),i=e(20),a=o.toKey,u=o.set;n({target:"Reflect",stat:!0},{metadata:function metadata(e,n){return function decorator(t,r){u(e,n,i(t),a(r))}}})},function(t,r,e){var n=e(2),o=e(29),i=e(461);n({target:"Set",proto:!0,real:!0,forced:o},{addAll:function addAll(){return i.apply(this,arguments)}})},function(t,r,e){var o=e(20),i=e(60);t.exports=function(){for(var t=o(this),r=i(t.add),e=0,n=arguments.length;e<n;e++)r.call(t,arguments[e]);return t}},function(t,r,e){var n=e(2),o=e(29),i=e(402);n({target:"Set",proto:!0,real:!0,forced:o},{deleteAll:function deleteAll(){return i.apply(this,arguments)}})},function(t,r,e){var n=e(2),o=e(29),i=e(34),a=e(20),u=e(60),c=e(144),f=e(166);n({target:"Set",proto:!0,real:!0,forced:o},{difference:function difference(t){var r=a(this),e=new(c(r,i("Set")))(r),n=u(e["delete"]);return f(t,function(t){n.call(e,t)}),e}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(59),u=e(465),c=e(166);n({target:"Set",proto:!0,real:!0,forced:o},{every:function every(t){var r=i(this),e=u(r),n=a(t,1<arguments.length?arguments[1]:qt,3);return!c(e,function(t){if(!n(t,t,r))return c.stop()},qt,!1,!0).stopped}})},function(t,r,e){var n=e(29),o=e(405);t.exports=n?o:function(t){return Set.prototype.values.call(t)}},function(t,r,e){var n=e(2),o=e(29),a=e(34),u=e(20),c=e(60),f=e(59),s=e(144),l=e(465),p=e(166);n({target:"Set",proto:!0,real:!0,forced:o},{filter:function filter(t){var r=u(this),e=l(r),n=f(t,1<arguments.length?arguments[1]:qt,3),o=new(s(r,a("Set"))),i=c(o.add);return p(e,function(t){n(t,t,r)&&i.call(o,t)},qt,!1,!0),o}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(59),u=e(465),c=e(166);n({target:"Set",proto:!0,real:!0,forced:o},{find:function find(t){var r=i(this),e=u(r),n=a(t,1<arguments.length?arguments[1]:qt,3);return c(e,function(t){if(n(t,t,r))return c.stop(t)},qt,!1,!0).result}})},function(t,r,e){e(2)({target:"Set",stat:!0},{from:e(410)})},function(t,r,e){var n=e(2),o=e(29),i=e(34),a=e(20),u=e(60),c=e(144),f=e(166);n({target:"Set",proto:!0,real:!0,forced:o},{intersection:function intersection(t){var r=a(this),e=new(c(r,i("Set"))),n=u(r.has),o=u(e.add);return f(t,function(t){n.call(r,t)&&o.call(e,t)}),e}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(60),u=e(166);n({target:"Set",proto:!0,real:!0,forced:o},{isDisjointFrom:function isDisjointFrom(t){var r=i(this),e=a(r.has);return!u(t,function(t){if(!0===e.call(r,t))return u.stop()}).stopped}})},function(t,r,e){var n=e(2),o=e(29),i=e(34),a=e(20),u=e(60),c=e(405),f=e(166);n({target:"Set",proto:!0,real:!0,forced:o},{isSubsetOf:function isSubsetOf(t){var r=c(this),e=a(t),n=e.has;return"function"!=typeof n&&(e=new(i("Set"))(t),n=u(e.has)),!f(r,function(t){if(!1===n.call(e,t))return f.stop()},qt,!1,!0).stopped}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(60),u=e(166);n({target:"Set",proto:!0,real:!0,forced:o},{isSupersetOf:function isSupersetOf(t){var r=i(this),e=a(r.has);return!u(t,function(t){if(!1===e.call(r,t))return u.stop()}).stopped}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(465),u=e(166);n({target:"Set",proto:!0,real:!0,forced:o},{join:function join(t){var r=i(this),e=a(r),n=t===qt?",":String(t),o=[];return u(e,o.push,o,!1,!0),o.join(n)}})},function(t,r,e){var n=e(2),o=e(29),a=e(34),u=e(20),c=e(60),f=e(59),s=e(144),l=e(465),p=e(166);n({target:"Set",proto:!0,real:!0,forced:o},{map:function map(t){var r=u(this),e=l(r),n=f(t,1<arguments.length?arguments[1]:qt,3),o=new(s(r,a("Set"))),i=c(o.add);return p(e,function(t){i.call(o,n(t,t,r))},qt,!1,!0),o}})},function(t,r,e){e(2)({target:"Set",stat:!0},{of:e(420)})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(60),u=e(465),c=e(166);n({target:"Set",proto:!0,real:!0,forced:o},{reduce:function reduce(r){var e=i(this),t=u(e),n=arguments.length<2,o=n?qt:arguments[1];if(a(r),c(t,function(t){o=n?(n=!1,t):r(o,t,t,e)},qt,!1,!0),n)throw TypeError("Reduce of empty set with no initial value");return o}})},function(t,r,e){var n=e(2),o=e(29),i=e(20),a=e(59),u=e(465),c=e(166);n({target:"Set",proto:!0,real:!0,forced:o},{some:function some(t){var r=i(this),e=u(r),n=a(t,1<arguments.length?arguments[1]:qt,3);return c(e,function(t){if(n(t,t,r))return c.stop()},qt,!1,!0).stopped}})},function(t,r,e){var n=e(2),o=e(29),i=e(34),a=e(20),u=e(60),c=e(144),f=e(166);n({target:"Set",proto:!0,real:!0,forced:o},{symmetricDifference:function symmetricDifference(t){var r=a(this),e=new(c(r,i("Set")))(r),n=u(e["delete"]),o=u(e.add);return f(t,function(t){n.call(e,t)||o.call(e,t)}),e}})},function(t,r,e){var n=e(2),o=e(29),i=e(34),a=e(20),u=e(60),c=e(144),f=e(166);n({target:"Set",proto:!0,real:!0,forced:o},{union:function union(t){var r=a(this),e=new(c(r,i("Set")))(r);return f(t,u(e.add),e),e}})},function(t,r,e){var n=e(2),o=e(278).charAt;n({target:"String",proto:!0},{at:function at(t){return o(this,t)}})},function(t,r,e){var n=e(2),o=e(111),i=e(12),a=e(25),u=e(278),c=u.codeAt,f=u.charAt,s="String Iterator",l=a.set,p=a.getterFor(s),h=o(function StringIterator(t){l(this,{type:s,string:t,index:0})},"String",function next(){var t,r=p(this),e=r.string,n=r.index;return e.length<=n?{value:qt,done:!0}:(t=f(e,n),r.index+=t.length,{value:{codePoint:c(t,0),position:n},done:!1})});n({target:"String",proto:!0},{codePoints:function codePoints(){return new h(String(i(this)))}})},function(t,r,e){e(289)},function(t,r,e){var n=e(2),l=e(12),p=e(267),h=e(268),o=e(54),g=e(29),v=o("replace"),d=RegExp.prototype;n({target:"String",proto:!0},{replaceAll:function replaceAll(t,r){var e,n,o,i,a,u,c,f,s=l(this);if(null!=t){if((e=p(t))&&!~String(l("flags"in d?t.flags:h.call(t))).indexOf("g"))throw TypeError("`.replaceAll` does not allow non-global regexes");if((n=t[v])!==qt)return n.call(t,s,r);if(g&&e)return String(s).replace(t,r)}if(o=String(s),""===(i=String(t)))return replaceAll.call(o,/(?:)/g,r);if(a=o.split(i),"function"!=typeof r)return a.join(String(r));for(c=(u=a[0]).length,f=1;f<a.length;f++)u+=String(r(i,c,o)),c+=i.length+a[f].length,u+=a[f];return u}})},function(t,r,e){e(56)("asyncDispose")},function(t,r,e){e(56)("dispose")},function(t,r,e){e(56)("observable")},function(t,r,e){e(56)("patternMatch")},function(t,r,e){e(56)("replaceAll")},function(t,r,e){var n=e(2),o=e(29),i=e(402);n({target:"WeakMap",proto:!0,real:!0,forced:o},{deleteAll:function deleteAll(){return i.apply(this,arguments)}})},function(t,r,e){e(2)({target:"WeakMap",stat:!0},{from:e(410)})},function(t,r,e){e(2)({target:"WeakMap",stat:!0},{of:e(420)})},function(t,r,e){e(2)({target:"WeakMap",proto:!0,real:!0,forced:e(29)},{upsert:e(425)})},function(t,r,e){var n=e(2),o=e(29),i=e(461);n({target:"WeakSet",proto:!0,real:!0,forced:o},{addAll:function addAll(){return i.apply(this,arguments)}})},function(t,r,e){var n=e(2),o=e(29),i=e(402);n({target:"WeakSet",proto:!0,real:!0,forced:o},{deleteAll:function deleteAll(){return i.apply(this,arguments)}})},function(t,r,e){e(2)({target:"WeakSet",stat:!0},{from:e(410)})},function(t,r,e){e(2)({target:"WeakSet",stat:!0},{of:e(420)})},function(t,r,e){var n=e(3),o=e(498),i=e(96),a=e(18);for(var u in o){var c=n[u],f=c&&c.prototype;if(f&&f.forEach!==i)try{a(f,"forEach",i)}catch(s){f.forEach=i}}},function(t,r){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(t,r,e){var n=e(3),o=e(498),i=e(109),a=e(18),u=e(54),c=u("iterator"),f=u("toStringTag"),s=i.values;for(var l in o){var p=n[l],h=p&&p.prototype;if(h){if(h[c]!==s)try{a(h,c,s)}catch(v){h[c]=s}if(h[f]||a(h,f,l),o[l])for(var g in i)if(h[g]!==i[g])try{a(h,g,i[g])}catch(v){h[g]=i[g]}}}},function(t,r,e){var n=e(2),o=e(3),i=e(244);n({global:!0,bind:!0,enumerable:!0,forced:!o.setImmediate||!o.clearImmediate},{setImmediate:i.set,clearImmediate:i.clear})},function(t,r,e){var n=e(2),o=e(3),i=e(246),a=e(11),u=o.process,c="process"==a(u);n({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function queueMicrotask(t){var r=c&&u.domain;i(r?r.bind(t):t)}})},function(t,r,e){var n=e(2),o=e(3),i=e(80),a=[].slice,u=function(o){return function(t,r){var e=2<arguments.length,n=e?a.call(arguments,2):qt;return o(e?function(){("function"==typeof t?t:Function(t)).apply(this,n)}:t,r)}};n({global:!0,bind:!0,forced:/MSIE .\./.test(i)},{setTimeout:u(o.setTimeout),setInterval:u(o.setInterval)})},function(t,r,e){e(284);var x,n=e(2),f=e(5),o=e(504),i=e(3),a=e(50),u=e(21),s=e(138),w=e(15),c=e(211),S=e(98),l=e(278).codeAt,p=e(505),h=e(57),g=e(506),v=e(25),d=i.URL,y=g.URLSearchParams,m=g.getState,b=v.set,A=v.getterFor("URL"),E=Math.floor,I=Math.pow,O="Invalid scheme",M="Invalid host",R="Invalid port",T=/[A-Za-z]/,_=/[\d+-.A-Za-z]/,j=/\d/,P=/^(0x|0X)/,k=/^[0-7]+$/,N=/^\d+$/,F=/^[\dA-Fa-f]+$/,U=/[\u0000\u0009\u000A\u000D #%/:?@[\\]]/,L=/[\u0000\u0009\u000A\u000D #/:?@[\\]]/,C=/^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,D=/[\u0009\u000A\u000D]/g,B=function(t,r){var e,n,o;if("["==r.charAt(0)){if("]"!=r.charAt(r.length-1))return M;if(!(e=z(r.slice(1,-1))))return M;t.host=e}else if(X(t)){if(r=p(r),U.test(r))return M;if(null===(e=q(r)))return M;t.host=e}else{if(L.test(r))return M;for(e="",n=S(r),o=0;o<n.length;o++)e+=Y(n[o],G);t.host=e}},q=function(t){var r,e,n,o,i,a,u,c=t.split(".");if(c.length&&""==c[c.length-1]&&c.pop(),4<(r=c.length))return t;for(e=[],n=0;n<r;n++){if(""==(o=c[n]))return t;if(i=10,1<o.length&&"0"==o.charAt(0)&&(i=P.test(o)?16:8,o=o.slice(8==i?1:2)),""===o)a=0;else{if(!(10==i?N:8==i?k:F).test(o))return t;a=parseInt(o,i)}e.push(a)}for(n=0;n<r;n++)if(a=e[n],n==r-1){if(a>=I(256,5-r))return null}else if(255<a)return null;for(u=e.pop(),n=0;n<e.length;n++)u+=e[n]*I(256,3-n);return u},z=function(t){var r,e,n,o,i,a,u,c=[0,0,0,0,0,0,0,0],f=0,s=null,l=0,p=function(){return t.charAt(l)};if(":"==p()){if(":"!=t.charAt(1))return;l+=2,s=++f}for(;p();){if(8==f)return;if(":"!=p()){for(r=e=0;e<4&&F.test(p());)r=16*r+parseInt(p(),16),l++,e++;if("."==p()){if(0==e)return;if(l-=e,6<f)return;for(n=0;p();){if(o=null,0<n){if(!("."==p()&&n<4))return;l++}if(!j.test(p()))return;for(;j.test(p());){if(i=parseInt(p(),10),null===o)o=i;else{if(0==o)return;o=10*o+i}if(255<o)return;l++}c[f]=256*c[f]+o,2!=++n&&4!=n||f++}if(4!=n)return;break}if(":"==p()){if(l++,!p())return}else if(p())return;c[f++]=r}else{if(null!==s)return;l++,s=++f}}if(null!==s)for(a=f-s,f=7;0!=f&&0<a;)u=c[f],c[f--]=c[s+a-1],c[s+--a]=u;else if(8!=f)return;return c},W=function(t){var r,e,n,o;if("number"==typeof t){for(r=[],e=0;e<4;e++)r.unshift(t%256),t=E(t/256);return r.join(".")}if("object"!=typeof t)return t;for(r="",n=function(t){for(var r=null,e=1,n=null,o=0,i=0;i<8;i++)0!==t[i]?(e<o&&(r=n,e=o),n=null,o=0):(null===n&&(n=i),++o);return e<o&&(r=n,e=o),r}(t),e=0;e<8;e++)o&&0===t[e]||(o=o&&!1,n===e?(r+=e?":":"::",o=!0):(r+=t[e].toString(16),e<7&&(r+=":")));return"["+r+"]"},G={},V=c({},G,{" ":1,'"':1,"<":1,">":1,"`":1}),K=c({},V,{"#":1,"?":1,"{":1,"}":1}),$=c({},K,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Y=function(t,r){var e=l(t,0);return 32<e&&e<127&&!w(r,t)?t:encodeURIComponent(t)},J={ftp:21,file:null,http:80,https:443,ws:80,wss:443},X=function(t){return w(J,t.scheme)},H=function(t){return""!=t.username||""!=t.password},Q=function(t){return!t.host||t.cannotBeABaseURL||"file"==t.scheme},Z=function(t,r){var e;return 2==t.length&&T.test(t.charAt(0))&&(":"==(e=t.charAt(1))||!r&&"|"==e)},tt=function(t){var r;return 1<t.length&&Z(t.slice(0,2))&&(2==t.length||"/"===(r=t.charAt(2))||"\\"===r||"?"===r||"#"===r)},rt=function(t){var r=t.path,e=r.length;!e||"file"==t.scheme&&1==e&&Z(r[0],!0)||r.pop()},et={},nt={},ot={},it={},at={},ut={},ct={},ft={},st={},lt={},pt={},ht={},gt={},vt={},dt={},yt={},mt={},bt={},xt={},wt={},St={},At=function(t,r,e,n){var o,i,a,u,c,f,s=e||et,l=0,p="",h=!1,g=!1,v=!1;for(e||(t.scheme="",t.username="",t.password="",t.host=null,t.port=null,t.path=[],t.query=null,t.fragment=null,t.cannotBeABaseURL=!1,r=r.replace(C,"")),r=r.replace(D,""),o=S(r);l<=o.length;){switch(i=o[l],s){case et:if(!i||!T.test(i)){if(e)return O;s=ot;continue}p+=i.toLowerCase(),s=nt;break;case nt:if(i&&(_.test(i)||"+"==i||"-"==i||"."==i))p+=i.toLowerCase();else{if(":"!=i){if(e)return O;p="",s=ot,l=0;continue}if(e&&(X(t)!=w(J,p)||"file"==p&&(H(t)||null!==t.port)||"file"==t.scheme&&!t.host))return;if(t.scheme=p,e)return void(X(t)&&J[t.scheme]==t.port&&(t.port=null));p="","file"==t.scheme?s=vt:X(t)&&n&&n.scheme==t.scheme?s=it:X(t)?s=ft:"/"==o[l+1]?(s=at,l++):(t.cannotBeABaseURL=!0,t.path.push(""),s=xt)}break;case ot:if(!n||n.cannotBeABaseURL&&"#"!=i)return O;if(n.cannotBeABaseURL&&"#"==i){t.scheme=n.scheme,t.path=n.path.slice(),t.query=n.query,t.fragment="",t.cannotBeABaseURL=!0,s=St;break}s="file"==n.scheme?vt:ut;continue;case it:if("/"!=i||"/"!=o[l+1]){s=ut;continue}s=st,l++;break;case at:if("/"==i){s=lt;break}s=bt;continue;case ut:if(t.scheme=n.scheme,i==x)t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query=n.query;else if("/"==i||"\\"==i&&X(t))s=ct;else if("?"==i)t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query="",s=wt;else{if("#"!=i){t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.path.pop(),s=bt;continue}t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query=n.query,t.fragment="",s=St}break;case ct:if(!X(t)||"/"!=i&&"\\"!=i){if("/"!=i){t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,s=bt;continue}s=lt}else s=st;break;case ft:if(s=st,"/"!=i||"/"!=p.charAt(l+1))continue;l++;break;case st:if("/"==i||"\\"==i)break;s=lt;continue;case lt:if("@"==i){h&&(p="%40"+p),h=!0,a=S(p);for(var d=0;d<a.length;d++){var y=a[d];if(":"!=y||v){var m=Y(y,$);v?t.password+=m:t.username+=m}else v=!0}p=""}else if(i==x||"/"==i||"?"==i||"#"==i||"\\"==i&&X(t)){if(h&&""==p)return"Invalid authority";l-=S(p).length+1,p="",s=pt}else p+=i;break;case pt:case ht:if(e&&"file"==t.scheme){s=yt;continue}if(":"!=i||g){if(i==x||"/"==i||"?"==i||"#"==i||"\\"==i&&X(t)){if(X(t)&&""==p)return M;if(e&&""==p&&(H(t)||null!==t.port))return;if(u=B(t,p))return u;if(p="",s=mt,e)return;continue}"["==i?g=!0:"]"==i&&(g=!1),p+=i}else{if(""==p)return M;if(u=B(t,p))return u;if(p="",s=gt,e==ht)return}break;case gt:if(!j.test(i)){if(i==x||"/"==i||"?"==i||"#"==i||"\\"==i&&X(t)||e){if(""!=p){var b=parseInt(p,10);if(65535<b)return R;t.port=X(t)&&b===J[t.scheme]?null:b,p=""}if(e)return;s=mt;continue}return R}p+=i;break;case vt:if(t.scheme="file","/"==i||"\\"==i)s=dt;else{if(!n||"file"!=n.scheme){s=bt;continue}if(i==x)t.host=n.host,t.path=n.path.slice(),t.query=n.query;else if("?"==i)t.host=n.host,t.path=n.path.slice(),t.query="",s=wt;else{if("#"!=i){tt(o.slice(l).join(""))||(t.host=n.host,t.path=n.path.slice(),rt(t)),s=bt;continue}t.host=n.host,t.path=n.path.slice(),t.query=n.query,t.fragment="",s=St}}break;case dt:if("/"==i||"\\"==i){s=yt;break}n&&"file"==n.scheme&&!tt(o.slice(l).join(""))&&(Z(n.path[0],!0)?t.path.push(n.path[0]):t.host=n.host),s=bt;continue;case yt:if(i==x||"/"==i||"\\"==i||"?"==i||"#"==i){if(!e&&Z(p))s=bt;else if(""==p){if(t.host="",e)return;s=mt}else{if(u=B(t,p))return u;if("localhost"==t.host&&(t.host=""),e)return;p="",s=mt}continue}p+=i;break;case mt:if(X(t)){if(s=bt,"/"!=i&&"\\"!=i)continue}else if(e||"?"!=i)if(e||"#"!=i){if(i!=x&&(s=bt,"/"!=i))continue}else t.fragment="",s=St;else t.query="",s=wt;break;case bt:if(i==x||"/"==i||"\\"==i&&X(t)||!e&&("?"==i||"#"==i)){if(".."===(f=(f=p).toLowerCase())||"%2e."===f||".%2e"===f||"%2e%2e"===f?(rt(t),"/"==i||"\\"==i&&X(t)||t.path.push("")):"."===(c=p)||"%2e"===c.toLowerCase()?"/"==i||"\\"==i&&X(t)||t.path.push(""):("file"==t.scheme&&!t.path.length&&Z(p)&&(t.host&&(t.host=""),p=p.charAt(0)+":"),t.path.push(p)),p="","file"==t.scheme&&(i==x||"?"==i||"#"==i))for(;1<t.path.length&&""===t.path[0];)t.path.shift();"?"==i?(t.query="",s=wt):"#"==i&&(t.fragment="",s=St)}else p+=Y(i,K);break;case xt:"?"==i?(t.query="",s=wt):"#"==i?(t.fragment="",s=St):i!=x&&(t.path[0]+=Y(i,G));break;case wt:e||"#"!=i?i!=x&&("'"==i&&X(t)?t.query+="%27":t.query+="#"==i?"%23":Y(i,G)):(t.fragment="",s=St);break;case St:i!=x&&(t.fragment+=Y(i,V))}l++}},Et=function URL(t){var r,e,n=s(this,Et,"URL"),o=1<arguments.length?arguments[1]:qt,i=String(t),a=b(n,{type:"URL"});if(o!==qt)if(o instanceof Et)r=A(o);else if(e=At(r={},String(o)))throw TypeError(e);if(e=At(a,i,null,r))throw TypeError(e);var u=a.searchParams=new y,c=m(u);c.updateSearchParams(a.query),c.updateURL=function(){a.query=String(u)||null},f||(n.href=Ot.call(n),n.origin=Mt.call(n),n.protocol=Rt.call(n),n.username=Tt.call(n),n.password=_t.call(n),n.host=jt.call(n),n.hostname=Pt.call(n),n.port=kt.call(n),n.pathname=Nt.call(n),n.search=Ft.call(n),n.searchParams=Ut.call(n),n.hash=Lt.call(n))},It=Et.prototype,Ot=function(){var t=A(this),r=t.scheme,e=t.password,n=t.host,o=t.port,i=t.path,a=t.query,u=t.fragment,c=r+":";return null!==n?(c+="//",H(t)&&(c+=t.username+(e?":"+e:"")+"@"),c+=W(n),null!==o&&(c+=":"+o)):"file"==r&&(c+="//"),c+=t.cannotBeABaseURL?i[0]:i.length?"/"+i.join("/"):"",null!==a&&(c+="?"+a),null!==u&&(c+="#"+u),c},Mt=function(){var t=A(this),r=t.scheme,e=t.port;if("blob"==r)try{return new URL(r.path[0]).origin}catch(n){return"null"}return"file"!=r&&X(t)?r+"://"+W(t.host)+(null!==e?":"+e:""):"null"},Rt=function(){return A(this).scheme+":"},Tt=function(){return A(this).username},_t=function(){return A(this).password},jt=function(){var t=A(this),r=t.host,e=t.port;return null===r?"":null===e?W(r):W(r)+":"+e},Pt=function(){var t=A(this).host;return null===t?"":W(t)},kt=function(){var t=A(this).port;return null===t?"":String(t)},Nt=function(){var t=A(this),r=t.path;return t.cannotBeABaseURL?r[0]:r.length?"/"+r.join("/"):""},Ft=function(){var t=A(this).query;return t?"?"+t:""},Ut=function(){return A(this).searchParams},Lt=function(){var t=A(this).fragment;return t?"#"+t:""},Ct=function(t,r){return{get:t,set:r,configurable:!0,enumerable:!0}};if(f&&a(It,{href:Ct(Ot,function(t){var r=A(this),e=String(t),n=At(r,e);if(n)throw TypeError(n);m(r.searchParams).updateSearchParams(r.query)}),origin:Ct(Mt),protocol:Ct(Rt,function(t){var r=A(this);At(r,String(t)+":",et)}),username:Ct(Tt,function(t){var r=A(this),e=S(String(t));if(!Q(r)){r.username="";for(var n=0;n<e.length;n++)r.username+=Y(e[n],$)}}),password:Ct(_t,function(t){var r=A(this),e=S(String(t));if(!Q(r)){r.password="";for(var n=0;n<e.length;n++)r.password+=Y(e[n],$)}}),host:Ct(jt,function(t){var r=A(this);r.cannotBeABaseURL||At(r,String(t),pt)}),hostname:Ct(Pt,function(t){var r=A(this);r.cannotBeABaseURL||At(r,String(t),ht)}),port:Ct(kt,function(t){var r=A(this);Q(r)||(""==(t=String(t))?r.port=null:At(r,t,gt))}),pathname:Ct(Nt,function(t){var r=A(this);r.cannotBeABaseURL||(r.path=[],At(r,t+"",mt))}),search:Ct(Ft,function(t){var r=A(this);""==(t=String(t))?r.query=null:("?"==t.charAt(0)&&(t=t.slice(1)),r.query="",At(r,t,wt)),m(r.searchParams).updateSearchParams(r.query)}),searchParams:Ct(Ut),hash:Ct(Lt,function(t){var r=A(this);""!=(t=String(t))?("#"==t.charAt(0)&&(t=t.slice(1)),r.fragment="",At(r,t,St)):r.fragment=null})}),u(It,"toJSON",function toJSON(){return Ot.call(this)},{enumerable:!0}),u(It,"toString",function toString(){return Ot.call(this)},{enumerable:!0}),d){var Dt=d.createObjectURL,Bt=d.revokeObjectURL;Dt&&u(Et,"createObjectURL",function createObjectURL(t){return Dt.apply(d,arguments)}),Bt&&u(Et,"revokeObjectURL",function revokeObjectURL(t){return Bt.apply(d,arguments)})}h(Et,"URL"),n({global:!0,forced:!o,sham:!f},{URL:Et})},function(t,r,e){var n=e(6),o=e(54),i=e(29),a=o("iterator");t.exports=!n(function(){var t=new URL("b?a=1&b=2&c=3","http://a"),e=t.searchParams,n="";return t.pathname="c%20d",e.forEach(function(t,r){e["delete"]("b"),n+=r+t}),i&&!t.toJSON||!e.sort||"http://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[a]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",qt).host})},function(t,r,e){var y=2147483647,i=/[^\0-\u007E]/,a=/[.\u3002\uFF0E\uFF61]/g,m="Overflow: input needs wider integers to process",b=Math.floor,x=String.fromCharCode,w=function(t){return t+22+75*(t<26)},S=function(t,r,e){var n=0;for(t=e?b(t/700):t>>1,t+=b(t/r);455<t;n+=36)t=b(t/35);return b(n+36*t/(t+38))},u=function(t){var r,e,n=[],o=(t=function(t){for(var r=[],e=0,n=t.length;e<n;){var o=t.charCodeAt(e++);if(55296<=o&&o<=56319&&e<n){var i=t.charCodeAt(e++);56320==(64512&i)?r.push(((1023&o)<<10)+(1023&i)+65536):(r.push(o),e--)}else r.push(o)}return r}(t)).length,i=128,a=0,u=72;for(r=0;r<t.length;r++)(e=t[r])<128&&n.push(x(e));var c=n.length,f=c;for(c&&n.push("-");f<o;){var s=y;for(r=0;r<t.length;r++)i<=(e=t[r])&&e<s&&(s=e);var l=f+1;if(s-i>b((y-a)/l))throw RangeError(m);for(a+=(s-i)*l,i=s,r=0;r<t.length;r++){if((e=t[r])<i&&++a>y)throw RangeError(m);if(e==i){for(var p=a,h=36;;h+=36){var g=h<=u?1:u+26<=h?26:h-u;if(p<g)break;var v=p-g,d=36-g;n.push(x(w(g+v%d))),p=b(v/d)}n.push(x(w(p))),u=S(a,l,f==c),a=0,++f}}++a,++i}return n.join("")};t.exports=function(t){var r,e,n=[],o=t.toLowerCase().replace(a,".").split(".");for(r=0;r<o.length;r++)n.push(i.test(e=o[r])?"xn--"+u(e):e);return n.join(".")}},function(t,r,e){e(109);var n=e(2),o=e(34),i=e(504),a=e(21),u=e(137),c=e(57),f=e(111),s=e(25),l=e(138),p=e(15),h=e(59),g=e(103),v=e(20),d=e(14),y=e(49),m=e(8),b=e(405),x=e(102),w=e(54),S=o("fetch"),A=o("Headers"),E=w("iterator"),I="URLSearchParams",O=I+"Iterator",M=s.set,R=s.getterFor(I),T=s.getterFor(O),_=/\+/g,j=Array(4),P=function(t){return j[t-1]||(j[t-1]=RegExp("((?:%[\\da-f]{2}){"+t+"})","gi"))},k=function(t){try{return decodeURIComponent(t)}catch(r){return t}},N=function(t){var r=t.replace(_," "),e=4;try{return decodeURIComponent(r)}catch(n){for(;e;)r=r.replace(P(e--),k);return r}},F=/[!'()~]|%20/g,U={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},L=function(t){return U[t]},C=function(t){return encodeURIComponent(t).replace(F,L)},D=function(t,r){if(r)for(var e,n,o=r.split("&"),i=0;i<o.length;)(e=o[i++]).length&&(n=e.split("="),t.push({key:N(n.shift()),value:N(n.join("="))}))},B=function(t){this.entries.length=0,D(this.entries,t)},q=function(t,r){if(t<r)throw TypeError("Not enough arguments")},z=f(function Iterator(t,r){M(this,{type:O,iterator:b(R(t).entries),kind:r})},"Iterator",function next(){var t=T(this),r=t.kind,e=t.iterator.next(),n=e.value;return e.done||(e.value="keys"===r?n.key:"values"===r?n.value:[n.key,n.value]),e}),W=function URLSearchParams(){l(this,W,I);var t,r,e,n,o,i,a,u,c,f=0<arguments.length?arguments[0]:qt,s=[];if(M(this,{type:I,entries:s,updateURL:function(){},updateSearchParams:B}),f!==qt)if(d(f))if("function"==typeof(t=x(f)))for(e=(r=t.call(f)).next;!(n=e.call(r)).done;){if((a=(i=(o=b(v(n.value))).next).call(o)).done||(u=i.call(o)).done||!i.call(o).done)throw TypeError("Expected sequence with length 2");s.push({key:a.value+"",value:u.value+""})}else for(c in f)p(f,c)&&s.push({key:c,value:f[c]+""});else D(s,"string"==typeof f?"?"===f.charAt(0)?f.slice(1):f:f+"")},G=W.prototype;u(G,{append:function append(t,r){q(arguments.length,2);var e=R(this);e.entries.push({key:t+"",value:r+""}),e.updateURL()},"delete":function(t){q(arguments.length,1);for(var r=R(this),e=r.entries,n=t+"",o=0;o<e.length;)e[o].key===n?e.splice(o,1):o++;r.updateURL()},get:function get(t){q(arguments.length,1);for(var r=R(this).entries,e=t+"",n=0;n<r.length;n++)if(r[n].key===e)return r[n].value;return null},getAll:function getAll(t){q(arguments.length,1);for(var r=R(this).entries,e=t+"",n=[],o=0;o<r.length;o++)r[o].key===e&&n.push(r[o].value);return n},has:function has(t){q(arguments.length,1);for(var r=R(this).entries,e=t+"",n=0;n<r.length;)if(r[n++].key===e)return!0;return!1},set:function set(t,r){q(arguments.length,1);for(var e,n=R(this),o=n.entries,i=!1,a=t+"",u=r+"",c=0;c<o.length;c++)(e=o[c]).key===a&&(i?o.splice(c--,1):(i=!0,e.value=u));i||o.push({key:a,value:u}),n.updateURL()},sort:function sort(){var t,r,e,n=R(this),o=n.entries,i=o.slice();for(e=o.length=0;e<i.length;e++){for(t=i[e],r=0;r<e;r++)if(t.key<o[r].key){o.splice(r,0,t);break}r===e&&o.push(t)}n.updateURL()},forEach:function forEach(t){for(var r,e=R(this).entries,n=h(t,1<arguments.length?arguments[1]:qt,3),o=0;o<e.length;)n((r=e[o++]).value,r.key,this)},keys:function keys(){return new z(this,"keys")},values:function values(){return new z(this,"values")},entries:function entries(){return new z(this,"entries")}},{enumerable:!0}),a(G,E,G.entries),a(G,"toString",function toString(){for(var t,r=R(this).entries,e=[],n=0;n<r.length;)t=r[n++],e.push(C(t.key)+"="+C(t.value));return e.join("&")},{enumerable:!0}),c(W,I),n({global:!0,forced:!i},{URLSearchParams:W}),i||"function"!=typeof S||"function"!=typeof A||n({global:!0,enumerable:!0,forced:!0},{fetch:function fetch(t){var r,e,n,o=[t];return 1<arguments.length&&(d(r=arguments[1])&&g(e=r.body)===I&&((n=r.headers?new A(r.headers):new A).has("content-type")||n.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),r=y(r,{body:m(0,String(e)),headers:m(0,n)})),o.push(r)),S.apply(this,o)}}),t.exports={URLSearchParams:W,getState:R}},function(t,r,e){e(2)({target:"URL",proto:!0,enumerable:!0},{toJSON:function toJSON(){return URL.prototype.toString.call(this)}})}],__webpack_require__.c=n,__webpack_require__.d=function(t,r,e){__webpack_require__.o(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:e})},__webpack_require__.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},__webpack_require__.t=function(r,t){if(1&t&&(r=__webpack_require__(r)),8&t)return r;if(4&t&&"object"==typeof r&&r&&r.__esModule)return r;var e=Object.create(null);if(__webpack_require__.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:r}),2&t&&"string"!=typeof r)for(var n in r)__webpack_require__.d(e,n,function(t){return r[t]}.bind(null,n));return e},__webpack_require__.n=function(t){var r=t&&t.__esModule?function getDefault(){return t["default"]}:function getModuleExports(){return t};return __webpack_require__.d(r,"a",r),r},__webpack_require__.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=0)}(); //# sourceMappingURL=minified.js.map \ No newline at end of file diff --git a/editor/external/core-js-bundle/minified.js.map b/editor/external/core-js-bundle/minified.js.map index 3284d1ca..d7edc86b 100644 --- a/editor/external/core-js-bundle/minified.js.map +++ b/editor/external/core-js-bundle/minified.js.map @@ -1 +1 @@ -{"version":3,"sources":["index.js"],"names":["undefined","__webpack_require__","moduleId","installedModules","exports","module","i","l","modules","call","m","$","global","getBuiltIn","IS_PURE","DESCRIPTORS","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","fails","has","isArray","isObject","anObject","toObject","toIndexedObject","toPrimitive","createPropertyDescriptor","nativeObjectCreate","objectKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternal","getOwnPropertySymbolsModule","getOwnPropertyDescriptorModule","definePropertyModule","propertyIsEnumerableModule","createNonEnumerableProperty","redefine","shared","sharedKey","hiddenKeys","uid","wellKnownSymbol","wrappedWellKnownSymbolModule","defineWellKnownSymbol","setToStringTag","InternalStateModule","$forEach","forEach","HIDDEN","SYMBOL","PROTOTYPE","TO_PRIMITIVE","setInternalState","set","getInternalState","getterFor","ObjectPrototype","Object","$Symbol","Symbol","$stringify","nativeGetOwnPropertyDescriptor","f","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","get","this","value","a","O","P","Attributes","ObjectPrototypeDescriptor","wrap","tag","description","symbol","type","isSymbol","iterator","it","$defineProperty","defineProperty","key","enumerable","$defineProperties","defineProperties","Properties","properties","keys","concat","$getOwnPropertySymbols","$propertyIsEnumerable","propertyIsEnumerable","V","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","descriptor","$getOwnPropertyNames","getOwnPropertyNames","names","result","push","getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","TypeError","arguments","length","String","setter","configurable","toString","unsafe","name","forced","sham","target","stat","for","string","keyFor","sym","useSetter","useSimple","create","stringify","replacer","space","$replacer","args","index","apply","valueOf","setGlobal","copyConstructorProperties","isForced","options","source","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","prototype","noTargetGet","check","Math","globalThis","window","self","Function","IE8_DOM_DEFINE","error","exec","NASHORN_BUG","1","bitmap","writable","IndexedObject","requireObjectCoercible","classof","split","slice","input","PREFERRED_STRING","fn","val","hasOwnProperty","createElement","document","EXISTS","object","inspectSource","enforceInternalState","enforce","TEMPLATE","simple","join","store","functionToString","SHARED","NATIVE_WEAK_MAP","objectHas","WeakMap","wmget","wmhas","wmset","metadata","STATE","TYPE","state","test","version","mode","copyright","id","postfix","random","ownKeys","path","aFunction","variable","namespace","method","internalObjectKeys","indexOf","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","toInteger","min","argument","ceil","floor","isNaN","max","integer","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","replace","toLowerCase","Array","arg","activeXDocument","enumBugKeys","html","documentCreateElement","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","style","display","appendChild","src","contentWindow","open","F","windowNames","getWindowNames","createWellKnownSymbol","NAME","TO_STRING_TAG","TAG","bind","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","that","specificCreate","boundFunction","map","filter","some","every","find","findIndex","b","c","SPECIES","originalArray","C","constructor","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","regexp","desc","createProperty","arrayMethodHasSpeciesSupport","V8_VERSION","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","array","SPECIES_SUPPORT","isConcatSpreadable","spreadable","proto","k","len","E","A","n","propertyKey","METHOD_NAME","foo","Boolean","match","userAgent","process","versions","v8","copyWithin","addToUnscopables","start","to","from","end","count","inc","UNSCOPABLES","ArrayPrototype","$every","sloppyArrayMethod","fill","argumentsLength","endPos","$filter","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","0","$find","FIND","SKIPS_HOLES","$findIndex","FIND_INDEX","flattenIntoArray","flat","depthArg","sourceLen","original","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","flatMap","checkCorrectnessOfIteration","iterable","callWithSafeIterationClosing","isArrayIteratorMethod","getIteratorMethod","arrayLike","step","next","mapfn","mapping","iteratorMethod","done","ENTRIES","returnMethod","Iterators","ITERATOR","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","SAFE_CLOSING","called","iteratorWithReturn","return","SKIP_CLOSING","ITERATION_SUPPORT","$includes","$indexOf","nativeIndexOf","NEGATIVE_ZERO","SLOPPY_METHOD","searchElement","defineIterator","ARRAY_ITERATOR","iterated","kind","Arguments","createIteratorConstructor","getPrototypeOf","setPrototypeOf","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","VALUES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","values","entries","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","PrototypeOfArrayIteratorPrototype","arrayIterator","CORRECT_PROTOTYPE_GETTER","aPossiblePrototype","CORRECT_SETTER","__proto__","nativeJoin","ES3_STRINGS","separator","lastIndexOf","nativeLastIndexOf","$map","of","$reduce","left","reduce","IS_RIGHT","memo","right","$reduceRight","reduceRight","nativeReverse","reverse","nativeSlice","Constructor","fin","$some","nativeSort","sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","comparefn","setSpecies","CONSTRUCTOR_NAME","splice","deleteCount","insertCount","actualDeleteCount","actualStart","arrayBufferModule","ARRAY_BUFFER","ArrayBuffer","NATIVE_ARRAY_BUFFER","redefineAll","anInstance","toIndex","IEEE754","arrayFill","DATA_VIEW","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","RangeError","packIEEE754","pack","unpackIEEE754","unpack","packInt8","number","packInt16","packInt32","unpackInt32","buffer","packFloat32","packFloat64","addGetter","view","isLittleEndian","intIndex","byteLength","bytes","byteOffset","conversion","NaN","ArrayBufferPrototype","j","testView","nativeSetInt8","setInt8","getInt8","setUint8","DataView","bufferLength","offset","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","DataViewPrototype","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","isPrototypeOf","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","isView","klass","isTypedArray","aTypedArray","aTypedArrayConstructor","ARRAY","TypedArrayConstructor","exportTypedArrayMethod","property","exportTypedArrayStaticMethod","abs","pow","log","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","sign","nBits","ArrayBufferViewCore","ArrayBufferModule","speciesConstructor","nativeArrayBufferSlice","first","viewSource","viewTarget","defaultConstructor","S","now","Date","getTime","toISOString","padStart","DatePrototype","nativeDateToISOString","isFinite","date","year","getUTCFullYear","milliseconds","getUTCMilliseconds","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","repeat","IS_END","maxLength","fillString","fillLen","stringFiller","stringLength","fillStr","intMaxLength","str","Infinity","toJSON","pv","dateToPrimitive","hint","INVALID_DATE","TO_STRING","nativeDateToString","factories","partArgs","bound","argsLength","list","construct","HAS_INSTANCE","FunctionPrototype","FunctionPrototypeToString","nameRE","re","low","hi","fix","prev","charAt","charCodeAt","JSON","collection","collectionStrong","init","Map","InternalMetadataModule","iterate","inheritIfRequired","wrapper","common","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","nativeMethod","add","getConstructor","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","clear","setStrong","FREEZING","METADATA","isExtensible","setMetadata","objectID","weakData","meta","fastKey","getWeakData","onFreeze","preventExtensions","Result","stopped","AS_ENTRIES","IS_ITERATOR","iterFn","stop","Wrapper","NewTarget","NewTargetPrototype","internalStateGetterFor","last","size","define","previous","entry","getEntry","removed","delete","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","log1p","nativeAcosh","acosh","sqrt","Number","MAX_VALUE","x","nativeAsinh","asinh","nativeAtanh","atanh","cbrt","LOG2E","clz32","expm1","nativeCosh","cosh","t","nativeExpm1","exp","fround","EPSILON","EPSILON32","MAX32","MIN32","$abs","$sign","$hypot","hypot","value1","value2","div","sum","aLen","larg","nativeImul","imul","y","UINT16","xn","yn","xl","yl","LOG10E","log10","log2","sinh","tanh","trunc","trim","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","third","radix","maxCode","digits","code","parseInt","NumberWrapper","whitespace","ltrim","RegExp","rtrim","globalIsFinite","isInteger","isSafeInteger","MIN_SAFE_INTEGER","parseFloat","whitespaces","nativeParseFloat","trimmedString","nativeParseInt","hex","thisNumberValue","nativeToFixed","toFixed","acc","fractionDigits","e","z","fractDigits","multiply","c2","divide","dataToString","s","x2","nativeToPrecision","toPrecision","precision","assign","nativeAssign","B","alphabet","chr","T","__defineGetter__","getter","__defineSetter__","$entries","TO_ENTRIES","nativeFreeze","freeze","fromEntries","obj","v","FAILS_ON_PRIMITIVES","getOwnPropertyDescriptors","nativeGetPrototypeOf","is","nativeIsExtensible","nativeIsFrozen","isFrozen","nativeIsSealed","isSealed","nativeKeys","__lookupGetter__","__lookupSetter__","nativePreventExtensions","nativeSeal","seal","$values","parseFloatImplementation","parseIntImplementation","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newPromiseCapability","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","PromiseRejectionEvent","promise","resolve","FakePromise","then","INCORRECT_ITERATION","all","isThenable","notify","isReject","notified","chain","reactions","ok","exited","reaction","handler","fail","reject","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","event","initEvent","isUnhandled","emit","parent","unwrap","internalReject","internalResolve","Promise","executor","onFulfilled","onRejected","catch","fetch","r","capability","$promiseResolve","counter","remaining","alreadyCalled","race","defer","channel","port","IS_IOS","location","setImmediate","clearImmediate","MessageChannel","Dispatch","queue","ONREADYSTATECHANGE","run","runner","listener","post","postMessage","protocol","host","nextTick","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","flush","head","toggle","node","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","createTextNode","observe","characterData","promiseCapability","PromiseCapability","$$resolve","$$reject","console","allSettled","status","real","finally","onFinally","isFunction","nativeApply","functionApply","thisArgument","argumentsList","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","Reflect","attributes","deleteProperty","receiver","objectGetPrototypeOf","objectIsExtensible","objectPreventExtensions","existingDescriptor","ownDescriptor","objectSetPrototypeOf","isRegExp","getFlags","stickyHelpers","MATCH","NativeRegExp","RegExpPrototype","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","RegExpWrapper","pattern","flags","sticky","thisIsRegExp","patternIsRegExp","flagsAreUndefined","proxy","ignoreCase","multiline","dotAll","unicode","RE","lastIndex","BROKEN_CARET","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","charsAdded","strCopy","objectDefinePropertyModule","regExpFlags","execCalled","DELEGATES_TO_EXEC","nativeTest","Error","nativeToString","R","p","rf","Set","codeAt","codePointAt","pos","CONVERT_TO_STRING","second","position","notARegExp","correctIsRegExpLogic","nativeEndsWith","endsWith","CORRECT_IS_REGEXP_LOGIC","searchString","endPosition","search","fromCharCode","nativeFromCodePoint","fromCodePoint","elements","STRING_ITERATOR","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","res","rx","fullUnicode","matchStr","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","groups","REPLACE_KEEPS_$0","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","DELEGATES_TO_SYMBOL","nativeRegExpMethod","arg2","forceStringMethod","regexMethod","getRegExpFlags","MATCH_ALL","REGEXP_STRING","REGEXP_STRING_ITERATOR","regExpBuiltinExec","nativeMatchAll","matchAll","WORKS_WITH_NON_GLOBAL_REGEX","$RegExpStringIterator","RegExpStringIterator","$matchAll","flagsValue","$padEnd","padEnd","$padStart","raw","template","rawTemplate","literalSegments","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","searchValue","replaceValue","functionalReplace","results","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","symbols","ch","capture","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","callRegExpExec","arrayPush","MAX_UINT32","SUPPORTS_Y","SPLIT","nativeSplit","internalSplit","limit","lim","lastLength","output","lastLastIndex","separatorCopy","splitter","unicodeMatching","q","nativeStartsWith","startsWith","$trim","forcedStringTrimMethod","$trimEnd","trimEnd","trimRight","$trimStart","trimStart","trimLeft","createHTML","forcedStringHTMLMethod","anchor","quot","attribute","p1","big","blink","bold","fixed","fontcolor","color","fontsize","italics","link","url","small","strike","sub","sup","createTypedArrayConstructor","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","toOffset","typedArrayFrom","round","BYTES_PER_ELEMENT","WRONG_LENGTH","fromList","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","BYTES","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","addElement","typedArrayOffset","$length","$len","toPositiveInteger","$copyWithin","$fill","predicate","ArrayIterators","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","$join","$lastIndexOf","middle","$slice","$sort","subarray","begin","beginIndex","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","arrayJoin","InternalWeakMap","collectionWeak","enforceIternalState","IS_IE11","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","frozen","ArrayIterationModule","$has","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","WeakSet","getInternalAggregateErrorState","$AggregateError","AggregateError","errors","message","errorsArray","isFrozenStringArray","allowUndefined","isTemplateObject","lastItem","AsyncIteratorPrototype","AsyncIteratorConstructor","AsyncIterator","USE_FUNCTION_CONSTRUCTOR","ASYNC_ITERATOR","PassedAsyncIteratorPrototype","AsyncIteratorProxy","createAsyncIteratorProxy","asIndexedPairs","$return","$$return","$throw","$$throw","nextHandler","throw","loop","err","drop","IS_TO_ARRAY","IS_FOR_EACH","toArray","filterer","selected","getAsyncIteratorMethod","innerIterator","outerLoop","mapped","innerNext","innerLoop","error2","error1","usingIterator","reducer","noInitial","accumulator","take","$toArray","getCompositeKeyNode","initializer","compositeKey","Node","primitives","objectsByIndex","IS_OBJECT","root","active","compositeSymbol","NativeIterator","Iterator","IteratorProxy","createIteratorProxy","collectionDeleteAll","deleteAll","wasDeleted","remover","allDeleted","getMapIterator","getIterator","newMap","findKey","nextItem","groupBy","keyDerivative","derivedKey","sameValueZero","keyBy","keyOf","mapKeys","mapValues","merge","update","callback","isPresentInMap","updateOrInsert","upsert","updateFn","insertFn","clamp","lower","upper","DEG_PER_RAD","PI","RAD_PER_DEG","degrees","radians","scale","fscale","inLow","inHigh","outLow","outHigh","iaddh","x0","x1","y0","y1","$x0","$y0","imulh","u","$u","$v","u0","v0","u1","v1","isubh","numberIsFinite","SEEDED_RANDOM","SEEDED_RANDOM_GENERATOR","$SeededRandomGenerator","SeededRandomGenerator","seed","seededPRNG","signbit","umulh","INVALID_NUMBER_REPRESENTATION","valid","fromString","mathNum","SyntaxError","ObjectIterator","iterateEntries","OBJECT_ITERATOR","iterateKeys","iterateValues","OBSERVABLE","getMethod","cleanupSubscription","subscriptionState","cleanup","subscriptionClosed","observer","subscription","closed","subscriptionObserver","Subscription","subscriber","SubscriptionObserver","unsubscribe","nextMethod","errorMethod","complete","completeMethod","$Observable","Observable","subscribe","observableMethod","observable","items","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","try","ReflectMetadataModule","toMetadataKey","toKey","ordinaryDefineOwnMetadata","defineMetadata","metadataKey","metadataValue","targetKey","getOrCreateMetadataMap","targetMetadata","keyMetadata","getMap","MetadataKey","metadataMap","MetadataValue","_","deleteMetadata","ordinaryHasOwnMetadata","ordinaryGetOwnMetadata","ordinaryGetMetadata","getMetadata","ordinaryOwnMetadataKeys","ordinaryMetadataKeys","oKeys","iter","pKeys","getMetadataKeys","getOwnMetadata","getOwnMetadataKeys","ordinaryHasMetadata","hasMetadata","hasOwnMetadata","decorator","collectionAddAll","addAll","adder","difference","newSet","getSetIterator","intersection","hasCheck","isDisjointFrom","isSubsetOf","otherSet","isSupersetOf","sep","symmetricDifference","union","at","StringMultibyteModule","$StringIterator","StringIterator","codePoint","codePoints","replaceAll","IS_REG_EXP","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","ArrayIteratorMethods","ArrayValues","isNode","scheduler","timeout","boundArgs","setInterval","EOF","USE_NATIVE_URL","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","URL","URLSearchParams","getInternalSearchParamsState","getState","getInternalURLState","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","ipv4","parts","pop","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","serializeHost","ignore0","unshift","ipv6","maxIndex","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet"," ","\"","<",">","`","pathPercentEncodeSet","#","?","{","}","userinfoPercentEncodeSet","/",":",";","=","@","[","\\","]","^","|","encodeURIComponent","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","username","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","shortenURLsPath","pathSize","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","base","bufferCodePoints","failure","segment","seenAt","seenBracket","seenPasswordToken","query","fragment","encodedCodePoints","shift","URLConstructor","baseState","urlString","searchParams","searchParamsState","updateSearchParams","updateURL","href","serializeURL","origin","getOrigin","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","pathname","getPathname","getSearch","getSearchParams","hash","getHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","stringFromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","encode","currentValue","inputLength","extra","ucs2decode","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","label","encoded","labels","hasOwn","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","plus","sequences","percentSequence","percentDecode","sequence","decodeURIComponent","deserialize","!","'","(",")","~","%20","serialize","parseSearchParams","validateArgumentsLength","passed","required","URLSearchParamsIterator","params","URLSearchParamsConstructor","entryIterator","entryNext","URLSearchParamsPrototype","append","getAll","found","entriesIndex","sliceIndex","body","headers","d","o","toStringTag","__esModule","ns","getDefault","getModuleExports"],"mappings":";;;;;;CAMC,SAAUA,IAAa,aAKd,SAASC,oBAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,OAAOC,EAAiBD,GAAUE,QAGnC,IAAIC,EAASF,EAAiBD,GAAY,CACzCI,EAAGJ,EACHK,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQN,GAAUO,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASH,qBAG/DI,EAAOE,GAAI,EAGJF,EAAOD,QAzBsB,IAAUI,EAE3CL,EAAAA,EAAmB,GA4BvBF,oBAAoBS,EA9B2BF,EAsF/C,CAEJ,SAAUH,EAAQD,EAASH,GAEjCA,EAAoB,GACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAo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","file":"minified.js"} \ No newline at end of file +{"version":3,"sources":["index.js"],"names":["undefined","__webpack_require__","moduleId","installedModules","exports","module","i","l","modules","call","m","$","global","getBuiltIn","IS_PURE","DESCRIPTORS","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","fails","has","isArray","isObject","anObject","toObject","toIndexedObject","toPrimitive","createPropertyDescriptor","nativeObjectCreate","objectKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternal","getOwnPropertySymbolsModule","getOwnPropertyDescriptorModule","definePropertyModule","propertyIsEnumerableModule","createNonEnumerableProperty","redefine","shared","sharedKey","hiddenKeys","uid","wellKnownSymbol","wrappedWellKnownSymbolModule","defineWellKnownSymbol","setToStringTag","InternalStateModule","$forEach","forEach","HIDDEN","SYMBOL","PROTOTYPE","TO_PRIMITIVE","setInternalState","set","getInternalState","getterFor","ObjectPrototype","Object","$Symbol","Symbol","$stringify","nativeGetOwnPropertyDescriptor","f","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","get","this","value","a","O","P","Attributes","ObjectPrototypeDescriptor","wrap","tag","description","symbol","type","isSymbol","it","$defineProperty","defineProperty","key","enumerable","$defineProperties","defineProperties","Properties","properties","keys","concat","$getOwnPropertySymbols","$propertyIsEnumerable","propertyIsEnumerable","V","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","descriptor","$getOwnPropertyNames","getOwnPropertyNames","names","result","push","getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","TypeError","arguments","length","String","setter","configurable","toString","name","unsafe","forced","sham","target","stat","for","string","keyFor","sym","useSetter","useSimple","create","stringify","replacer","space","$replacer","args","index","apply","valueOf","setGlobal","copyConstructorProperties","isForced","options","source","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","prototype","noTargetGet","check","Math","globalThis","window","self","Function","IE8_DOM_DEFINE","error","exec","NASHORN_BUG","1","bitmap","writable","IndexedObject","requireObjectCoercible","classof","split","slice","input","PREFERRED_STRING","fn","val","hasOwnProperty","createElement","document","EXISTS","object","inspectSource","enforceInternalState","enforce","TEMPLATE","simple","join","store","functionToString","SHARED","NATIVE_WEAK_MAP","objectHas","WeakMap","wmget","wmhas","wmset","metadata","STATE","TYPE","state","test","version","mode","copyright","id","postfix","random","ownKeys","path","aFunction","variable","namespace","method","internalObjectKeys","indexOf","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","toInteger","min","argument","ceil","floor","isNaN","max","integer","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","replace","toLowerCase","iterator","Array","arg","activeXDocument","enumBugKeys","html","documentCreateElement","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","style","display","appendChild","src","contentWindow","open","F","windowNames","getWindowNames","createWellKnownSymbol","withoutSetter","NAME","TO_STRING_TAG","TAG","bind","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","that","specificCreate","boundFunction","map","filter","some","every","find","findIndex","b","c","SPECIES","originalArray","C","constructor","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","regexp","desc","createProperty","arrayMethodHasSpeciesSupport","V8_VERSION","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","array","SPECIES_SUPPORT","isConcatSpreadable","spreadable","proto","k","len","E","A","n","propertyKey","METHOD_NAME","foo","Boolean","match","userAgent","process","versions","v8","copyWithin","addToUnscopables","start","to","from","end","count","inc","UNSCOPABLES","ArrayPrototype","$every","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","cache","thrower","ACCESSORS","argument0","argument1","fill","argumentsLength","endPos","$filter","HAS_SPECIES_SUPPORT","$find","FIND","SKIPS_HOLES","$findIndex","FIND_INDEX","flattenIntoArray","flat","depthArg","sourceLen","original","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","flatMap","checkCorrectnessOfIteration","iterable","callWithSafeIterationClosing","isArrayIteratorMethod","getIteratorMethod","arrayLike","step","next","mapfn","mapping","iteratorMethod","done","ENTRIES","returnMethod","Iterators","ITERATOR","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","SAFE_CLOSING","called","iteratorWithReturn","return","SKIP_CLOSING","ITERATION_SUPPORT","$includes","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","defineIterator","ARRAY_ITERATOR","iterated","kind","Arguments","createIteratorConstructor","getPrototypeOf","setPrototypeOf","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","VALUES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","values","entries","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","PrototypeOfArrayIteratorPrototype","arrayIterator","CORRECT_PROTOTYPE_GETTER","aPossiblePrototype","CORRECT_SETTER","__proto__","nativeJoin","ES3_STRINGS","separator","lastIndexOf","nativeLastIndexOf","$map","of","$reduce","left","reduce","IS_RIGHT","memo","right","$reduceRight","reduceRight","nativeReverse","reverse","0","nativeSlice","Constructor","fin","$some","nativeSort","sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","comparefn","setSpecies","CONSTRUCTOR_NAME","splice","deleteCount","insertCount","actualDeleteCount","actualStart","arrayBufferModule","ARRAY_BUFFER","ArrayBuffer","NATIVE_ARRAY_BUFFER","redefineAll","anInstance","toIndex","IEEE754","arrayFill","DATA_VIEW","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","RangeError","packIEEE754","pack","unpackIEEE754","unpack","packInt8","number","packInt16","packInt32","unpackInt32","buffer","packFloat32","packFloat64","addGetter","view","isLittleEndian","intIndex","byteLength","bytes","byteOffset","conversion","NaN","ArrayBufferPrototype","j","testView","nativeSetInt8","setInt8","getInt8","setUint8","DataView","bufferLength","offset","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","abs","pow","log","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","sign","nBits","ArrayBufferViewCore","NATIVE_ARRAY_BUFFER_VIEWS","isView","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","isPrototypeOf","TYPED_ARRAY_TAG","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","klass","isTypedArray","aTypedArray","aTypedArrayConstructor","ARRAY","TypedArrayConstructor","exportTypedArrayMethod","property","exportTypedArrayStaticMethod","ArrayBufferModule","speciesConstructor","nativeArrayBufferSlice","first","viewSource","viewTarget","defaultConstructor","S","now","Date","getTime","toISOString","padStart","DatePrototype","nativeDateToISOString","isFinite","date","year","getUTCFullYear","milliseconds","getUTCMilliseconds","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","repeat","IS_END","maxLength","fillString","fillLen","stringFiller","stringLength","fillStr","intMaxLength","str","Infinity","toJSON","pv","dateToPrimitive","hint","INVALID_DATE","TO_STRING","nativeDateToString","factories","partArgs","bound","argsLength","list","construct","HAS_INSTANCE","FunctionPrototype","FunctionPrototypeToString","nameRE","re","low","hi","fix","prev","charAt","charCodeAt","JSON","collection","collectionStrong","init","Map","InternalMetadataModule","iterate","inheritIfRequired","wrapper","common","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","nativeMethod","add","getConstructor","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","clear","setStrong","FREEZING","METADATA","isExtensible","setMetadata","objectID","weakData","meta","fastKey","getWeakData","onFreeze","preventExtensions","Result","stopped","AS_ENTRIES","IS_ITERATOR","iterFn","stop","Wrapper","NewTarget","NewTargetPrototype","internalStateGetterFor","last","size","define","previous","entry","getEntry","removed","delete","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","log1p","nativeAcosh","acosh","sqrt","Number","MAX_VALUE","x","nativeAsinh","asinh","nativeAtanh","atanh","cbrt","LOG2E","clz32","expm1","nativeCosh","cosh","t","nativeExpm1","exp","fround","EPSILON","EPSILON32","MAX32","MIN32","$abs","$sign","$hypot","hypot","value1","value2","div","sum","aLen","larg","nativeImul","imul","y","UINT16","xn","yn","xl","yl","LOG10E","log10","log2","sinh","tanh","trunc","trim","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","third","radix","maxCode","digits","code","parseInt","NumberWrapper","whitespace","ltrim","RegExp","rtrim","globalIsFinite","isInteger","isSafeInteger","MIN_SAFE_INTEGER","parseFloat","whitespaces","$parseFloat","trimmedString","$parseInt","hex","thisNumberValue","nativeToFixed","toFixed","acc","fractionDigits","e","z","fractDigits","multiply","c2","divide","dataToString","s","x2","nativeToPrecision","toPrecision","precision","assign","nativeAssign","B","alphabet","chr","T","__defineGetter__","getter","__defineSetter__","$entries","TO_ENTRIES","nativeFreeze","freeze","fromEntries","obj","v","FAILS_ON_PRIMITIVES","getOwnPropertyDescriptors","nativeGetPrototypeOf","is","nativeIsExtensible","nativeIsFrozen","isFrozen","nativeIsSealed","isSealed","nativeKeys","__lookupGetter__","__lookupSetter__","nativePreventExtensions","nativeSeal","seal","$values","parseFloatImplementation","parseIntImplementation","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newPromiseCapability","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","PromiseRejectionEvent","promise","resolve","FakePromise","then","INCORRECT_ITERATION","all","isThenable","notify","isReject","notified","chain","reactions","ok","exited","reaction","handler","fail","reject","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","event","initEvent","isUnhandled","emit","parent","unwrap","internalReject","internalResolve","Promise","executor","onFulfilled","onRejected","catch","fetch","r","capability","$promiseResolve","counter","remaining","alreadyCalled","race","defer","channel","port","IS_IOS","location","setImmediate","clearImmediate","MessageChannel","Dispatch","queue","ONREADYSTATECHANGE","run","runner","listener","post","postMessage","protocol","host","nextTick","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","flush","head","toggle","node","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","createTextNode","observe","characterData","promiseCapability","PromiseCapability","$$resolve","$$reject","console","allSettled","status","real","finally","onFinally","isFunction","nativeApply","functionApply","thisArgument","argumentsList","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","Reflect","attributes","deleteProperty","receiver","objectGetPrototypeOf","objectIsExtensible","objectPreventExtensions","existingDescriptor","ownDescriptor","objectSetPrototypeOf","isRegExp","getFlags","stickyHelpers","MATCH","NativeRegExp","RegExpPrototype","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","RegExpWrapper","pattern","flags","sticky","thisIsRegExp","patternIsRegExp","flagsAreUndefined","proxy","ignoreCase","multiline","dotAll","unicode","RE","lastIndex","BROKEN_CARET","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","charsAdded","strCopy","objectDefinePropertyModule","regExpFlags","execCalled","DELEGATES_TO_EXEC","nativeTest","Error","nativeToString","R","p","rf","Set","codeAt","codePointAt","pos","CONVERT_TO_STRING","second","position","notARegExp","correctIsRegExpLogic","nativeEndsWith","endsWith","CORRECT_IS_REGEXP_LOGIC","searchString","endPosition","search","fromCharCode","nativeFromCodePoint","fromCodePoint","elements","STRING_ITERATOR","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","res","rx","fullUnicode","matchStr","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","groups","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","DELEGATES_TO_SYMBOL","nativeRegExpMethod","arg2","forceStringMethod","regexMethod","getRegExpFlags","MATCH_ALL","REGEXP_STRING","REGEXP_STRING_ITERATOR","regExpBuiltinExec","nativeMatchAll","matchAll","WORKS_WITH_NON_GLOBAL_REGEX","$RegExpStringIterator","RegExpStringIterator","$matchAll","flagsValue","$padEnd","padEnd","$padStart","raw","template","rawTemplate","literalSegments","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","UNSAFE_SUBSTITUTE","searchValue","replaceValue","functionalReplace","results","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","symbols","ch","capture","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","callRegExpExec","arrayPush","MAX_UINT32","SUPPORTS_Y","SPLIT","nativeSplit","internalSplit","limit","lim","lastLength","output","lastLastIndex","separatorCopy","splitter","unicodeMatching","q","nativeStartsWith","startsWith","$trim","forcedStringTrimMethod","$trimEnd","trimEnd","trimRight","$trimStart","trimStart","trimLeft","createHTML","forcedStringHTMLMethod","anchor","quot","attribute","p1","big","blink","bold","fixed","fontcolor","color","fontsize","italics","link","url","small","strike","sub","sup","createTypedArrayConstructor","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","toOffset","typedArrayFrom","round","BYTES_PER_ELEMENT","WRONG_LENGTH","fromList","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","BYTES","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","addElement","typedArrayOffset","$length","$len","toPositiveInteger","$copyWithin","$fill","predicate","ArrayIterators","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","$join","$lastIndexOf","middle","$slice","$sort","subarray","begin","beginIndex","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","arrayJoin","InternalWeakMap","collectionWeak","enforceIternalState","IS_IE11","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","frozen","ArrayIterationModule","$has","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","WeakSet","getInternalAggregateErrorState","$AggregateError","AggregateError","errors","message","errorsArray","isFrozenStringArray","allowUndefined","isTemplateObject","lastItem","AsyncIteratorPrototype","AsyncIteratorConstructor","AsyncIterator","USE_FUNCTION_CONSTRUCTOR","ASYNC_ITERATOR","PassedAsyncIteratorPrototype","AsyncIteratorProxy","createAsyncIteratorProxy","asIndexedPairs","$return","$$return","$throw","$$throw","nextHandler","throw","loop","err","drop","IS_TO_ARRAY","IS_FOR_EACH","toArray","filterer","selected","getAsyncIteratorMethod","innerIterator","outerLoop","mapped","innerNext","innerLoop","error2","error1","usingIterator","reducer","noInitial","accumulator","take","$toArray","getCompositeKeyNode","initializer","compositeKey","Node","primitives","objectsByIndex","IS_OBJECT","root","active","compositeSymbol","NativeIterator","Iterator","IteratorProxy","createIteratorProxy","collectionDeleteAll","deleteAll","wasDeleted","remover","allDeleted","getMapIterator","getIterator","newMap","findKey","nextItem","groupBy","keyDerivative","derivedKey","sameValueZero","keyBy","keyOf","mapKeys","mapValues","merge","update","callback","isPresentInMap","updateOrInsert","upsert","updateFn","insertFn","clamp","lower","upper","DEG_PER_RAD","PI","RAD_PER_DEG","degrees","radians","scale","fscale","inLow","inHigh","outLow","outHigh","iaddh","x0","x1","y0","y1","$x0","$y0","imulh","u","$u","$v","u0","v0","u1","v1","isubh","numberIsFinite","SEEDED_RANDOM","SEEDED_RANDOM_GENERATOR","$SeededRandomGenerator","SeededRandomGenerator","seed","seededPRNG","signbit","umulh","INVALID_NUMBER_REPRESENTATION","valid","fromString","mathNum","SyntaxError","ObjectIterator","iterateEntries","OBJECT_ITERATOR","iterateKeys","iterateValues","OBSERVABLE","getMethod","cleanupSubscription","subscriptionState","cleanup","subscriptionClosed","observer","subscription","closed","subscriptionObserver","Subscription","subscriber","SubscriptionObserver","unsubscribe","nextMethod","errorMethod","complete","completeMethod","$Observable","Observable","subscribe","observableMethod","observable","items","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","try","ReflectMetadataModule","toMetadataKey","toKey","ordinaryDefineOwnMetadata","defineMetadata","metadataKey","metadataValue","targetKey","getOrCreateMetadataMap","targetMetadata","keyMetadata","getMap","MetadataKey","metadataMap","MetadataValue","_","deleteMetadata","ordinaryHasOwnMetadata","ordinaryGetOwnMetadata","ordinaryGetMetadata","getMetadata","ordinaryOwnMetadataKeys","ordinaryMetadataKeys","oKeys","iter","pKeys","getMetadataKeys","getOwnMetadata","getOwnMetadataKeys","ordinaryHasMetadata","hasMetadata","hasOwnMetadata","decorator","collectionAddAll","addAll","adder","difference","newSet","getSetIterator","intersection","hasCheck","isDisjointFrom","isSubsetOf","otherSet","isSupersetOf","sep","symmetricDifference","union","at","StringMultibyteModule","$StringIterator","StringIterator","codePoint","codePoints","replaceAll","IS_REG_EXP","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","ArrayIteratorMethods","ArrayValues","isNode","scheduler","timeout","boundArgs","setInterval","EOF","USE_NATIVE_URL","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","URL","URLSearchParams","getInternalSearchParamsState","getState","getInternalURLState","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","ipv4","parts","pop","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","serializeHost","ignore0","unshift","ipv6","maxIndex","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet"," ","\"","<",">","`","pathPercentEncodeSet","#","?","{","}","userinfoPercentEncodeSet","/",":",";","=","@","[","\\","]","^","|","encodeURIComponent","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","username","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","shortenURLsPath","pathSize","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","base","bufferCodePoints","failure","segment","seenAt","seenBracket","seenPasswordToken","query","fragment","encodedCodePoints","shift","URLConstructor","baseState","urlString","searchParams","searchParamsState","updateSearchParams","updateURL","href","serializeURL","origin","getOrigin","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","pathname","getPathname","getSearch","getSearchParams","hash","getHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","stringFromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","encode","currentValue","inputLength","extra","ucs2decode","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","label","encoded","labels","hasOwn","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","plus","sequences","percentSequence","percentDecode","sequence","decodeURIComponent","deserialize","!","'","(",")","~","%20","serialize","parseSearchParams","validateArgumentsLength","passed","required","URLSearchParamsIterator","params","URLSearchParamsConstructor","entryIterator","entryNext","URLSearchParamsPrototype","append","getAll","found","entriesIndex","sliceIndex","body","headers","d","o","toStringTag","__esModule","ns","getDefault","getModuleExports"],"mappings":";;;;;;CAMC,SAAUA,IAAa,aAKd,SAASC,oBAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,OAAOC,EAAiBD,GAAUE,QAGnC,IAAIC,EAASF,EAAiBD,GAAY,CACzCI,EAAGJ,EACHK,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQN,GAAUO,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASH,qBAG/DI,EAAOE,GAAI,EAGJF,EAAOD,QAzBsB,IAAUI,EAE3CL,EAAAA,EAAmB,GA4BvBF,oBAAoBS,EA9B2BF,EAsF/C,CAEJ,SAAUH,EAAQD,EAASH,GAEjCA,EAAoB,GACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBA,EAAoB,KACpBI,EAAOD,QAAUH,EAAoB,MAK/B,SAAUI,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBW,EAASX,EAAoB,GAC7BY,EAAaZ,EAAoB,IACjCa,EAAUb,EAAoB,IAC9Bc,EAAcd,EAAoB,GAClCe,EAAgBf,EAAoB,IACpCgB,EAAoBhB,EAAoB,IACxCiB,EAAQjB,EAAoB,GAC5BkB,EAAMlB,EAAoB,IAC1BmB,EAAUnB,EAAoB,IAC9BoB,EAAWpB,EAAoB,IAC/BqB,EAAWrB,EAAoB,IAC/BsB,EAAWtB,EAAoB,IAC/BuB,EAAkBvB,EAAoB,GACtCwB,EAAcxB,EAAoB,IAClCyB,EAA2BzB,EAAoB,GAC/C0B,EAAqB1B,EAAoB,IACzC2B,EAAa3B,EAAoB,IACjC4B,EAA4B5B,EAAoB,IAChD6B,EAA8B7B,EAAoB,IAClD8B,EAA8B9B,EAAoB,IAClD+B,EAAiC/B,EAAoB,GACrDgC,EAAuBhC,EAAoB,IAC3CiC,EAA6BjC,EAAoB,GACjDkC,EAA8BlC,EAAoB,IAClDmC,EAAWnC,EAAoB,IAC/BoC,EAASpC,EAAoB,IAC7BqC,EAAYrC,EAAoB,IAChCsC,EAAatC,EAAoB,IACjCuC,EAAMvC,EAAoB,IAC1BwC,EAAkBxC,EAAoB,IACtCyC,EAA+BzC,EAAoB,IACnD0C,EAAwB1C,EAAoB,IAC5C2C,EAAiB3C,EAAoB,IACrC4C,EAAsB5C,EAAoB,IAC1C6C,EAAW7C,EAAoB,IAAI8C,QAEnCC,EAASV,EAAU,UACnBW,EAAS,SACTC,EAAY,YACZC,EAAeV,EAAgB,eAC/BW,EAAmBP,EAAoBQ,IACvCC,EAAmBT,EAAoBU,UAAUN,GACjDO,EAAkBC,OAAOP,GACzBQ,EAAU9C,EAAO+C,OACjBC,EAAa/C,EAAW,OAAQ,aAChCgD,EAAiC7B,EAA+B8B,EAChEC,EAAuB9B,EAAqB6B,EAC5CE,EAA4BlC,EAA4BgC,EACxDG,EAA6B/B,EAA2B4B,EACxDI,EAAa7B,EAAO,WACpB8B,EAAyB9B,EAAO,cAChC+B,GAAyB/B,EAAO,6BAChCgC,GAAyBhC,EAAO,6BAChCiC,GAAwBjC,EAAO,OAC/BkC,GAAU3D,EAAO2D,QAEjBC,IAAcD,KAAYA,GAAQrB,KAAeqB,GAAQrB,GAAWuB,UAGpEC,GAAsB3D,GAAeG,EAAM,WAC7C,OAES,GAFFS,EAAmBoC,EAAqB,GAAI,IAAK,CACtDY,IAAK,WAAc,OAAOZ,EAAqBa,KAAM,IAAK,CAAEC,MAAO,IAAKC,MACtEA,IACD,SAAUC,EAAGC,EAAGC,GACnB,IAAIC,EAA4BrB,EAA+BL,EAAiBwB,GAC5EE,UAAkC1B,EAAgBwB,GACtDjB,EAAqBgB,EAAGC,EAAGC,GACvBC,GAA6BH,IAAMvB,GACrCO,EAAqBP,EAAiBwB,EAAGE,IAEzCnB,EAEAoB,GAAO,SAAUC,EAAKC,GACxB,IAAIC,EAASpB,EAAWkB,GAAOzD,EAAmB+B,EAAQR,IAO1D,OANAE,EAAiBkC,EAAQ,CACvBC,KAAMtC,EACNmC,IAAKA,EACLC,YAAaA,IAEVtE,IAAauE,EAAOD,YAAcA,GAChCC,GAGLE,GAAWvE,EAAoB,SAAUwE,GAC3C,MAAoB,iBAANA,GACZ,SAAUA,GACZ,OAAOhC,OAAOgC,aAAe/B,GAG3BgC,GAAkB,SAASC,eAAeZ,EAAGC,EAAGC,GAC9CF,IAAMvB,GAAiBkC,GAAgBvB,EAAwBa,EAAGC,GACtE3D,EAASyD,GACT,IAAIa,EAAMnE,EAAYuD,GAAG,GAEzB,OADA1D,EAAS2D,GACL9D,EAAI+C,EAAY0B,IACbX,EAAWY,YAIV1E,EAAI4D,EAAG/B,IAAW+B,EAAE/B,GAAQ4C,KAAMb,EAAE/B,GAAQ4C,IAAO,GACvDX,EAAatD,EAAmBsD,EAAY,CAAEY,WAAYnE,EAAyB,GAAG,OAJjFP,EAAI4D,EAAG/B,IAASe,EAAqBgB,EAAG/B,EAAQtB,EAAyB,EAAG,KACjFqD,EAAE/B,GAAQ4C,IAAO,GAIVlB,GAAoBK,EAAGa,EAAKX,IAC9BlB,EAAqBgB,EAAGa,EAAKX,IAGpCa,GAAoB,SAASC,iBAAiBhB,EAAGiB,GACnD1E,EAASyD,GACT,IAAIkB,EAAazE,EAAgBwE,GAC7BE,EAAOtE,EAAWqE,GAAYE,OAAOC,GAAuBH,IAIhE,OAHAnD,EAASoD,EAAM,SAAUN,GAClB7E,IAAesF,GAAsB5F,KAAKwF,EAAYL,IAAMF,GAAgBX,EAAGa,EAAKK,EAAWL,MAE/Fb,GAOLsB,GAAwB,SAASC,qBAAqBC,GACxD,IAAIvB,EAAIvD,EAAY8E,GAAG,GACnBV,EAAa5B,EAA2BxD,KAAKmE,KAAMI,GACvD,QAAIJ,OAASpB,GAAmBrC,EAAI+C,EAAYc,KAAO7D,EAAIgD,EAAwBa,QAC5Ea,IAAe1E,EAAIyD,KAAMI,KAAO7D,EAAI+C,EAAYc,IAAM7D,EAAIyD,KAAM5B,IAAW4B,KAAK5B,GAAQgC,KAAKa,IAGlGW,GAA4B,SAASC,yBAAyB1B,EAAGC,GACnE,IAAIS,EAAKjE,EAAgBuD,GACrBa,EAAMnE,EAAYuD,GAAG,GACzB,GAAIS,IAAOjC,IAAmBrC,EAAI+C,EAAY0B,IAASzE,EAAIgD,EAAwByB,GAAnF,CACA,IAAIc,EAAa7C,EAA+B4B,EAAIG,GAIpD,OAHIc,IAAcvF,EAAI+C,EAAY0B,IAAUzE,EAAIsE,EAAIzC,IAAWyC,EAAGzC,GAAQ4C,KACxEc,EAAWb,YAAa,GAEnBa,IAGLC,GAAuB,SAASC,oBAAoB7B,GACtD,IAAI8B,EAAQ7C,EAA0BxC,EAAgBuD,IAClD+B,EAAS,GAIb,OAHAhE,EAAS+D,EAAO,SAAUjB,GACnBzE,EAAI+C,EAAY0B,IAASzE,EAAIoB,EAAYqD,IAAMkB,EAAOC,KAAKnB,KAE3DkB,GAGLV,GAAyB,SAASY,sBAAsBjC,GAC1D,IAAIkC,EAAsBlC,IAAMvB,EAC5BqD,EAAQ7C,EAA0BiD,EAAsB9C,EAAyB3C,EAAgBuD,IACjG+B,EAAS,GAMb,OALAhE,EAAS+D,EAAO,SAAUjB,IACpBzE,EAAI+C,EAAY0B,IAAUqB,IAAuB9F,EAAIqC,EAAiBoC,IACxEkB,EAAOC,KAAK7C,EAAW0B,MAGpBkB,GAKJ9F,IAcHoB,GAbAsB,EAAU,SAASC,SACjB,GAAIiB,gBAAgBlB,EAAS,MAAMwD,UAAU,+BAC7C,IAAI7B,EAAe8B,UAAUC,QAAUD,UAAU,KAAOnH,GAAwBqH,OAAOF,UAAU,IAA7BnH,GAChEoF,EAAM5C,EAAI6C,GACViC,EAAS,SAAUzC,GACjBD,OAASpB,GAAiB8D,EAAO7G,KAAK0D,EAAwBU,GAC9D1D,EAAIyD,KAAM5B,IAAW7B,EAAIyD,KAAK5B,GAASoC,KAAMR,KAAK5B,GAAQoC,IAAO,GACrEV,GAAoBE,KAAMQ,EAAK1D,EAAyB,EAAGmD,KAG7D,OADI9D,GAAeyD,IAAYE,GAAoBlB,EAAiB4B,EAAK,CAAEmC,cAAc,EAAMlE,IAAKiE,IAC7FnC,GAAKC,EAAKC,KAGFnC,GAAY,WAAY,SAASsE,WAChD,OAAOlE,EAAiBsB,MAAMQ,MAGhChD,EAASsB,EAAS,gBAAiB,SAAU2B,GAC3C,OAAOF,GAAK3C,EAAI6C,GAAcA,KAGhCnD,EAA2B4B,EAAIuC,GAC/BpE,EAAqB6B,EAAI4B,GACzB1D,EAA+B8B,EAAI0C,GACnC3E,EAA0BiC,EAAIhC,EAA4BgC,EAAI6C,GAC9D5E,EAA4B+B,EAAIsC,GAEhC1D,EAA6BoB,EAAI,SAAU2D,GACzC,OAAOtC,GAAK1C,EAAgBgF,GAAOA,IAGjC1G,IAEFgD,EAAqBL,EAAQR,GAAY,cAAe,CACtDqE,cAAc,EACd5C,IAAK,SAASU,cACZ,OAAO/B,EAAiBsB,MAAMS,eAG7BvE,GACHsB,EAASoB,EAAiB,uBAAwB6C,GAAuB,CAAEqB,QAAQ,MAKzF/G,EAAE,CAAEC,QAAQ,EAAMuE,MAAM,EAAMwC,QAAS3G,EAAe4G,MAAO5G,GAAiB,CAC5E2C,OAAQD,IAGVZ,EAASlB,EAAW0C,IAAwB,SAAUmD,GACpD9E,EAAsB8E,KAGxB9G,EAAE,CAAEkH,OAAQ5E,EAAQ6E,MAAM,EAAMH,QAAS3G,GAAiB,CAGxD+G,MAAO,SAAUnC,GACf,IAAIoC,EAASX,OAAOzB,GACpB,GAAIzE,EAAIiD,GAAwB4D,GAAS,OAAO5D,GAAuB4D,GACvE,IAAI1C,EAAS5B,EAAQsE,GAGrB,OADA3D,GADAD,GAAuB4D,GAAU1C,GACA0C,EAC1B1C,GAIT2C,OAAQ,SAASA,OAAOC,GACtB,IAAK1C,GAAS0C,GAAM,MAAMhB,UAAUgB,EAAM,oBAC1C,GAAI/G,EAAIkD,GAAwB6D,GAAM,OAAO7D,GAAuB6D,IAEtEC,UAAW,WAAc3D,IAAa,GACtC4D,UAAW,WAAc5D,IAAa,KAGxC7D,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,QAAS3G,EAAe4G,MAAO7G,GAAe,CAG9EsH,OA3HY,SAASA,OAAOtD,EAAGiB,GAC/B,OAAOA,IAAehG,GAAY2B,EAAmBoD,GAAKe,GAAkBnE,EAAmBoD,GAAIiB,IA6HnGL,eAAgBD,GAGhBK,iBAAkBD,GAGlBW,yBAA0BD,KAG5B7F,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,QAAS3G,GAAiB,CAG1D4F,oBAAqBD,GAGrBK,sBAAuBZ,KAKzBzF,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,OAAQzG,EAAM,WAAca,EAA4B+B,EAAE,MAAU,CACpGkD,sBAAuB,SAASA,sBAAsBvB,GACpD,OAAO1D,EAA4B+B,EAAEvC,EAASkE,OAM9C7B,GAWFjD,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,EAAMH,QAVH3G,GAAiBE,EAAM,WAClD,IAAIoE,EAAS5B,IAEb,MAA+B,UAAxBE,EAAW,CAAC0B,KAEe,MAA7B1B,EAAW,CAAEkB,EAAGQ,KAEc,MAA9B1B,EAAWH,OAAO6B,OAGwC,CAE/DgD,UAAW,SAASA,UAAU7C,EAAI8C,EAAUC,GAI1C,IAHA,IAEIC,EAFAC,EAAO,CAACjD,GACRkD,EAAQ,EAEcA,EAAnBxB,UAAUC,QAAgBsB,EAAK3B,KAAKI,UAAUwB,MAErD,IAAKtH,EADLoH,EAAYF,IACe9C,IAAOzF,MAAawF,GAASC,GAMxD,OALKrE,EAAQmH,KAAWA,EAAW,SAAU3C,EAAKf,GAEhD,GADwB,mBAAb4D,IAAyB5D,EAAQ4D,EAAUhI,KAAKmE,KAAMgB,EAAKf,KACjEW,GAASX,GAAQ,OAAOA,IAE/B6D,EAAK,GAAKH,EACH3E,EAAWgF,MAAM,KAAMF,MAO/BhF,EAAQR,GAAWC,IACtBhB,EAA4BuB,EAAQR,GAAYC,EAAcO,EAAQR,GAAW2F,SAInFjG,EAAec,EAAST,GAExBV,EAAWS,IAAU,GAKf,SAAU3C,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GAC7BwG,EAA2BxG,EAAoB,GAAG6D,EAClD3B,EAA8BlC,EAAoB,IAClDmC,EAAWnC,EAAoB,IAC/B6I,EAAY7I,EAAoB,IAChC8I,EAA4B9I,EAAoB,IAChD+I,EAAW/I,EAAoB,IAgBnCI,EAAOD,QAAU,SAAU6I,EAASC,GAClC,IAGYrB,EAAQjC,EAAKuD,EAAgBC,EAAgB1C,EAHrD2C,EAASJ,EAAQpB,OACjByB,EAASL,EAAQrI,OACjB2I,EAASN,EAAQnB,KASrB,GANED,EADEyB,EACO1I,EACA2I,EACA3I,EAAOyI,IAAWP,EAAUO,EAAQ,KAEnCzI,EAAOyI,IAAW,IAAIG,UAEtB,IAAK5D,KAAOsD,EAAQ,CAQ9B,GAPAE,EAAiBF,EAAOtD,GAGtBuD,EAFEF,EAAQQ,aACV/C,EAAaD,EAAyBoB,EAAQjC,KACfc,EAAW7B,MACpBgD,EAAOjC,IACtBoD,EAASM,EAAS1D,EAAMyD,GAAUE,EAAS,IAAM,KAAO3D,EAAKqD,EAAQtB,SAE/DwB,IAAmBnJ,GAAW,CAC3C,UAAWoJ,UAA0BD,EAAgB,SACrDJ,EAA0BK,EAAgBD,IAGxCF,EAAQrB,MAASuB,GAAkBA,EAAevB,OACpDzF,EAA4BiH,EAAgB,QAAQ,GAGtDhH,EAASyF,EAAQjC,EAAKwD,EAAgBH,MAOpC,SAAU5I,EAAQD,GAExB,IAAIsJ,EAAQ,SAAUjE,GACpB,OAAOA,GAAMA,EAAGkE,MAAQA,MAAQlE,GAIlCpF,EAAOD,QAELsJ,EAA2B,iBAAdE,YAA0BA,aACvCF,EAAuB,iBAAVG,QAAsBA,SACnCH,EAAqB,iBAARI,MAAoBA,OACjCJ,EAAuB,iBAAV9I,QAAsBA,SAEnCmJ,SAAS,cAATA,IAKI,SAAU1J,EAAQD,EAASH,GAEjC,IAAIc,EAAcd,EAAoB,GAClCiC,EAA6BjC,EAAoB,GACjDyB,EAA2BzB,EAAoB,GAC/CuB,EAAkBvB,EAAoB,GACtCwB,EAAcxB,EAAoB,IAClCkB,EAAMlB,EAAoB,IAC1B+J,EAAiB/J,EAAoB,IAErC4D,EAAiCJ,OAAOgD,yBAI5CrG,EAAQ0D,EAAI/C,EAAc8C,EAAiC,SAAS4C,yBAAyB1B,EAAGC,GAG9F,GAFAD,EAAIvD,EAAgBuD,GACpBC,EAAIvD,EAAYuD,GAAG,GACfgF,EAAgB,IAClB,OAAOnG,EAA+BkB,EAAGC,GACzC,MAAOiF,IACT,GAAI9I,EAAI4D,EAAGC,GAAI,OAAOtD,GAA0BQ,EAA2B4B,EAAErD,KAAKsE,EAAGC,GAAID,EAAEC,MAMvF,SAAU3E,EAAQD,EAASH,GAEjC,IAAIiB,EAAQjB,EAAoB,GAGhCI,EAAOD,SAAWc,EAAM,WACtB,OAA8E,GAAvEuC,OAAOkC,eAAe,GAAI,EAAG,CAAEhB,IAAK,WAAc,OAAO,KAAQ,MAMpE,SAAUtE,EAAQD,GAExBC,EAAOD,QAAU,SAAU8J,GACzB,IACE,QAASA,IACT,MAAOD,GACP,OAAO,KAOL,SAAU5J,EAAQD,EAASH,GAIjC,IAAIgE,EAA6B,GAAGqC,qBAChCG,EAA2BhD,OAAOgD,yBAGlC0D,EAAc1D,IAA6BxC,EAA2BxD,KAAK,CAAE2J,EAAG,GAAK,GAIzFhK,EAAQ0D,EAAIqG,EAAc,SAAS7D,qBAAqBC,GACtD,IAAIG,EAAaD,EAAyB7B,KAAM2B,GAChD,QAASG,GAAcA,EAAWb,YAChC5B,GAKE,SAAU5D,EAAQD,GAExBC,EAAOD,QAAU,SAAUiK,EAAQxF,GACjC,MAAO,CACLgB,aAAuB,EAATwE,GACd9C,eAAyB,EAAT8C,GAChBC,WAAqB,EAATD,GACZxF,MAAOA,KAOL,SAAUxE,EAAQD,EAASH,GAGjC,IAAIsK,EAAgBtK,EAAoB,IACpCuK,EAAyBvK,EAAoB,IAEjDI,EAAOD,QAAU,SAAUqF,GACzB,OAAO8E,EAAcC,EAAuB/E,MAMxC,SAAUpF,EAAQD,EAASH,GAEjC,IAAIiB,EAAQjB,EAAoB,GAC5BwK,EAAUxK,EAAoB,IAE9ByK,EAAQ,GAAGA,MAGfrK,EAAOD,QAAUc,EAAM,WAGrB,OAAQuC,OAAO,KAAK6C,qBAAqB,KACtC,SAAUb,GACb,MAAsB,UAAfgF,EAAQhF,GAAkBiF,EAAMjK,KAAKgF,EAAI,IAAMhC,OAAOgC,IAC3DhC,QAKE,SAAUpD,EAAQD,GAExB,IAAIoH,EAAW,GAAGA,SAElBnH,EAAOD,QAAU,SAAUqF,GACzB,OAAO+B,EAAS/G,KAAKgF,GAAIkF,MAAM,GAAI,KAM/B,SAAUtK,EAAQD,GAIxBC,EAAOD,QAAU,SAAUqF,GACzB,GAAIA,GAAMzF,GAAW,MAAMkH,UAAU,wBAA0BzB,GAC/D,OAAOA,IAMH,SAAUpF,EAAQD,EAASH,GAEjC,IAAIoB,EAAWpB,EAAoB,IAMnCI,EAAOD,QAAU,SAAUwK,EAAOC,GAChC,IAAKxJ,EAASuJ,GAAQ,OAAOA,EAC7B,IAAIE,EAAIC,EACR,GAAIF,GAAoD,mBAAxBC,EAAKF,EAAMpD,YAA4BnG,EAAS0J,EAAMD,EAAGrK,KAAKmK,IAAS,OAAOG,EAC9G,GAAmC,mBAAvBD,EAAKF,EAAM/B,WAA2BxH,EAAS0J,EAAMD,EAAGrK,KAAKmK,IAAS,OAAOG,EACzF,IAAKF,GAAoD,mBAAxBC,EAAKF,EAAMpD,YAA4BnG,EAAS0J,EAAMD,EAAGrK,KAAKmK,IAAS,OAAOG,EAC/G,MAAM7D,UAAU,6CAMZ,SAAU7G,EAAQD,GAExBC,EAAOD,QAAU,SAAUqF,GACzB,MAAqB,iBAAPA,EAAyB,OAAPA,EAA4B,mBAAPA,IAMjD,SAAUpF,EAAQD,GAExB,IAAI4K,EAAiB,GAAGA,eAExB3K,EAAOD,QAAU,SAAUqF,EAAIG,GAC7B,OAAOoF,EAAevK,KAAKgF,EAAIG,KAM3B,SAAUvF,EAAQD,EAASH,GAEjC,IAAIc,EAAcd,EAAoB,GAClCiB,EAAQjB,EAAoB,GAC5BgL,EAAgBhL,EAAoB,IAGxCI,EAAOD,SAAWW,IAAgBG,EAAM,WACtC,OAEQ,GAFDuC,OAAOkC,eAAesF,EAAc,OAAQ,IAAK,CACtDtG,IAAK,WAAc,OAAO,KACzBG,KAMC,SAAUzE,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GAC7BoB,EAAWpB,EAAoB,IAE/BiL,EAAWtK,EAAOsK,SAElBC,EAAS9J,EAAS6J,IAAa7J,EAAS6J,EAASD,eAErD5K,EAAOD,QAAU,SAAUqF,GACzB,OAAO0F,EAASD,EAASD,cAAcxF,GAAM,KAMzC,SAAUpF,EAAQD,EAASH,GAEjC,IAAIc,EAAcd,EAAoB,GAClCgC,EAAuBhC,EAAoB,IAC3CyB,EAA2BzB,EAAoB,GAEnDI,EAAOD,QAAUW,EAAc,SAAUqK,EAAQxF,EAAKf,GACpD,OAAO5C,EAAqB6B,EAAEsH,EAAQxF,EAAKlE,EAAyB,EAAGmD,KACrE,SAAUuG,EAAQxF,EAAKf,GAEzB,OADAuG,EAAOxF,GAAOf,EACPuG,IAMH,SAAU/K,EAAQD,EAASH,GAEjC,IAAIc,EAAcd,EAAoB,GAClC+J,EAAiB/J,EAAoB,IACrCqB,EAAWrB,EAAoB,IAC/BwB,EAAcxB,EAAoB,IAElC8D,EAAuBN,OAAOkC,eAIlCvF,EAAQ0D,EAAI/C,EAAcgD,EAAuB,SAAS4B,eAAeZ,EAAGC,EAAGC,GAI7E,GAHA3D,EAASyD,GACTC,EAAIvD,EAAYuD,GAAG,GACnB1D,EAAS2D,GACL+E,EAAgB,IAClB,OAAOjG,EAAqBgB,EAAGC,EAAGC,GAClC,MAAOgF,IACT,GAAI,QAAShF,GAAc,QAASA,EAAY,MAAMiC,UAAU,2BAEhE,MADI,UAAWjC,IAAYF,EAAEC,GAAKC,EAAWJ,OACtCE,IAMH,SAAU1E,EAAQD,EAASH,GAEjC,IAAIoB,EAAWpB,EAAoB,IAEnCI,EAAOD,QAAU,SAAUqF,GACzB,IAAKpE,EAASoE,GACZ,MAAMyB,UAAUG,OAAO5B,GAAM,qBAC7B,OAAOA,IAML,SAAUpF,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GAC7BkC,EAA8BlC,EAAoB,IAClDkB,EAAMlB,EAAoB,IAC1B6I,EAAY7I,EAAoB,IAChCoL,EAAgBpL,EAAoB,IACpC4C,EAAsB5C,EAAoB,IAE1CqD,EAAmBT,EAAoB8B,IACvC2G,EAAuBzI,EAAoB0I,QAC3CC,EAAWnE,OAAOA,QAAQqD,MAAM,WAEnCrK,EAAOD,QAAU,SAAU2E,EAAGa,EAAKf,EAAOoE,GACzC,IAAIvB,IAASuB,KAAYA,EAAQvB,OAC7B+D,IAASxC,KAAYA,EAAQpD,WAC7B4D,IAAcR,KAAYA,EAAQQ,YAClB,mBAAT5E,IACS,iBAAPe,GAAoBzE,EAAI0D,EAAO,SAAS1C,EAA4B0C,EAAO,OAAQe,GAC9F0F,EAAqBzG,GAAOqE,OAASsC,EAASE,KAAmB,iBAAP9F,EAAkBA,EAAM,KAEhFb,IAAMnE,GAIE8G,GAEA+B,GAAe1E,EAAEa,KAC3B6F,GAAS,UAFF1G,EAAEa,GAIP6F,EAAQ1G,EAAEa,GAAOf,EAChB1C,EAA4B4C,EAAGa,EAAKf,IATnC4G,EAAQ1G,EAAEa,GAAOf,EAChBiE,EAAUlD,EAAKf,KAUrBkF,SAASP,UAAW,WAAY,SAAShC,WAC1C,MAAsB,mBAAR5C,MAAsBtB,EAAiBsB,MAAMsE,QAAUmC,EAAczG,SAM/E,SAAUvE,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GAC7BkC,EAA8BlC,EAAoB,IAEtDI,EAAOD,QAAU,SAAUwF,EAAKf,GAC9B,IACE1C,EAA4BvB,EAAQgF,EAAKf,GACzC,MAAOoF,GACPrJ,EAAOgF,GAAOf,EACd,OAAOA,IAML,SAAUxE,EAAQD,EAASH,GAEjC,IAAI0L,EAAQ1L,EAAoB,IAE5B2L,EAAmB7B,SAASvC,SAGE,mBAAvBmE,EAAMN,gBACfM,EAAMN,cAAgB,SAAU5F,GAC9B,OAAOmG,EAAiBnL,KAAKgF,KAIjCpF,EAAOD,QAAUuL,EAAMN,eAKjB,SAAUhL,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GAC7B6I,EAAY7I,EAAoB,IAEhC4L,EAAS,qBACTF,EAAQ/K,EAAOiL,IAAW/C,EAAU+C,EAAQ,IAEhDxL,EAAOD,QAAUuL,GAKX,SAAUtL,EAAQD,EAASH,GAEjC,IASIoD,EAAKsB,EAAKxD,EATV2K,EAAkB7L,EAAoB,IACtCW,EAASX,EAAoB,GAC7BoB,EAAWpB,EAAoB,IAC/BkC,EAA8BlC,EAAoB,IAClD8L,EAAY9L,EAAoB,IAChCqC,EAAYrC,EAAoB,IAChCsC,EAAatC,EAAoB,IAkBrC,GAAI6L,EAAiB,CACnB,IAAIH,EAAQ,IAjBA/K,EAAOoL,QAkBfC,EAAQN,EAAMhH,IACduH,EAAQP,EAAMxK,IACdgL,EAAQR,EAAMtI,IAClBA,EAAM,SAAUoC,EAAI2G,GAElB,OADAD,EAAM1L,KAAKkL,EAAOlG,EAAI2G,GACfA,GAETzH,EAAM,SAAUc,GACd,OAAOwG,EAAMxL,KAAKkL,EAAOlG,IAAO,IAElCtE,EAAM,SAAUsE,GACd,OAAOyG,EAAMzL,KAAKkL,EAAOlG,QAEtB,CACL,IAAI4G,EAAQ/J,EAAU,SACtBC,EAAW8J,IAAS,EACpBhJ,EAAM,SAAUoC,EAAI2G,GAElB,OADAjK,EAA4BsD,EAAI4G,EAAOD,GAChCA,GAETzH,EAAM,SAAUc,GACd,OAAOsG,EAAUtG,EAAI4G,GAAS5G,EAAG4G,GAAS,IAE5ClL,EAAM,SAAUsE,GACd,OAAOsG,EAAUtG,EAAI4G,IAIzBhM,EAAOD,QAAU,CACfiD,IAAKA,EACLsB,IAAKA,EACLxD,IAAKA,EACLoK,QA/CY,SAAU9F,GACtB,OAAOtE,EAAIsE,GAAMd,EAAIc,GAAMpC,EAAIoC,EAAI,KA+CnClC,UA5Cc,SAAU+I,GACxB,OAAO,SAAU7G,GACf,IAAI8G,EACJ,IAAKlL,EAASoE,KAAQ8G,EAAQ5H,EAAIc,IAAKF,OAAS+G,EAC9C,MAAMpF,UAAU,0BAA4BoF,EAAO,aACnD,OAAOC,MA6CP,SAAUlM,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GAC7BoL,EAAgBpL,EAAoB,IAEpC+L,EAAUpL,EAAOoL,QAErB3L,EAAOD,QAA6B,mBAAZ4L,GAA0B,cAAcQ,KAAKnB,EAAcW,KAK7E,SAAU3L,EAAQD,EAASH,GAEjC,IAAIoC,EAASpC,EAAoB,IAC7BuC,EAAMvC,EAAoB,IAE1BiG,EAAO7D,EAAO,QAElBhC,EAAOD,QAAU,SAAUwF,GACzB,OAAOM,EAAKN,KAASM,EAAKN,GAAOpD,EAAIoD,MAMjC,SAAUvF,EAAQD,EAASH,GAEjC,IAAIa,EAAUb,EAAoB,IAC9B0L,EAAQ1L,EAAoB,KAE/BI,EAAOD,QAAU,SAAUwF,EAAKf,GAC/B,OAAO8G,EAAM/F,KAAS+F,EAAM/F,GAAOf,IAAU7E,GAAY6E,EAAQ,MAChE,WAAY,IAAIkC,KAAK,CACtB0F,QAAS,QACTC,KAAM5L,EAAU,OAAS,SACzB6L,UAAW,0CAMP,SAAUtM,EAAQD,GAExBC,EAAOD,SAAU,GAKX,SAAUC,EAAQD,GAExB,IAAIwM,EAAK,EACLC,EAAUlD,KAAKmD,SAEnBzM,EAAOD,QAAU,SAAUwF,GACzB,MAAO,UAAYyB,OAAOzB,IAAQ5F,GAAY,GAAK4F,GAAO,QAAUgH,EAAKC,GAASrF,SAAS,MAMvF,SAAUnH,EAAQD,GAExBC,EAAOD,QAAU,IAKX,SAAUC,EAAQD,EAASH,GAEjC,IAAIkB,EAAMlB,EAAoB,IAC1B8M,EAAU9M,EAAoB,IAC9B+B,EAAiC/B,EAAoB,GACrDgC,EAAuBhC,EAAoB,IAE/CI,EAAOD,QAAU,SAAUyH,EAAQqB,GAIjC,IAHA,IAAIhD,EAAO6G,EAAQ7D,GACfvD,EAAiB1D,EAAqB6B,EACtC2C,EAA2BzE,EAA+B8B,EACrDxD,EAAI,EAAGA,EAAI4F,EAAKkB,OAAQ9G,IAAK,CACpC,IAAIsF,EAAMM,EAAK5F,GACVa,EAAI0G,EAAQjC,IAAMD,EAAekC,EAAQjC,EAAKa,EAAyByC,EAAQtD,OAOlF,SAAUvF,EAAQD,EAASH,GAEjC,IAAIY,EAAaZ,EAAoB,IACjC4B,EAA4B5B,EAAoB,IAChD8B,EAA8B9B,EAAoB,IAClDqB,EAAWrB,EAAoB,IAGnCI,EAAOD,QAAUS,EAAW,UAAW,YAAc,SAASkM,QAAQtH,GACpE,IAAIS,EAAOrE,EAA0BiC,EAAExC,EAASmE,IAC5CuB,EAAwBjF,EAA4B+B,EACxD,OAAOkD,EAAwBd,EAAKC,OAAOa,EAAsBvB,IAAOS,IAMpE,SAAU7F,EAAQD,EAASH,GAEjC,IAAI+M,EAAO/M,EAAoB,IAC3BW,EAASX,EAAoB,GAE7BgN,EAAY,SAAUC,GACxB,MAA0B,mBAAZA,EAAyBA,EAAWlN,IAGpDK,EAAOD,QAAU,SAAU+M,EAAWC,GACpC,OAAOjG,UAAUC,OAAS,EAAI6F,EAAUD,EAAKG,KAAeF,EAAUrM,EAAOuM,IACzEH,EAAKG,IAAcH,EAAKG,GAAWC,IAAWxM,EAAOuM,IAAcvM,EAAOuM,GAAWC,KAMrF,SAAU/M,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GAEjCI,EAAOD,QAAUQ,GAKX,SAAUP,EAAQD,EAASH,GAEjC,IAAIoN,EAAqBpN,EAAoB,IAGzCsC,EAFctC,EAAoB,IAETkG,OAAO,SAAU,aAI9C/F,EAAQ0D,EAAIL,OAAOmD,qBAAuB,SAASA,oBAAoB7B,GACrE,OAAOsI,EAAmBtI,EAAGxC,KAMzB,SAAUlC,EAAQD,EAASH,GAEjC,IAAIkB,EAAMlB,EAAoB,IAC1BuB,EAAkBvB,EAAoB,GACtCqN,EAAUrN,EAAoB,IAAIqN,QAClC/K,EAAatC,EAAoB,IAErCI,EAAOD,QAAU,SAAUgL,EAAQvE,GACjC,IAGIjB,EAHAb,EAAIvD,EAAgB4J,GACpB9K,EAAI,EACJwG,EAAS,GAEb,IAAKlB,KAAOb,GAAI5D,EAAIoB,EAAYqD,IAAQzE,EAAI4D,EAAGa,IAAQkB,EAAOC,KAAKnB,GAEnE,KAAsBtF,EAAfuG,EAAMO,QAAgBjG,EAAI4D,EAAGa,EAAMiB,EAAMvG,SAC7CgN,EAAQxG,EAAQlB,IAAQkB,EAAOC,KAAKnB,IAEvC,OAAOkB,IAMH,SAAUzG,EAAQD,EAASH,GAEjC,IAAIuB,EAAkBvB,EAAoB,GACtCsN,EAAWtN,EAAoB,IAC/BuN,EAAkBvN,EAAoB,IAGtCwN,EAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAOC,EAAIC,GAC1B,IAGIhJ,EAHAE,EAAIvD,EAAgBmM,GACpBvG,EAASmG,EAASxI,EAAEqC,QACpBuB,EAAQ6E,EAAgBK,EAAWzG,GAIvC,GAAIsG,GAAeE,GAAMA,GAAI,KAAgBjF,EAATvB,GAGlC,IAFAvC,EAAQE,EAAE4D,OAEG9D,EAAO,OAAO,OAEtB,KAAe8D,EAATvB,EAAgBuB,IAC3B,IAAK+E,GAAe/E,KAAS5D,IAAMA,EAAE4D,KAAWiF,EAAI,OAAOF,GAAe/E,GAAS,EACnF,OAAQ+E,IAAgB,IAI9BrN,EAAOD,QAAU,CAGf0N,SAAUL,GAAa,GAGvBH,QAASG,GAAa,KAMlB,SAAUpN,EAAQD,EAASH,GAEjC,IAAI8N,EAAY9N,EAAoB,IAEhC+N,EAAMrE,KAAKqE,IAIf3N,EAAOD,QAAU,SAAU6N,GACzB,OAAkB,EAAXA,EAAeD,EAAID,EAAUE,GAAW,kBAAoB,IAM/D,SAAU5N,EAAQD,GAExB,IAAI8N,EAAOvE,KAAKuE,KACZC,EAAQxE,KAAKwE,MAIjB9N,EAAOD,QAAU,SAAU6N,GACzB,OAAOG,MAAMH,GAAYA,GAAY,GAAgB,EAAXA,EAAeE,EAAQD,GAAMD,KAMnE,SAAU5N,EAAQD,EAASH,GAEjC,IAAI8N,EAAY9N,EAAoB,IAEhCoO,EAAM1E,KAAK0E,IACXL,EAAMrE,KAAKqE,IAKf3N,EAAOD,QAAU,SAAUuI,EAAOvB,GAChC,IAAIkH,EAAUP,EAAUpF,GACxB,OAAO2F,EAAU,EAAID,EAAIC,EAAUlH,EAAQ,GAAK4G,EAAIM,EAASlH,KAMzD,SAAU/G,EAAQD,GAGxBC,EAAOD,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,YAMI,SAAUC,EAAQD,GAExBA,EAAQ0D,EAAIL,OAAOuD,uBAKb,SAAU3G,EAAQD,EAASH,GAEjC,IAAIiB,EAAQjB,EAAoB,GAE5BsO,EAAc,kBAEdvF,EAAW,SAAUwF,EAASC,GAChC,IAAI5J,EAAQ6J,EAAKC,EAAUH,IAC3B,OAAO3J,GAAS+J,GACZ/J,GAASgK,IACW,mBAAbJ,EAA0BvN,EAAMuN,KACrCA,IAGJE,EAAY3F,EAAS2F,UAAY,SAAU3G,GAC7C,OAAOX,OAAOW,GAAQ8G,QAAQP,EAAa,KAAKQ,eAG9CL,EAAO1F,EAAS0F,KAAO,GACvBG,EAAS7F,EAAS6F,OAAS,IAC3BD,EAAW5F,EAAS4F,SAAW,IAEnCvO,EAAOD,QAAU4I,GAKX,SAAU3I,EAAQD,EAASH,GAEjC,IAAIiB,EAAQjB,EAAoB,GAEhCI,EAAOD,UAAYqD,OAAOuD,wBAA0B9F,EAAM,WAGxD,OAAQmG,OAAO1D,aAMX,SAAUtD,EAAQD,EAASH,GAEjC,IAAIe,EAAgBf,EAAoB,IAExCI,EAAOD,QAAUY,IAEX2C,OAAOiE,MAEkB,iBAAnBjE,OAAOqL,UAKb,SAAU3O,EAAQD,EAASH,GAEjC,IAAIwK,EAAUxK,EAAoB,IAIlCI,EAAOD,QAAU6O,MAAM7N,SAAW,SAASA,QAAQ8N,GACjD,MAAuB,SAAhBzE,EAAQyE,KAMX,SAAU7O,EAAQD,EAASH,GAEjC,IAAIuK,EAAyBvK,EAAoB,IAIjDI,EAAOD,QAAU,SAAU6N,GACzB,OAAOxK,OAAO+G,EAAuByD,MAMjC,SAAU5N,EAAQD,EAASH,GAEjC,IAmDIkP,EAnDA7N,EAAWrB,EAAoB,IAC/B8F,EAAmB9F,EAAoB,IACvCmP,EAAcnP,EAAoB,IAClCsC,EAAatC,EAAoB,IACjCoP,EAAOpP,EAAoB,IAC3BqP,EAAwBrP,EAAoB,IAC5CqC,EAAYrC,EAAoB,IAIhCiD,EAAY,YACZqM,EAAS,SACTC,EAAWlN,EAAU,YAErBmN,EAAmB,aAEnBC,EAAY,SAAUC,GACxB,MAAOC,WAAmBD,EARnB,KAQwCJ,EATxC,KA4CLM,EAAkB,WACpB,IAEEV,EAAkBjE,SAAS4E,QAAU,IAAIC,cAAc,YACvD,MAAO9F,IA1BoB,IAIzB+F,EAFAC,EAyBJJ,EAAkBV,EApCY,SAAUA,GACxCA,EAAgBe,MAAMR,EAAU,KAChCP,EAAgBgB,QAChB,IAAIC,EAAOjB,EAAgBkB,aAAa5M,OAExC,OADA0L,EAAkB,KACXiB,EA+B6BE,CAA0BnB,KAzB1Dc,EAASX,EAAsB,WAG5BiB,MAAMC,QAAU,OACvBnB,EAAKoB,YAAYR,GAEjBA,EAAOS,IAAMrJ,OALJ,gBAMT2I,EAAiBC,EAAOU,cAAczF,UACvB0F,OACfZ,EAAeE,MAAMR,EAAU,sBAC/BM,EAAeG,QACRH,EAAea,GAgBtB,IADA,IAAIzJ,EAASgI,EAAYhI,OAClBA,YAAiByI,EAAgB3M,GAAWkM,EAAYhI,IAC/D,OAAOyI,KAGTtN,EAAWiN,IAAY,EAIvBnP,EAAOD,QAAUqD,OAAO4E,QAAU,SAASA,OAAOtD,EAAGiB,GACnD,IAAIc,EAQJ,OAPU,OAAN/B,GACF0K,EAAiBvM,GAAa5B,EAASyD,GACvC+B,EAAS,IAAI2I,EACbA,EAAiBvM,GAAa,KAE9B4D,EAAO0I,GAAYzK,GACd+B,EAAS+I,IACT7J,IAAehG,GAAY8G,EAASf,EAAiBe,EAAQd,KAMhE,SAAU3F,EAAQD,EAASH,GAEjC,IAAIc,EAAcd,EAAoB,GAClCgC,EAAuBhC,EAAoB,IAC3CqB,EAAWrB,EAAoB,IAC/B2B,EAAa3B,EAAoB,IAIrCI,EAAOD,QAAUW,EAAc0C,OAAOsC,iBAAmB,SAASA,iBAAiBhB,EAAGiB,GACpF1E,EAASyD,GAKT,IAJA,IAGIa,EAHAM,EAAOtE,EAAWoE,GAClBoB,EAASlB,EAAKkB,OACduB,EAAQ,EAEIA,EAATvB,GAAgBnF,EAAqB6B,EAAEiB,EAAGa,EAAMM,EAAKyC,KAAU3C,EAAWJ,IACjF,OAAOb,IAMH,SAAU1E,EAAQD,EAASH,GAEjC,IAAIoN,EAAqBpN,EAAoB,IACzCmP,EAAcnP,EAAoB,IAItCI,EAAOD,QAAUqD,OAAOyC,MAAQ,SAASA,KAAKnB,GAC5C,OAAOsI,EAAmBtI,EAAGqK,KAMzB,SAAU/O,EAAQD,EAASH,GAEjC,IAAIY,EAAaZ,EAAoB,IAErCI,EAAOD,QAAUS,EAAW,WAAY,oBAKlC,SAAUR,EAAQD,EAASH,GAEjC,IAAIuB,EAAkBvB,EAAoB,GACtC+D,EAA4B/D,EAAoB,IAAI6D,EAEpD0D,EAAW,GAAGA,SAEdsJ,EAA+B,iBAAVjH,QAAsBA,QAAUpG,OAAOmD,oBAC5DnD,OAAOmD,oBAAoBiD,QAAU,GAWzCxJ,EAAOD,QAAQ0D,EAAI,SAAS8C,oBAAoBnB,GAC9C,OAAOqL,GAAoC,mBAArBtJ,EAAS/G,KAAKgF,GAVjB,SAAUA,GAC7B,IACE,OAAOzB,EAA0ByB,GACjC,MAAOwE,GACP,OAAO6G,EAAYnG,SAOjBoG,CAAetL,GACfzB,EAA0BxC,EAAgBiE,MAM1C,SAAUpF,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GAC7BoC,EAASpC,EAAoB,IAC7BkB,EAAMlB,EAAoB,IAC1BuC,EAAMvC,EAAoB,IAC1Be,EAAgBf,EAAoB,IACpCgB,EAAoBhB,EAAoB,IAExCqE,EAAwBjC,EAAO,OAC/BsB,EAAS/C,EAAO+C,OAChBqN,EAAwB/P,EAAoB0C,EAASA,GAAUA,EAAOsN,eAAiBzO,EAE3FnC,EAAOD,QAAU,SAAUqH,GAIvB,OAHGtG,EAAImD,EAAuBmD,KAC1BzG,GAAiBG,EAAIwC,EAAQ8D,GAAOnD,EAAsBmD,GAAQ9D,EAAO8D,GACxEnD,EAAsBmD,GAAQuJ,EAAsB,UAAYvJ,IAC9DnD,EAAsBmD,KAM3B,SAAUpH,EAAQD,EAASH,GAEjC,IAAIwC,EAAkBxC,EAAoB,IAE1CG,EAAQ0D,EAAIrB,GAKN,SAAUpC,EAAQD,EAASH,GAEjC,IAAI+M,EAAO/M,EAAoB,IAC3BkB,EAAMlB,EAAoB,IAC1ByC,EAA+BzC,EAAoB,IACnD0F,EAAiB1F,EAAoB,IAAI6D,EAE7CzD,EAAOD,QAAU,SAAU8Q,GACzB,IAAIvN,EAASqJ,EAAKrJ,SAAWqJ,EAAKrJ,OAAS,IACtCxC,EAAIwC,EAAQuN,IAAOvL,EAAehC,EAAQuN,EAAM,CACnDrM,MAAOnC,EAA6BoB,EAAEoN,OAOpC,SAAU7Q,EAAQD,EAASH,GAEjC,IAAI0F,EAAiB1F,EAAoB,IAAI6D,EACzC3C,EAAMlB,EAAoB,IAG1BkR,EAFkBlR,EAAoB,GAEtBwC,CAAgB,eAEpCpC,EAAOD,QAAU,SAAUqF,EAAI2L,EAAK7H,GAC9B9D,IAAOtE,EAAIsE,EAAK8D,EAAS9D,EAAKA,EAAG+D,UAAW2H,IAC9CxL,EAAeF,EAAI0L,EAAe,CAAE5J,cAAc,EAAM1C,MAAOuM,MAO7D,SAAU/Q,EAAQD,EAASH,GAEjC,IAAIoR,EAAOpR,EAAoB,IAC3BsK,EAAgBtK,EAAoB,IACpCsB,EAAWtB,EAAoB,IAC/BsN,EAAWtN,EAAoB,IAC/BqR,EAAqBrR,EAAoB,IAEzC8G,EAAO,GAAGA,KAGV0G,EAAe,SAAUnB,GAC3B,IAAIiF,EAAiB,GAARjF,EACTkF,EAAoB,GAARlF,EACZmF,EAAkB,GAARnF,EACVoF,EAAmB,GAARpF,EACXqF,EAAwB,GAARrF,EAChBsF,EAAmB,GAARtF,GAAaqF,EAC5B,OAAO,SAAUhE,EAAOkE,EAAYC,EAAMC,GASxC,IARA,IAOIlN,EAAOiC,EAPP/B,EAAIxD,EAASoM,GACb7D,EAAOS,EAAcxF,GACrBiN,EAAgBX,EAAKQ,EAAYC,EAAM,GACvC1K,EAASmG,EAASzD,EAAK1C,QACvBuB,EAAQ,EACRN,EAAS0J,GAAkBT,EAC3BzJ,EAAS0J,EAASlJ,EAAOsF,EAAOvG,GAAUoK,EAAYnJ,EAAOsF,EAAO,GAAK3N,GAE9D2I,EAATvB,EAAgBuB,IAAS,IAAIiJ,GAAYjJ,KAASmB,KAEtDhD,EAASkL,EADTnN,EAAQiF,EAAKnB,GACiBA,EAAO5D,GACjCuH,GACF,GAAIiF,EAAQ1J,EAAOc,GAAS7B,OACvB,GAAIA,EAAQ,OAAQwF,GACvB,KAAK,EAAG,OAAO,EACf,KAAK,EAAG,OAAOzH,EACf,KAAK,EAAG,OAAO8D,EACf,KAAK,EAAG5B,EAAKtG,KAAKoH,EAAQhD,QACrB,GAAI6M,EAAU,OAAO,EAGhC,OAAOC,GAAiB,EAAIF,GAAWC,EAAWA,EAAW7J,IAIjExH,EAAOD,QAAU,CAGf2C,QAAS0K,EAAa,GAGtBwE,IAAKxE,EAAa,GAGlByE,OAAQzE,EAAa,GAGrB0E,KAAM1E,EAAa,GAGnB2E,MAAO3E,EAAa,GAGpB4E,KAAM5E,EAAa,GAGnB6E,UAAW7E,EAAa,KAMpB,SAAUpN,EAAQD,EAASH,GAEjC,IAAIgN,EAAYhN,EAAoB,IAGpCI,EAAOD,QAAU,SAAU0K,EAAIgH,EAAM1K,GAEnC,GADA6F,EAAUnC,GACNgH,IAAS9R,GAAW,OAAO8K,EAC/B,OAAQ1D,GACN,KAAK,EAAG,OAAO,WACb,OAAO0D,EAAGrK,KAAKqR,IAEjB,KAAK,EAAG,OAAO,SAAUhN,GACvB,OAAOgG,EAAGrK,KAAKqR,EAAMhN,IAEvB,KAAK,EAAG,OAAO,SAAUA,EAAGyN,GAC1B,OAAOzH,EAAGrK,KAAKqR,EAAMhN,EAAGyN,IAE1B,KAAK,EAAG,OAAO,SAAUzN,EAAGyN,EAAGC,GAC7B,OAAO1H,EAAGrK,KAAKqR,EAAMhN,EAAGyN,EAAGC,IAG/B,OAAO,WACL,OAAO1H,EAAGlC,MAAMkJ,EAAM3K,cAOpB,SAAU9G,EAAQD,GAExBC,EAAOD,QAAU,SAAUqF,GACzB,GAAiB,mBAANA,EACT,MAAMyB,UAAUG,OAAO5B,GAAM,sBAC7B,OAAOA,IAML,SAAUpF,EAAQD,EAASH,GAEjC,IAAIoB,EAAWpB,EAAoB,IAC/BmB,EAAUnB,EAAoB,IAG9BwS,EAFkBxS,EAAoB,GAE5BwC,CAAgB,WAI9BpC,EAAOD,QAAU,SAAUsS,EAAetL,GACxC,IAAIuL,EASF,OAREvR,EAAQsR,KAGM,mBAFhBC,EAAID,EAAcE,eAEaD,IAAM1D,OAAS7N,EAAQuR,EAAEnJ,aAC/CnI,EAASsR,IAEN,QADVA,EAAIA,EAAEF,OAF6DE,EAAI3S,IAKlE,IAAK2S,IAAM3S,GAAYiP,MAAQ0D,GAAc,IAAXvL,EAAe,EAAIA,KAM1D,SAAU/G,EAAQD,EAASH,GAMjC,IAAIU,EAAIV,EAAoB,GACxBc,EAAcd,EAAoB,GAClCW,EAASX,EAAoB,GAC7BkB,EAAMlB,EAAoB,IAC1BoB,EAAWpB,EAAoB,IAC/B0F,EAAiB1F,EAAoB,IAAI6D,EACzCiF,EAA4B9I,EAAoB,IAEhD4S,EAAejS,EAAO+C,OAE1B,GAAI5C,GAAsC,mBAAhB8R,MAAiC,gBAAiBA,EAAarJ,YAEvFqJ,IAAexN,cAAgBrF,IAC9B,CACD,IAAI8S,EAA8B,GAE9BC,EAAgB,SAASpP,SAC3B,IAAI0B,EAAc8B,UAAUC,OAAS,GAAKD,UAAU,KAAOnH,GAAYA,GAAYqH,OAAOF,UAAU,IAChGL,EAASlC,gBAAgBmO,EACzB,IAAIF,EAAaxN,GAEjBA,IAAgBrF,GAAY6S,IAAiBA,EAAaxN,GAE9D,MADoB,KAAhBA,IAAoByN,EAA4BhM,IAAU,GACvDA,GAETiC,EAA0BgK,EAAeF,GACzC,IAAIG,EAAkBD,EAAcvJ,UAAYqJ,EAAarJ,UAC7DwJ,EAAgBJ,YAAcG,EAE9B,IAAIE,EAAiBD,EAAgBxL,SACjC0L,EAAyC,gBAAhC7L,OAAOwL,EAAa,SAC7BM,EAAS,wBACbxN,EAAeqN,EAAiB,cAAe,CAC7CzL,cAAc,EACd5C,IAAK,SAASU,cACZ,IAAIC,EAASjE,EAASuD,MAAQA,KAAKiE,UAAYjE,KAC3CoD,EAASiL,EAAexS,KAAK6E,GACjC,GAAInE,EAAI2R,EAA6BxN,GAAS,MAAO,GACrD,IAAI8N,EAAOF,EAASlL,EAAO2C,MAAM,GAAI,GAAK3C,EAAO8G,QAAQqE,EAAQ,MACjE,MAAgB,KAATC,EAAcpT,GAAYoT,KAIrCzS,EAAE,CAAEC,QAAQ,EAAM+G,QAAQ,GAAQ,CAChChE,OAAQoP,MAON,SAAU1S,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,kBAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,gBAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,uBAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,aAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,UAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAGhD0C,CAAsB,aAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,YAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,WAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,YAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,UAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,gBAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,gBAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,gBAKhB,SAAUtC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBiB,EAAQjB,EAAoB,GAC5BmB,EAAUnB,EAAoB,IAC9BoB,EAAWpB,EAAoB,IAC/BsB,EAAWtB,EAAoB,IAC/BsN,EAAWtN,EAAoB,IAC/BoT,EAAiBpT,EAAoB,IACrCqR,EAAqBrR,EAAoB,IACzCqT,EAA+BrT,EAAoB,IACnDwC,EAAkBxC,EAAoB,IACtCsT,EAAatT,EAAoB,IAEjCuT,EAAuB/Q,EAAgB,sBACvCgR,EAAmB,iBACnBC,EAAiC,iCAKjCC,EAA6C,IAAdJ,IAAqBrS,EAAM,WAC5D,IAAI0S,EAAQ,GAEZ,OADAA,EAAMJ,IAAwB,EACvBI,EAAMzN,SAAS,KAAOyN,IAG3BC,EAAkBP,EAA6B,UAE/CQ,EAAqB,SAAU/O,GACjC,IAAK1D,EAAS0D,GAAI,OAAO,EACzB,IAAIgP,EAAahP,EAAEyO,GACnB,OAAOO,IAAe/T,KAAc+T,EAAa3S,EAAQ2D,IAQ3DpE,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,QALpBgM,IAAiCE,GAKK,CAClD1N,OAAQ,SAASA,OAAO+I,GACtB,IAGI5O,EAAG2T,EAAG7M,EAAQ8M,EAAKC,EAHnBpP,EAAIxD,EAASqD,MACbwP,EAAI9C,EAAmBvM,EAAG,GAC1BsP,EAAI,EAER,IAAK/T,GAAK,EAAG8G,EAASD,UAAUC,OAAQ9G,EAAI8G,EAAQ9G,IAElD,GAAIwT,EADJK,GAAW,IAAP7T,EAAWyE,EAAIoC,UAAU7G,IACF,CAEzB,GADA4T,EAAM3G,EAAS4G,EAAE/M,QACHqM,EAAVY,EAAIH,EAAwB,MAAMhN,UAAUwM,GAChD,IAAKO,EAAI,EAAGA,EAAIC,EAAKD,IAAKI,IAASJ,KAAKE,GAAGd,EAAee,EAAGC,EAAGF,EAAEF,QAC7D,CACL,GAASR,GAALY,EAAuB,MAAMnN,UAAUwM,GAC3CL,EAAee,EAAGC,IAAKF,GAI3B,OADAC,EAAEhN,OAASiN,EACJD,MAOL,SAAU/T,EAAQD,EAASH,GAIjC,IAAIwB,EAAcxB,EAAoB,IAClCgC,EAAuBhC,EAAoB,IAC3CyB,EAA2BzB,EAAoB,GAEnDI,EAAOD,QAAU,SAAUgL,EAAQxF,EAAKf,GACtC,IAAIyP,EAAc7S,EAAYmE,GAC1B0O,KAAelJ,EAAQnJ,EAAqB6B,EAAEsH,EAAQkJ,EAAa5S,EAAyB,EAAGmD,IAC9FuG,EAAOkJ,GAAezP,IAMvB,SAAUxE,EAAQD,EAASH,GAEjC,IAAIiB,EAAQjB,EAAoB,GAC5BwC,EAAkBxC,EAAoB,IACtCsT,EAAatT,EAAoB,IAEjCwS,EAAUhQ,EAAgB,WAE9BpC,EAAOD,QAAU,SAAUmU,GAIzB,OAAqB,IAAdhB,IAAqBrS,EAAM,WAChC,IAAI0S,EAAQ,GAKZ,OAJkBA,EAAMhB,YAAc,IAC1BH,GAAW,WACrB,MAAO,CAAE+B,IAAK,IAE2B,IAApCZ,EAAMW,GAAaE,SAASD,QAOjC,SAAUnU,EAAQD,EAASH,GAEjC,IAMIyU,EAAOjI,EANP7L,EAASX,EAAoB,GAC7B0U,EAAY1U,EAAoB,IAEhC2U,EAAUhU,EAAOgU,QACjBC,EAAWD,GAAWA,EAAQC,SAC9BC,EAAKD,GAAYA,EAASC,GAG1BA,EAEFrI,GADAiI,EAAQI,EAAGpK,MAAM,MACD,GAAKgK,EAAM,GAClBC,MACTD,EAAQC,EAAUD,MAAM,iBACE,IAAZA,EAAM,MAClBA,EAAQC,EAAUD,MAAM,oBACbjI,EAAUiI,EAAM,IAI/BrU,EAAOD,QAAUqM,IAAYA,GAKvB,SAAUpM,EAAQD,EAASH,GAEjC,IAAIY,EAAaZ,EAAoB,IAErCI,EAAOD,QAAUS,EAAW,YAAa,cAAgB,IAKnD,SAAUR,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB8U,EAAa9U,EAAoB,IACjC+U,EAAmB/U,EAAoB,IAI3CU,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,GAAQ,CAClCe,WAAYA,IAIdC,EAAiB,eAKX,SAAU3U,EAAQD,EAASH,GAIjC,IAAIsB,EAAWtB,EAAoB,IAC/BuN,EAAkBvN,EAAoB,IACtCsN,EAAWtN,EAAoB,IAE/B+N,EAAMrE,KAAKqE,IAIf3N,EAAOD,QAAU,GAAG2U,YAAc,SAASA,WAAWlN,EAAkBoN,GACtE,IAAIlQ,EAAIxD,EAASqD,MACbsP,EAAM3G,EAASxI,EAAEqC,QACjB8N,EAAK1H,EAAgB3F,EAAQqM,GAC7BiB,EAAO3H,EAAgByH,EAAOf,GAC9BkB,EAAyB,EAAnBjO,UAAUC,OAAaD,UAAU,GAAKnH,GAC5CqV,EAAQrH,GAAKoH,IAAQpV,GAAYkU,EAAM1G,EAAgB4H,EAAKlB,IAAQiB,EAAMjB,EAAMgB,GAChFI,EAAM,EAMV,IALIH,EAAOD,GAAMA,EAAKC,EAAOE,IAC3BC,GAAO,EACPH,GAAQE,EAAQ,EAChBH,GAAMG,EAAQ,GAEC,EAAVA,KACDF,KAAQpQ,EAAGA,EAAEmQ,GAAMnQ,EAAEoQ,UACbpQ,EAAEmQ,GACdA,GAAMI,EACNH,GAAQG,EACR,OAAOvQ,IAML,SAAU1E,EAAQD,EAASH,GAEjC,IAAIwC,EAAkBxC,EAAoB,IACtCoI,EAASpI,EAAoB,IAC7BgC,EAAuBhC,EAAoB,IAE3CsV,EAAc9S,EAAgB,eAC9B+S,EAAiBvG,MAAMzF,UAIvBgM,EAAeD,IAAgBvV,IACjCiC,EAAqB6B,EAAE0R,EAAgBD,EAAa,CAClDhO,cAAc,EACd1C,MAAOwD,EAAO,QAKlBhI,EAAOD,QAAU,SAAUwF,GACzB4P,EAAeD,GAAa3P,IAAO,IAM/B,SAAUvF,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBwV,EAASxV,EAAoB,IAAImS,MACjCsD,EAAsBzV,EAAoB,IAC1C0V,EAA0B1V,EAAoB,IAE9C2V,EAAgBF,EAAoB,SACpCG,EAAiBF,EAAwB,SAI7ChV,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,QAASiO,IAAkBC,GAAkB,CAC7EzD,MAAO,SAASA,MAAMP,GACpB,OAAO4D,EAAO7Q,KAAMiN,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,QAOpE,SAAUK,EAAQD,EAASH,GAIjC,IAAIiB,EAAQjB,EAAoB,GAEhCI,EAAOD,QAAU,SAAUmU,EAAatG,GACtC,IAAIb,EAAS,GAAGmH,GAChB,QAASnH,GAAUlM,EAAM,WAEvBkM,EAAO3M,KAAK,KAAMwN,GAAY,WAAc,MAAM,GAAM,OAOtD,SAAU5N,EAAQD,EAASH,GAEjC,IAAIc,EAAcd,EAAoB,GAClCiB,EAAQjB,EAAoB,GAC5BkB,EAAMlB,EAAoB,IAE1B0F,EAAiBlC,OAAOkC,eACxBmQ,EAAQ,GAERC,EAAU,SAAUtQ,GAAM,MAAMA,GAEpCpF,EAAOD,QAAU,SAAUmU,EAAatL,GACtC,GAAI9H,EAAI2U,EAAOvB,GAAc,OAAOuB,EAAMvB,GAE1C,IAAInH,EAAS,GAAGmH,GACZyB,IAAY7U,EAFF8H,EAATA,GAAmB,GAEK,cAAeA,EAAQ+M,UAChDC,EAAY9U,EAAI8H,EAAS,GAAKA,EAAQ,GAAK8M,EAC3CG,EAAY/U,EAAI8H,EAAS,GAAKA,EAAQ,GAAKjJ,GAE/C,OAAO8V,EAAMvB,KAAiBnH,IAAWlM,EAAM,WAC7C,GAAI8U,IAAcjV,EAAa,OAAO,EACtC,IAAIgE,EAAI,CAAEqC,QAAS,GAEf4O,EAAWrQ,EAAeZ,EAAG,EAAG,CAAEc,YAAY,EAAMlB,IAAKoR,IACxDhR,EAAE,GAAK,EAEZqI,EAAO3M,KAAKsE,EAAGkR,EAAWC,OAOxB,SAAU7V,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBkW,EAAOlW,EAAoB,IAC3B+U,EAAmB/U,EAAoB,IAI3CU,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,GAAQ,CAClCmC,KAAMA,IAIRnB,EAAiB,SAKX,SAAU3U,EAAQD,EAASH,GAIjC,IAAIsB,EAAWtB,EAAoB,IAC/BuN,EAAkBvN,EAAoB,IACtCsN,EAAWtN,EAAoB,IAInCI,EAAOD,QAAU,SAAS+V,KAAKtR,GAO7B,IANA,IAAIE,EAAIxD,EAASqD,MACbwC,EAASmG,EAASxI,EAAEqC,QACpBgP,EAAkBjP,UAAUC,OAC5BuB,EAAQ6E,EAAkC,EAAlB4I,EAAsBjP,UAAU,GAAKnH,GAAWoH,GACxEgO,EAAwB,EAAlBgB,EAAsBjP,UAAU,GAAKnH,GAC3CqW,EAASjB,IAAQpV,GAAYoH,EAASoG,EAAgB4H,EAAKhO,GAC/CuB,EAAT0N,GAAgBtR,EAAE4D,KAAW9D,EACpC,OAAOE,IAMH,SAAU1E,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBqW,EAAUrW,EAAoB,IAAIiS,OAClCoB,EAA+BrT,EAAoB,IACnD0V,EAA0B1V,EAAoB,IAE9CsW,EAAsBjD,EAA6B,UAEnDuC,EAAiBF,EAAwB,UAK7ChV,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,QAAS4O,IAAwBV,GAAkB,CACnF3D,OAAQ,SAASA,OAAOL,GACtB,OAAOyE,EAAQ1R,KAAMiN,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,QAOrE,SAAUK,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBuW,EAAQvW,EAAoB,IAAIoS,KAChC2C,EAAmB/U,EAAoB,IACvC0V,EAA0B1V,EAAoB,IAE9CwW,EAAO,OACPC,GAAc,EAEdb,EAAiBF,EAAwBc,GAGzCA,IAAQ,IAAIxH,MAAM,GAAGwH,GAAM,WAAcC,GAAc,IAI3D/V,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,OAAQ+O,IAAgBb,GAAkB,CAC1ExD,KAAM,SAASA,KAAKR,GAClB,OAAO2E,EAAM5R,KAAMiN,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,OAKzEgV,EAAiByB,IAKX,SAAUpW,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB0W,EAAa1W,EAAoB,IAAIqS,UACrC0C,EAAmB/U,EAAoB,IACvC0V,EAA0B1V,EAAoB,IAE9C2W,EAAa,YACbF,GAAc,EAEdb,EAAiBF,EAAwBiB,GAGzCA,IAAc,IAAI3H,MAAM,GAAG2H,GAAY,WAAcF,GAAc,IAIvE/V,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,OAAQ+O,IAAgBb,GAAkB,CAC1EvD,UAAW,SAASA,UAAUT,GAC5B,OAAO8E,EAAW/R,KAAMiN,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,OAK9EgV,EAAiB4B,IAKX,SAAUvW,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB4W,EAAmB5W,EAAoB,IACvCsB,EAAWtB,EAAoB,IAC/BsN,EAAWtN,EAAoB,IAC/B8N,EAAY9N,EAAoB,IAChCqR,EAAqBrR,EAAoB,IAI7CU,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,GAAQ,CAClC8C,KAAM,SAASA,OACb,IAAIC,EAAW5P,UAAUC,OAASD,UAAU,GAAKnH,GAC7C+E,EAAIxD,EAASqD,MACboS,EAAYzJ,EAASxI,EAAEqC,QACvBgN,EAAI9C,EAAmBvM,EAAG,GAE9B,OADAqP,EAAEhN,OAASyP,EAAiBzC,EAAGrP,EAAGA,EAAGiS,EAAW,EAAGD,IAAa/W,GAAY,EAAI+N,EAAUgJ,IACnF3C,MAOL,SAAU/T,EAAQD,EAASH,GAIjC,IAAImB,EAAUnB,EAAoB,IAC9BsN,EAAWtN,EAAoB,IAC/BoR,EAAOpR,EAAoB,IAI3B4W,EAAmB,SAAUhP,EAAQoP,EAAU/N,EAAQ8N,EAAW/B,EAAOiC,EAAOC,EAAQC,GAM1F,IALA,IAGIC,EAHAC,EAAcrC,EACdsC,EAAc,EACdC,IAAQL,GAAS9F,EAAK8F,EAAQC,EAAS,GAGpCG,EAAcP,GAAW,CAC9B,GAAIO,KAAerO,EAAQ,CAGzB,GAFAmO,EAAUG,EAAQA,EAAMtO,EAAOqO,GAAcA,EAAaN,GAAY/N,EAAOqO,GAEjE,EAARL,GAAa9V,EAAQiW,GACvBC,EAAcT,EAAiBhP,EAAQoP,EAAUI,EAAS9J,EAAS8J,EAAQjQ,QAASkQ,EAAaJ,EAAQ,GAAK,MACzG,CACL,GAAmB,kBAAfI,EAAiC,MAAMpQ,UAAU,sCACrDW,EAAOyP,GAAeD,EAGxBC,IAEFC,IAEF,OAAOD,GAGTjX,EAAOD,QAAUyW,GAKX,SAAUxW,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB4W,EAAmB5W,EAAoB,IACvCsB,EAAWtB,EAAoB,IAC/BsN,EAAWtN,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCqR,EAAqBrR,EAAoB,IAI7CU,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,GAAQ,CAClCyD,QAAS,SAASA,QAAQ5F,GACxB,IAEIuC,EAFArP,EAAIxD,EAASqD,MACboS,EAAYzJ,EAASxI,EAAEqC,QAK3B,OAHA6F,EAAU4E,IACVuC,EAAI9C,EAAmBvM,EAAG,IACxBqC,OAASyP,EAAiBzC,EAAGrP,EAAGA,EAAGiS,EAAW,EAAG,EAAGnF,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,IACjGoU,MAOL,SAAU/T,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB8C,EAAU9C,EAAoB,IAIlCU,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,OAAQ,GAAG5E,SAAWA,GAAW,CACjEA,QAASA,KAML,SAAU1C,EAAQD,EAASH,GAIjC,IAAI6C,EAAW7C,EAAoB,IAAI8C,QACnC2S,EAAsBzV,EAAoB,IAC1C0V,EAA0B1V,EAAoB,IAE9C2V,EAAgBF,EAAoB,WACpCG,EAAiBF,EAAwB,WAI7CtV,EAAOD,QAAYwV,GAAkBC,EAEjC,GAAG9S,QAFgD,SAASA,QAAQ8O,GACtE,OAAO/O,EAAS8B,KAAMiN,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,MAMpE,SAAUK,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBkV,EAAOlV,EAAoB,IAS/BU,EAAE,CAAEkH,OAAQ,QAASC,MAAM,EAAMH,QARC1H,EAAoB,IAE3ByX,CAA4B,SAAUC,GAC/D1I,MAAMkG,KAAKwC,MAKmD,CAC9DxC,KAAMA,KAMF,SAAU9U,EAAQD,EAASH,GAIjC,IAAIoR,EAAOpR,EAAoB,IAC3BsB,EAAWtB,EAAoB,IAC/B2X,EAA+B3X,EAAoB,IACnD4X,EAAwB5X,EAAoB,KAC5CsN,EAAWtN,EAAoB,IAC/BoT,EAAiBpT,EAAoB,IACrC6X,EAAoB7X,EAAoB,KAI5CI,EAAOD,QAAU,SAAS+U,KAAK4C,GAC7B,IAOI3Q,EAAQN,EAAQkR,EAAMhJ,EAAUiJ,EAAMpT,EAPtCE,EAAIxD,EAASwW,GACbpF,EAAmB,mBAAR/N,KAAqBA,KAAOqK,MACvCmH,EAAkBjP,UAAUC,OAC5B8Q,EAA0B,EAAlB9B,EAAsBjP,UAAU,GAAKnH,GAC7CmY,EAAUD,IAAUlY,GACpBoY,EAAiBN,EAAkB/S,GACnC4D,EAAQ,EAIZ,GAFIwP,IAASD,EAAQ7G,EAAK6G,EAAyB,EAAlB9B,EAAsBjP,UAAU,GAAKnH,GAAW,IAE7EoY,GAAkBpY,IAAe2S,GAAK1D,OAAS4I,EAAsBO,GAWvE,IADAtR,EAAS,IAAI6L,EADbvL,EAASmG,EAASxI,EAAEqC,SAELuB,EAATvB,EAAgBuB,IACpB9D,EAAQsT,EAAUD,EAAMnT,EAAE4D,GAAQA,GAAS5D,EAAE4D,GAC7C0K,EAAevM,EAAQ6B,EAAO9D,QAThC,IAFAoT,GADAjJ,EAAWoJ,EAAe3X,KAAKsE,IACfkT,KAChBnR,EAAS,IAAI6L,IACLqF,EAAOC,EAAKxX,KAAKuO,IAAWqJ,KAAM1P,IACxC9D,EAAQsT,EAAUP,EAA6B5I,EAAUkJ,EAAO,CAACF,EAAKnT,MAAO8D,IAAQ,GAAQqP,EAAKnT,MAClGwO,EAAevM,EAAQ6B,EAAO9D,GAWlC,OADAiC,EAAOM,OAASuB,EACT7B,IAMH,SAAUzG,EAAQD,EAASH,GAEjC,IAAIqB,EAAWrB,EAAoB,IAGnCI,EAAOD,QAAU,SAAU4O,EAAUlE,EAAIjG,EAAOyT,GAC9C,IACE,OAAOA,EAAUxN,EAAGxJ,EAASuD,GAAO,GAAIA,EAAM,IAAMiG,EAAGjG,GAEvD,MAAOoF,GACP,IAAIsO,EAAevJ,EAAiB,UAEpC,MADIuJ,IAAiBvY,IAAWsB,EAASiX,EAAa9X,KAAKuO,IACrD/E,KAOJ,SAAU5J,EAAQD,EAASH,GAEjC,IAAIwC,EAAkBxC,EAAoB,IACtCuY,EAAYvY,EAAoB,KAEhCwY,EAAWhW,EAAgB,YAC3B+S,EAAiBvG,MAAMzF,UAG3BnJ,EAAOD,QAAU,SAAUqF,GACzB,OAAOA,IAAOzF,KAAcwY,EAAUvJ,QAAUxJ,GAAM+P,EAAeiD,KAAchT,KAM/E,SAAUpF,EAAQD,GAExBC,EAAOD,QAAU,IAKX,SAAUC,EAAQD,EAASH,GAEjC,IAAIwK,EAAUxK,EAAoB,KAC9BuY,EAAYvY,EAAoB,KAGhCwY,EAFkBxY,EAAoB,GAE3BwC,CAAgB,YAE/BpC,EAAOD,QAAU,SAAUqF,GACzB,GAAIA,GAAMzF,GAAW,OAAOyF,EAAGgT,IAC1BhT,EAAG,eACH+S,EAAU/N,EAAQhF,MAMnB,SAAUpF,EAAQD,EAASH,GAEjC,IAAIyY,EAAwBzY,EAAoB,KAC5C0Y,EAAa1Y,EAAoB,IAGjCkR,EAFkBlR,EAAoB,GAEtBwC,CAAgB,eAEhCmW,EAAuE,aAAnDD,EAAW,WAAc,OAAOxR,UAArB,IAUnC9G,EAAOD,QAAUsY,EAAwBC,EAAa,SAAUlT,GAC9D,IAAIV,EAAGK,EAAK0B,EACZ,OAAOrB,IAAOzF,GAAY,YAAqB,OAAPyF,EAAc,OAEM,iBAAhDL,EAXD,SAAUK,EAAIG,GACzB,IACE,OAAOH,EAAGG,GACV,MAAOqE,KAQS4O,CAAO9T,EAAItB,OAAOgC,GAAK0L,IAA8B/L,EAEnEwT,EAAoBD,EAAW5T,GAEH,WAA3B+B,EAAS6R,EAAW5T,KAAsC,mBAAZA,EAAE+T,OAAuB,YAAchS,IAMtF,SAAUzG,EAAQD,EAASH,GAEjC,IAGIuM,EAAO,GAEXA,EALsBvM,EAAoB,GAEtBwC,CAAgB,gBAGd,IAEtBpC,EAAOD,QAA2B,eAAjBiH,OAAOmF,IAKlB,SAAUnM,EAAQD,EAASH,GAEjC,IAEIwY,EAFkBxY,EAAoB,GAE3BwC,CAAgB,YAC3BsW,GAAe,EAEnB,IACE,IAAIC,EAAS,EACTC,EAAqB,CACvBhB,KAAM,WACJ,MAAO,CAAEI,OAAQW,MAEnBE,SAAU,WACRH,GAAe,IAGnBE,EAAmBR,GAAY,WAC7B,OAAO7T,MAGTqK,MAAMkG,KAAK8D,EAAoB,WAAc,MAAM,IACnD,MAAOhP,IAET5J,EAAOD,QAAU,SAAU8J,EAAMiP,GAC/B,IAAKA,IAAiBJ,EAAc,OAAO,EAC3C,IAAIK,GAAoB,EACxB,IACE,IAAIhO,EAAS,GACbA,EAAOqN,GAAY,WACjB,MAAO,CACLR,KAAM,WACJ,MAAO,CAAEI,KAAMe,GAAoB,MAIzClP,EAAKkB,GACL,MAAOnB,IACT,OAAOmP,IAMH,SAAU/Y,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBoZ,EAAYpZ,EAAoB,IAAI6N,SACpCkH,EAAmB/U,EAAoB,IAO3CU,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,QANJ1H,EAAoB,GAE7B0V,CAAwB,UAAW,CAAEK,WAAW,EAAM5L,EAAG,KAIjB,CAC3D0D,SAAU,SAASA,SAASF,GAC1B,OAAOyL,EAAUzU,KAAMgJ,EAAuB,EAAnBzG,UAAUC,OAAaD,UAAU,GAAKnH,OAKrEgV,EAAiB,aAKX,SAAU3U,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBqZ,EAAWrZ,EAAoB,IAAIqN,QACnCoI,EAAsBzV,EAAoB,IAC1C0V,EAA0B1V,EAAoB,IAE9CsZ,EAAgB,GAAGjM,QAEnBkM,IAAkBD,GAAiB,EAAI,CAAC,GAAGjM,QAAQ,GAAI,GAAK,EAC5DsI,EAAgBF,EAAoB,WACpCG,EAAiBF,EAAwB,UAAW,CAAEK,WAAW,EAAM5L,EAAG,IAI9EzJ,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,OAAQ6R,IAAkB5D,IAAkBC,GAAkB,CAC9FvI,QAAS,SAASA,QAAQmM,GACxB,OAAOD,EAEHD,EAAc3Q,MAAMhE,KAAMuC,YAAc,EACxCmS,EAAS1U,KAAM6U,EAAkC,EAAnBtS,UAAUC,OAAaD,UAAU,GAAKnH,QAOtE,SAAUK,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,QAASC,MAAM,GAAQ,CACjC1G,QALYnB,EAAoB,OAW5B,SAAUI,EAAQD,EAASH,GAIjC,IAAIuB,EAAkBvB,EAAoB,GACtC+U,EAAmB/U,EAAoB,IACvCuY,EAAYvY,EAAoB,KAChC4C,EAAsB5C,EAAoB,IAC1CyZ,EAAiBzZ,EAAoB,KAErC0Z,EAAiB,iBACjBvW,EAAmBP,EAAoBQ,IACvCC,EAAmBT,EAAoBU,UAAUoW,GAYrDtZ,EAAOD,QAAUsZ,EAAezK,MAAO,QAAS,SAAU2K,EAAUC,GAClEzW,EAAiBwB,KAAM,CACrBW,KAAMoU,EACN9R,OAAQrG,EAAgBoY,GACxBjR,MAAO,EACPkR,KAAMA,KAIP,WACD,IAAItN,EAAQjJ,EAAiBsB,MACzBiD,EAAS0E,EAAM1E,OACfgS,EAAOtN,EAAMsN,KACblR,EAAQ4D,EAAM5D,QAClB,OAAKd,GAAmBA,EAAOT,QAAhBuB,EAEN,CAAE9D,MADT0H,EAAM1E,OAAS7H,GACYqY,MAAM,GAEvB,QAARwB,EAAuB,CAAEhV,MAAO8D,EAAO0P,MAAM,GACrC,UAARwB,EAAyB,CAAEhV,MAAOgD,EAAOc,GAAQ0P,MAAM,GACpD,CAAExT,MAAO,CAAC8D,EAAOd,EAAOc,IAAS0P,MAAM,IAC7C,UAKHG,EAAUsB,UAAYtB,EAAUvJ,MAGhC+F,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,YAKX,SAAU3U,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB8Z,EAA4B9Z,EAAoB,KAChD+Z,EAAiB/Z,EAAoB,KACrCga,EAAiBha,EAAoB,KACrC2C,EAAiB3C,EAAoB,IACrCkC,EAA8BlC,EAAoB,IAClDmC,EAAWnC,EAAoB,IAC/BwC,EAAkBxC,EAAoB,IACtCa,EAAUb,EAAoB,IAC9BuY,EAAYvY,EAAoB,KAChCia,EAAgBja,EAAoB,KAEpCka,EAAoBD,EAAcC,kBAClCC,EAAyBF,EAAcE,uBACvC3B,EAAWhW,EAAgB,YAE3B4X,EAAS,SACT/B,EAAU,UAEVgC,EAAa,WAAc,OAAO1V,MAEtCvE,EAAOD,QAAU,SAAUma,EAAUrJ,EAAMsJ,EAAqBvC,EAAMwC,EAASC,EAAQC,GACrFZ,EAA0BS,EAAqBtJ,EAAM+G,GAErD,IAkBI2C,EAA0BC,EAASC,EAlBnCC,EAAqB,SAAUC,GACjC,GAAIA,IAASP,GAAWQ,EAAiB,OAAOA,EAChD,IAAKb,GAA0BY,KAAQE,EAAmB,OAAOA,EAAkBF,GACnF,OAAQA,GACN,IAbK,OAaM,OAAO,SAAS9U,OAAS,OAAO,IAAIsU,EAAoB5V,KAAMoW,IACzE,KAAKX,EAAQ,OAAO,SAASc,SAAW,OAAO,IAAIX,EAAoB5V,KAAMoW,IAC7E,KAAK1C,EAAS,OAAO,SAAS8C,UAAY,OAAO,IAAIZ,EAAoB5V,KAAMoW,IAC/E,OAAO,WAAc,OAAO,IAAIR,EAAoB5V,QAGpDuM,EAAgBD,EAAO,YACvBmK,GAAwB,EACxBH,EAAoBX,EAAS/Q,UAC7B8R,EAAiBJ,EAAkBzC,IAClCyC,EAAkB,eAClBT,GAAWS,EAAkBT,GAC9BQ,GAAmBb,GAA0BkB,GAAkBP,EAAmBN,GAClFc,EAA4B,SAARrK,GAAkBgK,EAAkBE,SAA4BE,EAiCxF,GA7BIC,IACFX,EAA2BZ,EAAeuB,EAAkB9a,KAAK,IAAI8Z,IACjEJ,IAAsB1W,OAAO+F,WAAaoR,EAAyB3C,OAChEnX,GAAWkZ,EAAeY,KAA8BT,IACvDF,EACFA,EAAeW,EAA0BT,GACa,mBAAtCS,EAAyBnC,IACzCtW,EAA4ByY,EAA0BnC,EAAU6B,IAIpE1X,EAAegY,EAA0BzJ,GAAe,GAAM,GAC1DrQ,IAAS0X,EAAUrH,GAAiBmJ,KAKxCG,GAAWJ,GAAUiB,GAAkBA,EAAe7T,OAAS4S,IACjEgB,GAAwB,EACxBJ,EAAkB,SAASE,SAAW,OAAOG,EAAe7a,KAAKmE,QAI7D9D,IAAW6Z,GAAWO,EAAkBzC,KAAcwC,GAC1D9Y,EAA4B+Y,EAAmBzC,EAAUwC,GAE3DzC,EAAUtH,GAAQ+J,EAGdR,EAMF,GALAI,EAAU,CACRM,OAAQJ,EAAmBV,GAC3BnU,KAAMwU,EAASO,EAAkBF,EA9D5B,QA+DLK,QAASL,EAAmBzC,IAE1BqC,EAAQ,IAAKG,KAAOD,GAClBT,IAA0BiB,GAA2BP,KAAOI,GAC9D9Y,EAAS8Y,EAAmBJ,EAAKD,EAAQC,SAEtCna,EAAE,CAAEkH,OAAQqJ,EAAM8C,OAAO,EAAMrM,OAAQyS,GAA0BiB,GAAyBR,GAGnG,OAAOA,IAMH,SAAUxa,EAAQD,EAASH,GAIjC,IAAIka,EAAoBla,EAAoB,KAAKka,kBAC7C9R,EAASpI,EAAoB,IAC7ByB,EAA2BzB,EAAoB,GAC/C2C,EAAiB3C,EAAoB,IACrCuY,EAAYvY,EAAoB,KAEhCqa,EAAa,WAAc,OAAO1V,MAEtCvE,EAAOD,QAAU,SAAUoa,EAAqBtJ,EAAM+G,GACpD,IAAI9G,EAAgBD,EAAO,YAI3B,OAHAsJ,EAAoBhR,UAAYnB,EAAO8R,EAAmB,CAAElC,KAAMvW,EAAyB,EAAGuW,KAC9FrV,EAAe4X,EAAqBrJ,GAAe,GAAO,GAC1DqH,EAAUrH,GAAiBmJ,EACpBE,IAMH,SAAUna,EAAQD,EAASH,GAIjC,IAaIka,EAAmBqB,EAAmCC,EAbtDzB,EAAiB/Z,EAAoB,KACrCkC,EAA8BlC,EAAoB,IAClDkB,EAAMlB,EAAoB,IAC1BwC,EAAkBxC,EAAoB,IACtCa,EAAUb,EAAoB,IAE9BwY,EAAWhW,EAAgB,YAC3B2X,GAAyB,EAQzB,GAAGlU,OAGC,SAFNuV,EAAgB,GAAGvV,SAIjBsV,EAAoCxB,EAAeA,EAAeyB,OACxBhY,OAAO+F,YAAW2Q,EAAoBqB,GAHlDpB,GAAyB,GAOvDD,GAAqBna,KAAWma,EAAoB,IAGnDrZ,GAAYK,EAAIgZ,EAAmB1B,IACtCtW,EAA4BgY,EAAmB1B,EApBhC,WAAc,OAAO7T,OAuBtCvE,EAAOD,QAAU,CACf+Z,kBAAmBA,EACnBC,uBAAwBA,IAMpB,SAAU/Z,EAAQD,EAASH,GAEjC,IAAIkB,EAAMlB,EAAoB,IAC1BsB,EAAWtB,EAAoB,IAC/BqC,EAAYrC,EAAoB,IAChCyb,EAA2Bzb,EAAoB,KAE/CuP,EAAWlN,EAAU,YACrBkB,EAAkBC,OAAO+F,UAI7BnJ,EAAOD,QAAUsb,EAA2BjY,OAAOuW,eAAiB,SAAUjV,GAE5E,OADAA,EAAIxD,EAASwD,GACT5D,EAAI4D,EAAGyK,GAAkBzK,EAAEyK,GACH,mBAAjBzK,EAAE6N,aAA6B7N,aAAaA,EAAE6N,YAChD7N,EAAE6N,YAAYpJ,UACdzE,aAAatB,OAASD,EAAkB,OAM7C,SAAUnD,EAAQD,EAASH,GAEjC,IAAIiB,EAAQjB,EAAoB,GAEhCI,EAAOD,SAAWc,EAAM,WACtB,SAAS2P,KAET,OADAA,EAAErH,UAAUoJ,YAAc,KACnBnP,OAAOuW,eAAe,IAAInJ,KAASA,EAAErH,aAMxC,SAAUnJ,EAAQD,EAASH,GAEjC,IAAIqB,EAAWrB,EAAoB,IAC/B0b,EAAqB1b,EAAoB,KAM7CI,EAAOD,QAAUqD,OAAOwW,iBAAmB,aAAe,GAAK,WAC7D,IAEI3S,EAFAsU,GAAiB,EACjBpP,EAAO,GAEX,KACElF,EAAS7D,OAAOgD,yBAAyBhD,OAAO+F,UAAW,aAAanG,KACjE5C,KAAK+L,EAAM,IAClBoP,EAAiBpP,aAAgByC,MACjC,MAAOhF,IACT,OAAO,SAASgQ,eAAelV,EAAGiP,GAKhC,OAJA1S,EAASyD,GACT4W,EAAmB3H,GACf4H,EAAgBtU,EAAO7G,KAAKsE,EAAGiP,GAC9BjP,EAAE8W,UAAY7H,EACZjP,GAdoD,GAgBzD/E,KAKA,SAAUK,EAAQD,EAASH,GAEjC,IAAIoB,EAAWpB,EAAoB,IAEnCI,EAAOD,QAAU,SAAUqF,GACzB,IAAKpE,EAASoE,IAAc,OAAPA,EACnB,MAAMyB,UAAU,aAAeG,OAAO5B,GAAM,mBAC5C,OAAOA,IAML,SAAUpF,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBsK,EAAgBtK,EAAoB,IACpCuB,EAAkBvB,EAAoB,GACtCyV,EAAsBzV,EAAoB,IAE1C6b,EAAa,GAAGpQ,KAEhBqQ,EAAcxR,GAAiB9G,OAC/BmS,EAAgBF,EAAoB,OAAQ,KAIhD/U,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,OAAQoU,IAAgBnG,GAAiB,CACzElK,KAAM,SAASA,KAAKsQ,GAClB,OAAOF,EAAWrb,KAAKe,EAAgBoD,MAAOoX,IAAchc,GAAY,IAAMgc,OAO5E,SAAU3b,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBgc,EAAchc,EAAoB,KAItCU,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,OAAQsU,IAAgB,GAAGA,aAAe,CAC1EA,YAAaA,KAMT,SAAU5b,EAAQD,EAASH,GAIjC,IAAIuB,EAAkBvB,EAAoB,GACtC8N,EAAY9N,EAAoB,IAChCsN,EAAWtN,EAAoB,IAC/ByV,EAAsBzV,EAAoB,IAC1C0V,EAA0B1V,EAAoB,IAE9C+N,EAAMrE,KAAKqE,IACXkO,EAAoB,GAAGD,YACvBzC,IAAkB0C,GAAqB,EAAI,CAAC,GAAGD,YAAY,GAAI,GAAK,EACpErG,EAAgBF,EAAoB,eAEpCG,EAAiBF,EAAwB,UAAW,CAAEK,WAAW,EAAM5L,EAAG,IAK9E/J,EAAOD,QAJMoZ,IAAkB5D,IAAkBC,EAIvB,SAASoG,YAAYxC,GAE7C,GAAID,EAAe,OAAO0C,EAAkBtT,MAAMhE,KAAMuC,YAAc,EACtE,IAAIpC,EAAIvD,EAAgBoD,MACpBwC,EAASmG,EAASxI,EAAEqC,QACpBuB,EAAQvB,EAAS,EAGrB,IAFuB,EAAnBD,UAAUC,SAAYuB,EAAQqF,EAAIrF,EAAOoF,EAAU5G,UAAU,MAC7DwB,EAAQ,IAAGA,EAAQvB,EAASuB,GACjB,GAATA,EAAYA,IAAS,GAAIA,KAAS5D,GAAKA,EAAE4D,KAAW8Q,EAAe,OAAO9Q,GAAS,EACzF,OAAQ,GACNuT,GAKE,SAAU7b,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBkc,EAAOlc,EAAoB,IAAIgS,IAC/BqB,EAA+BrT,EAAoB,IACnD0V,EAA0B1V,EAAoB,IAE9CsW,EAAsBjD,EAA6B,OAEnDuC,EAAiBF,EAAwB,OAK7ChV,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,QAAS4O,IAAwBV,GAAkB,CACnF5D,IAAK,SAASA,IAAIJ,GAChB,OAAOsK,EAAKvX,KAAMiN,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,QAOlE,SAAUK,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBiB,EAAQjB,EAAoB,GAC5BoT,EAAiBpT,EAAoB,IAUzCU,EAAE,CAAEkH,OAAQ,QAASC,MAAM,EAAMH,OARdzG,EAAM,WACvB,SAAS2P,KACT,QAAS5B,MAAMmN,GAAG3b,KAAKoQ,aAAcA,MAMkB,CACvDuL,GAAI,SAASA,KAIX,IAHA,IAAIzT,EAAQ,EACRyN,EAAkBjP,UAAUC,OAC5BN,EAAS,IAAoB,mBAARlC,KAAqBA,KAAOqK,OAAOmH,GACnCzN,EAAlByN,GAAyB/C,EAAevM,EAAQ6B,EAAOxB,UAAUwB,MAExE,OADA7B,EAAOM,OAASgP,EACTtP,MAOL,SAAUzG,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBoc,EAAUpc,EAAoB,KAAKqc,KACnC5G,EAAsBzV,EAAoB,IAC1C0V,EAA0B1V,EAAoB,IAE9C2V,EAAgBF,EAAoB,UACpCG,EAAiBF,EAAwB,SAAU,CAAEvL,EAAG,IAI5DzJ,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,QAASiO,IAAkBC,GAAkB,CAC7E0G,OAAQ,SAASA,OAAO1K,GACtB,OAAOwK,EAAQzX,KAAMiN,EAAY1K,UAAUC,OAA2B,EAAnBD,UAAUC,OAAaD,UAAU,GAAKnH,QAOvF,SAAUK,EAAQD,EAASH,GAEjC,IAAIgN,EAAYhN,EAAoB,IAChCsB,EAAWtB,EAAoB,IAC/BsK,EAAgBtK,EAAoB,IACpCsN,EAAWtN,EAAoB,IAG/BwN,EAAe,SAAU+O,GAC3B,OAAO,SAAU1K,EAAMD,EAAYuE,EAAiBqG,GAClDxP,EAAU4E,GACV,IAAI9M,EAAIxD,EAASuQ,GACbhI,EAAOS,EAAcxF,GACrBqC,EAASmG,EAASxI,EAAEqC,QACpBuB,EAAQ6T,EAAWpV,EAAS,EAAI,EAChC9G,EAAIkc,GAAY,EAAI,EACxB,GAAIpG,EAAkB,EAAG,OAAa,CACpC,GAAIzN,KAASmB,EAAM,CACjB2S,EAAO3S,EAAKnB,GACZA,GAASrI,EACT,MAGF,GADAqI,GAASrI,EACLkc,EAAW7T,EAAQ,EAAIvB,GAAUuB,EACnC,MAAMzB,UAAU,+CAGpB,KAAMsV,EAAoB,GAAT7T,EAAsBA,EAATvB,EAAgBuB,GAASrI,EAAOqI,KAASmB,IACrE2S,EAAO5K,EAAW4K,EAAM3S,EAAKnB,GAAQA,EAAO5D,IAE9C,OAAO0X,IAIXpc,EAAOD,QAAU,CAGfkc,KAAM7O,GAAa,GAGnBiP,MAAOjP,GAAa,KAMhB,SAAUpN,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB0c,EAAe1c,EAAoB,KAAKyc,MACxChH,EAAsBzV,EAAoB,IAC1C0V,EAA0B1V,EAAoB,IAE9C2V,EAAgBF,EAAoB,eAEpCG,EAAiBF,EAAwB,SAAU,CAAEvL,EAAG,IAI5DzJ,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,QAASiO,IAAkBC,GAAkB,CAC7E+G,YAAa,SAASA,YAAY/K,GAChC,OAAO8K,EAAa/X,KAAMiN,EAAY1K,UAAUC,OAA2B,EAAnBD,UAAUC,OAAaD,UAAU,GAAKnH,QAO5F,SAAUK,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBmB,EAAUnB,EAAoB,IAE9B4c,EAAgB,GAAGC,QACnBtQ,EAAO,CAAC,EAAG,GAMf7L,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,OAAQN,OAAOmF,KAAUnF,OAAOmF,EAAKsQ,YAAc,CACnFA,QAAS,SAASA,UAGhB,OADI1b,EAAQwD,QAAOA,KAAKwC,OAASxC,KAAKwC,QAC/ByV,EAAcpc,KAAKmE,UAOxB,SAAUvE,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBoB,EAAWpB,EAAoB,IAC/BmB,EAAUnB,EAAoB,IAC9BuN,EAAkBvN,EAAoB,IACtCsN,EAAWtN,EAAoB,IAC/BuB,EAAkBvB,EAAoB,GACtCoT,EAAiBpT,EAAoB,IACrCwC,EAAkBxC,EAAoB,IACtCqT,EAA+BrT,EAAoB,IACnD0V,EAA0B1V,EAAoB,IAE9CsW,EAAsBjD,EAA6B,SACnDuC,EAAiBF,EAAwB,QAAS,CAAEK,WAAW,EAAM+G,EAAG,EAAG3S,EAAG,IAE9EqI,EAAUhQ,EAAgB,WAC1Bua,EAAc,GAAGrS,MACjB0D,EAAM1E,KAAK0E,IAKf1N,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,QAAS4O,IAAwBV,GAAkB,CACnFlL,MAAO,SAASA,MAAMsK,EAAOG,GAC3B,IAKI6H,EAAanW,EAAQuN,EALrBtP,EAAIvD,EAAgBoD,MACpBwC,EAASmG,EAASxI,EAAEqC,QACpB6M,EAAIzG,EAAgByH,EAAO7N,GAC3B8V,EAAM1P,EAAgB4H,IAAQpV,GAAYoH,EAASgO,EAAKhO,GAG5D,GAAIhG,EAAQ2D,MAGgB,mBAF1BkY,EAAclY,EAAE6N,eAEyBqK,IAAgBhO,OAAS7N,EAAQ6b,EAAYzT,aAE3EnI,EAAS4b,IAEE,QADpBA,EAAcA,EAAYxK,OAF1BwK,EAAcjd,IAKZid,IAAgBhO,OAASgO,IAAgBjd,IAC3C,OAAOgd,EAAYvc,KAAKsE,EAAGkP,EAAGiJ,GAIlC,IADApW,EAAS,IAAKmW,IAAgBjd,GAAYiP,MAAQgO,GAAa5O,EAAI6O,EAAMjJ,EAAG,IACvEI,EAAI,EAAGJ,EAAIiJ,EAAKjJ,IAAKI,IAASJ,KAAKlP,GAAGsO,EAAevM,EAAQuN,EAAGtP,EAAEkP,IAEvE,OADAnN,EAAOM,OAASiN,EACTvN,MAOL,SAAUzG,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBkd,EAAQld,EAAoB,IAAIkS,KAChCuD,EAAsBzV,EAAoB,IAC1C0V,EAA0B1V,EAAoB,IAE9C2V,EAAgBF,EAAoB,QACpCG,EAAiBF,EAAwB,QAI7ChV,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,QAASiO,IAAkBC,GAAkB,CAC7E1D,KAAM,SAASA,KAAKN,GAClB,OAAOsL,EAAMvY,KAAMiN,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,QAOnE,SAAUK,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBgN,EAAYhN,EAAoB,IAChCsB,EAAWtB,EAAoB,IAC/BiB,EAAQjB,EAAoB,GAC5ByV,EAAsBzV,EAAoB,IAE1CuM,EAAO,GACP4Q,EAAa5Q,EAAK6Q,KAGlBC,EAAqBpc,EAAM,WAC7BsL,EAAK6Q,KAAKrd,MAGRud,EAAgBrc,EAAM,WACxBsL,EAAK6Q,KAAK,QAGRzH,EAAgBF,EAAoB,QAMxC/U,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,OAJrB2V,IAAuBC,IAAkB3H,GAIF,CAClDyH,KAAM,SAASA,KAAKG,GAClB,OAAOA,IAAcxd,GACjBod,EAAW3c,KAAKc,EAASqD,OACzBwY,EAAW3c,KAAKc,EAASqD,MAAOqI,EAAUuQ,QAO5C,SAAUnd,EAAQD,EAASH,GAEhBA,EAAoB,IAIrCwd,CAAW,UAKL,SAAUpd,EAAQD,EAASH,GAIjC,IAAIY,EAAaZ,EAAoB,IACjCgC,EAAuBhC,EAAoB,IAC3CwC,EAAkBxC,EAAoB,IACtCc,EAAcd,EAAoB,GAElCwS,EAAUhQ,EAAgB,WAE9BpC,EAAOD,QAAU,SAAUsd,GACzB,IAAIT,EAAcpc,EAAW6c,GAGzB3c,GAAekc,IAAgBA,EAAYxK,KAC7C9M,EAHmB1D,EAAqB6B,GAGzBmZ,EAAaxK,EAAS,CACnClL,cAAc,EACd5C,IAAK,WAAc,OAAOC,UAQ1B,SAAUvE,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBuN,EAAkBvN,EAAoB,IACtC8N,EAAY9N,EAAoB,IAChCsN,EAAWtN,EAAoB,IAC/BsB,EAAWtB,EAAoB,IAC/BqR,EAAqBrR,EAAoB,IACzCoT,EAAiBpT,EAAoB,IACrCqT,EAA+BrT,EAAoB,IACnD0V,EAA0B1V,EAAoB,IAE9CsW,EAAsBjD,EAA6B,UACnDuC,EAAiBF,EAAwB,SAAU,CAAEK,WAAW,EAAM+G,EAAG,EAAG3S,EAAG,IAE/EiE,EAAM1E,KAAK0E,IACXL,EAAMrE,KAAKqE,IAOfrN,EAAE,CAAEkH,OAAQ,QAASmM,OAAO,EAAMrM,QAAS4O,IAAwBV,GAAkB,CACnF8H,OAAQ,SAASA,OAAO1I,EAAO2I,GAC7B,IAIIC,EAAaC,EAAmB1J,EAAGH,EAAGkB,EAAMD,EAJ5CnQ,EAAIxD,EAASqD,MACbsP,EAAM3G,EAASxI,EAAEqC,QACjB2W,EAAcvQ,EAAgByH,EAAOf,GACrCkC,EAAkBjP,UAAUC,OAWhC,GATwB,IAApBgP,EACFyH,EAAcC,EAAoB,EAGlCA,EAF6B,IAApB1H,GACTyH,EAAc,EACM3J,EAAM6J,IAE1BF,EAAczH,EAAkB,EACZpI,EAAIK,EAAIN,EAAU6P,GAAc,GAAI1J,EAAM6J,IApB7C,iBAsBf7J,EAAM2J,EAAcC,EACtB,MAAM5W,UAtB0B,mCAyBlC,IADAkN,EAAI9C,EAAmBvM,EAAG+Y,GACrB7J,EAAI,EAAGA,EAAI6J,EAAmB7J,KACjCkB,EAAO4I,EAAc9J,KACTlP,GAAGsO,EAAee,EAAGH,EAAGlP,EAAEoQ,IAGxC,GAAI0I,GADJzJ,EAAEhN,OAAS0W,GAC0B,CACnC,IAAK7J,EAAI8J,EAAa9J,EAAIC,EAAM4J,EAAmB7J,IAEjDiB,EAAKjB,EAAI4J,GADT1I,EAAOlB,EAAI6J,KAEC/Y,EAAGA,EAAEmQ,GAAMnQ,EAAEoQ,UACbpQ,EAAEmQ,GAEhB,IAAKjB,EAAIC,EAASA,EAAM4J,EAAoBD,EAA9B5J,EAA2CA,WAAYlP,EAAEkP,EAAI,QACtE,GAAkB6J,EAAdD,EACT,IAAK5J,EAAIC,EAAM4J,EAAuBC,EAAJ9J,EAAiBA,IAEjDiB,EAAKjB,EAAI4J,EAAc,GADvB1I,EAAOlB,EAAI6J,EAAoB;IAEnB/Y,EAAGA,EAAEmQ,GAAMnQ,EAAEoQ,UACbpQ,EAAEmQ,GAGlB,IAAKjB,EAAI,EAAGA,EAAI4J,EAAa5J,IAC3BlP,EAAEkP,EAAI8J,GAAe5W,UAAU8M,EAAI,GAGrC,OADAlP,EAAEqC,OAAS8M,EAAM4J,EAAoBD,EAC9BzJ,MAOL,SAAU/T,EAAQD,EAASH,GAIVA,EAAoB,GAE3C+U,CAAiB,SAKX,SAAU3U,EAAQD,EAASH,GAIVA,EAAoB,GAE3C+U,CAAiB,YAKX,SAAU3U,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBW,EAASX,EAAoB,GAC7B+d,EAAoB/d,EAAoB,KACxCwd,EAAaxd,EAAoB,KAEjCge,EAAe,cACfC,EAAcF,EAAkBC,GAKpCtd,EAAE,CAAEC,QAAQ,EAAM+G,OAJM/G,EAAOqd,KAIiBC,GAAe,CAC7DA,YAAaA,IAGfT,EAAWQ,IAKL,SAAU5d,EAAQD,EAASH,GAIjC,IAAIW,EAASX,EAAoB,GAC7Bc,EAAcd,EAAoB,GAClCke,EAAsBle,EAAoB,KAC1CkC,EAA8BlC,EAAoB,IAClDme,EAAcne,EAAoB,KAClCiB,EAAQjB,EAAoB,GAC5Boe,EAAape,EAAoB,KACjC8N,EAAY9N,EAAoB,IAChCsN,EAAWtN,EAAoB,IAC/Bqe,EAAUre,EAAoB,KAC9Bse,EAAUte,EAAoB,KAC9B+Z,EAAiB/Z,EAAoB,KACrCga,EAAiBha,EAAoB,KACrC2G,EAAsB3G,EAAoB,IAAI6D,EAC9C6B,EAAiB1F,EAAoB,IAAI6D,EACzC0a,EAAYve,EAAoB,IAChC2C,EAAiB3C,EAAoB,IACrC4C,EAAsB5C,EAAoB,IAE1CqD,EAAmBT,EAAoB8B,IACvCvB,EAAmBP,EAAoBQ,IACvC4a,EAAe,cACfQ,EAAY,WACZvb,EAAY,YAEZwb,EAAc,cACdC,EAAoB/d,EAAOqd,GAC3BW,EAAeD,EACfE,EAAYje,EAAO6d,GACnBK,EAAqBD,GAAaA,EAAU3b,GAC5CM,EAAkBC,OAAO+F,UACzBuV,EAAane,EAAOme,WAEpBC,EAAcT,EAAQU,KACtBC,EAAgBX,EAAQY,OAExBC,EAAW,SAAUC,GACvB,MAAO,CAAU,IAATA,IAGNC,EAAY,SAAUD,GACxB,MAAO,CAAU,IAATA,EAAeA,GAAU,EAAI,MAGnCE,EAAY,SAAUF,GACxB,MAAO,CAAU,IAATA,EAAeA,GAAU,EAAI,IAAMA,GAAU,GAAK,IAAMA,GAAU,GAAK,MAG7EG,EAAc,SAAUC,GAC1B,OAAOA,EAAO,IAAM,GAAKA,EAAO,IAAM,GAAKA,EAAO,IAAM,EAAIA,EAAO,IAGjEC,EAAc,SAAUL,GAC1B,OAAOL,EAAYK,EAAQ,GAAI,IAG7BM,EAAc,SAAUN,GAC1B,OAAOL,EAAYK,EAAQ,GAAI,IAG7BO,EAAY,SAAU3C,EAAarX,GACrCD,EAAesX,EAAY/Z,GAAY0C,EAAK,CAAEjB,IAAK,WAAc,OAAOrB,EAAiBsB,MAAMgB,OAG7FjB,EAAM,SAAUkb,EAAMxK,EAAO1M,EAAOmX,GACtC,IAAIC,EAAWzB,EAAQ3V,GACnBgD,EAAQrI,EAAiBuc,GAC7B,GAAuBlU,EAAMqU,WAAzBD,EAAW1K,EAA0B,MAAM0J,EAAWL,GAC1D,IAAIuB,EAAQ3c,EAAiBqI,EAAM8T,QAAQQ,MACvChL,EAAQ8K,EAAWpU,EAAMuU,WACzBjB,EAAOgB,EAAMtV,MAAMsK,EAAOA,EAAQI,GACtC,OAAOyK,EAAiBb,EAAOA,EAAKnC,WAGlCzZ,EAAM,SAAUwc,EAAMxK,EAAO1M,EAAOwX,EAAYtb,EAAOib,GACzD,IAAIC,EAAWzB,EAAQ3V,GACnBgD,EAAQrI,EAAiBuc,GAC7B,GAAuBlU,EAAMqU,WAAzBD,EAAW1K,EAA0B,MAAM0J,EAAWL,GAI1D,IAHA,IAAIuB,EAAQ3c,EAAiBqI,EAAM8T,QAAQQ,MACvChL,EAAQ8K,EAAWpU,EAAMuU,WACzBjB,EAAOkB,GAAYtb,GACdvE,EAAI,EAAGA,EAAI+U,EAAO/U,IAAK2f,EAAMhL,EAAQ3U,GAAK2e,EAAKa,EAAiBxf,EAAI+U,EAAQ/U,EAAI,IAG3F,GAAK6d,EA0FE,CACL,IAAKjd,EAAM,WACTyd,EAAkB,OACbzd,EAAM,WACX,IAAIyd,GAAmB,MACnBzd,EAAM,WAIV,OAHA,IAAIyd,EACJ,IAAIA,EAAkB,KACtB,IAAIA,EAAkByB,KACfzB,EAAkBlX,MAAQwW,IAC/B,CAMF,IADA,IAC+DrY,EAD3Dya,GAJJzB,EAAe,SAASV,YAAY9W,GAElC,OADAiX,EAAWzZ,KAAMga,GACV,IAAID,EAAkBL,EAAQlX,MAEClE,GAAayb,EAAkBzb,GAC9DgD,EAAOU,EAAoB+X,GAAoB2B,EAAI,EAAsBA,EAAdpa,EAAKkB,SAChExB,EAAMM,EAAKoa,QAAS1B,GACzBzc,EAA4Byc,EAAchZ,EAAK+Y,EAAkB/Y,IAGrEya,EAAqBzN,YAAcgM,EAIjC3E,GAAkBD,EAAe8E,KAAwBtb,GAC3DyW,EAAe6E,EAAoBtb,GAIrC,IAAI+c,EAAW,IAAI1B,EAAU,IAAID,EAAa,IAC1C4B,EAAgB1B,EAAmB2B,QACvCF,EAASE,QAAQ,EAAG,YACpBF,EAASE,QAAQ,EAAG,aAChBF,EAASG,QAAQ,IAAOH,EAASG,QAAQ,IAAItC,EAAYU,EAAoB,CAC/E2B,QAAS,SAASA,QAAQP,EAAYrb,GACpC2b,EAAc/f,KAAKmE,KAAMsb,EAAYrb,GAAS,IAAM,KAEtD8b,SAAU,SAASA,SAAST,EAAYrb,GACtC2b,EAAc/f,KAAKmE,KAAMsb,EAAYrb,GAAS,IAAM,MAErD,CAAE6C,QAAQ,SAlIbkX,EAAe,SAASV,YAAY9W,GAClCiX,EAAWzZ,KAAMga,EAAcX,GAC/B,IAAI+B,EAAa1B,EAAQlX,GACzBhE,EAAiBwB,KAAM,CACrBqb,MAAOzB,EAAU/d,KAAK,IAAIwO,MAAM+Q,GAAa,GAC7CA,WAAYA,IAETjf,IAAa6D,KAAKob,WAAaA,IAGtCnB,EAAY,SAAS+B,SAASnB,EAAQS,EAAYF,GAChD3B,EAAWzZ,KAAMia,EAAWJ,GAC5BJ,EAAWoB,EAAQb,EAAcH,GACjC,IAAIoC,EAAevd,EAAiBmc,GAAQO,WACxCc,EAAS/S,EAAUmS,GACvB,GAAIY,EAAS,GAAcD,EAATC,EAAuB,MAAM/B,EAAW,gBAE1D,GAA0B8B,EAAtBC,GADJd,EAAaA,IAAehgB,GAAY6gB,EAAeC,EAASvT,EAASyS,IACjC,MAAMjB,EA9E/B,gBA+Ef3b,EAAiBwB,KAAM,CACrB6a,OAAQA,EACRO,WAAYA,EACZE,WAAYY,IAET/f,IACH6D,KAAK6a,OAASA,EACd7a,KAAKob,WAAaA,EAClBpb,KAAKsb,WAAaY,IAIlB/f,IACF6e,EAAUhB,EAAc,cACxBgB,EAAUf,EAAW,UACrBe,EAAUf,EAAW,cACrBe,EAAUf,EAAW,eAGvBT,EAAYS,EAAU3b,GAAY,CAChCwd,QAAS,SAASA,QAAQR,GACxB,OAAOvb,EAAIC,KAAM,EAAGsb,GAAY,IAAM,IAAM,IAE9Ca,SAAU,SAASA,SAASb,GAC1B,OAAOvb,EAAIC,KAAM,EAAGsb,GAAY,IAElCc,SAAU,SAASA,SAASd,GAC1B,IAAID,EAAQtb,EAAIC,KAAM,EAAGsb,EAA+B,EAAnB/Y,UAAUC,OAAaD,UAAU,GAAKnH,IAC3E,OAAQigB,EAAM,IAAM,EAAIA,EAAM,KAAO,IAAM,IAE7CgB,UAAW,SAASA,UAAUf,GAC5B,IAAID,EAAQtb,EAAIC,KAAM,EAAGsb,EAA+B,EAAnB/Y,UAAUC,OAAaD,UAAU,GAAKnH,IAC3E,OAAOigB,EAAM,IAAM,EAAIA,EAAM,IAE/BiB,SAAU,SAASA,SAAShB,GAC1B,OAAOV,EAAY7a,EAAIC,KAAM,EAAGsb,EAA+B,EAAnB/Y,UAAUC,OAAaD,UAAU,GAAKnH,MAEpFmhB,UAAW,SAASA,UAAUjB,GAC5B,OAAOV,EAAY7a,EAAIC,KAAM,EAAGsb,EAA+B,EAAnB/Y,UAAUC,OAAaD,UAAU,GAAKnH,OAAgB,GAEpGohB,WAAY,SAASA,WAAWlB,GAC9B,OAAOhB,EAAcva,EAAIC,KAAM,EAAGsb,EAA+B,EAAnB/Y,UAAUC,OAAaD,UAAU,GAAKnH,IAAY,KAElGqhB,WAAY,SAASA,WAAWnB,GAC9B,OAAOhB,EAAcva,EAAIC,KAAM,EAAGsb,EAA+B,EAAnB/Y,UAAUC,OAAaD,UAAU,GAAKnH,IAAY,KAElGygB,QAAS,SAASA,QAAQP,EAAYrb,GACpCxB,EAAIuB,KAAM,EAAGsb,EAAYd,EAAUva,IAErC8b,SAAU,SAASA,SAAST,EAAYrb,GACtCxB,EAAIuB,KAAM,EAAGsb,EAAYd,EAAUva,IAErCyc,SAAU,SAASA,SAASpB,EAAYrb,GACtCxB,EAAIuB,KAAM,EAAGsb,EAAYZ,EAAWza,EAA0B,EAAnBsC,UAAUC,OAAaD,UAAU,GAAKnH,KAEnFuhB,UAAW,SAASA,UAAUrB,EAAYrb,GACxCxB,EAAIuB,KAAM,EAAGsb,EAAYZ,EAAWza,EAA0B,EAAnBsC,UAAUC,OAAaD,UAAU,GAAKnH,KAEnFwhB,SAAU,SAASA,SAAStB,EAAYrb,GACtCxB,EAAIuB,KAAM,EAAGsb,EAAYX,EAAW1a,EAA0B,EAAnBsC,UAAUC,OAAaD,UAAU,GAAKnH,KAEnFyhB,UAAW,SAASA,UAAUvB,EAAYrb,GACxCxB,EAAIuB,KAAM,EAAGsb,EAAYX,EAAW1a,EAA0B,EAAnBsC,UAAUC,OAAaD,UAAU,GAAKnH,KAEnF0hB,WAAY,SAASA,WAAWxB,EAAYrb,GAC1CxB,EAAIuB,KAAM,EAAGsb,EAAYR,EAAa7a,EAA0B,EAAnBsC,UAAUC,OAAaD,UAAU,GAAKnH,KAErF2hB,WAAY,SAASA,WAAWzB,EAAYrb,GAC1CxB,EAAIuB,KAAM,EAAGsb,EAAYP,EAAa9a,EAA0B,EAAnBsC,UAAUC,OAAaD,UAAU,GAAKnH,OA+CzF4C,EAAegc,EAAcX,GAC7Brb,EAAeic,EAAWJ,GAE1Bpe,EAAOD,QAAU,CACf8d,YAAaU,EACbgC,SAAU/B,IAMN,SAAUxe,EAAQD,GAExBC,EAAOD,QAAiC,oBAAhB8d,aAAmD,oBAAb0C,UAKxD,SAAUvgB,EAAQD,EAASH,GAEjC,IAAImC,EAAWnC,EAAoB,IAEnCI,EAAOD,QAAU,SAAUyH,EAAQ6I,EAAKzH,GACtC,IAAK,IAAIrD,KAAO8K,EAAKtO,EAASyF,EAAQjC,EAAK8K,EAAI9K,GAAMqD,GACrD,OAAOpB,IAMH,SAAUxH,EAAQD,GAExBC,EAAOD,QAAU,SAAUqF,EAAIwX,EAAaxV,GAC1C,KAAMhC,aAAcwX,GAClB,MAAM/V,UAAU,cAAgBO,EAAOA,EAAO,IAAM,IAAM,cAC1D,OAAOhC,IAML,SAAUpF,EAAQD,EAASH,GAEjC,IAAI8N,EAAY9N,EAAoB,IAChCsN,EAAWtN,EAAoB,IAInCI,EAAOD,QAAU,SAAUqF,GACzB,GAAIA,IAAOzF,GAAW,OAAO,EAC7B,IAAIqf,EAAStR,EAAUtI,GACnB2B,EAASmG,EAAS8R,GACtB,GAAIA,IAAWjY,EAAQ,MAAM2X,WAAW,yBACxC,OAAO3X,IAMH,SAAU/G,EAAQD,GAIxB,IACIwhB,EAAMjY,KAAKiY,IACXC,EAAMlY,KAAKkY,IACX1T,EAAQxE,KAAKwE,MACb2T,EAAMnY,KAAKmY,IACXC,EAAMpY,KAAKoY,IA6Ef1hB,EAAOD,QAAU,CACf6e,KA5ES,SAAUI,EAAQ2C,EAAgB/B,GAC3C,IAOIgC,EAAUC,EAAU1P,EAPpBiN,EAAS,IAAIxQ,MAAMgR,GACnBkC,EAAyB,EAARlC,EAAY+B,EAAiB,EAC9CI,GAAQ,GAAKD,GAAkB,EAC/BE,EAAQD,GAAQ,EAChBE,EAAwB,KAAnBN,EAAwBH,EAAI,GAAI,IAAMA,EAAI,GAAI,IAAM,EACzDU,EAAOlD,EAAS,GAAgB,IAAXA,GAAgB,EAAIA,EAAS,EAAI,EAAI,EAC1D1W,EAAQ,EAkCZ,KAhCA0W,EAASuC,EAAIvC,KAECA,GAAUA,IAlBX,EAAA,GAoBX6C,EAAW7C,GAAUA,EAAS,EAAI,EAClC4C,EAAWG,IAEXH,EAAW9T,EAAM2T,EAAIzC,GAAU0C,GAC3B1C,GAAU7M,EAAIqP,EAAI,GAAII,IAAa,IACrCA,IACAzP,GAAK,GAOW,IAJhB6M,GADsB,GAApB4C,EAAWI,EACHC,EAAK9P,EAEL8P,EAAKT,EAAI,EAAG,EAAIQ,IAEf7P,IACXyP,IACAzP,GAAK,GAEiB4P,GAApBH,EAAWI,GACbH,EAAW,EACXD,EAAWG,GACkB,GAApBH,EAAWI,GACpBH,GAAY7C,EAAS7M,EAAI,GAAKqP,EAAI,EAAGG,GACrCC,GAAsBI,IAEtBH,EAAW7C,EAASwC,EAAI,EAAGQ,EAAQ,GAAKR,EAAI,EAAGG,GAC/CC,EAAW,IAGU,GAAlBD,EAAqBvC,EAAO9W,KAAsB,IAAXuZ,EAAgBA,GAAY,IAAKF,GAAkB,GAGjG,IAFAC,EAAWA,GAAYD,EAAiBE,EACxCC,GAAkBH,EACM,EAAjBG,EAAoB1C,EAAO9W,KAAsB,IAAXsZ,EAAgBA,GAAY,IAAKE,GAAkB,GAEhG,OADA1C,IAAS9W,IAAiB,IAAP4Z,EACZ9C,GA+BPN,OA5BW,SAAUM,EAAQuC,GAC7B,IAQIE,EARAjC,EAAQR,EAAOrY,OACf+a,EAAyB,EAARlC,EAAY+B,EAAiB,EAC9CI,GAAQ,GAAKD,GAAkB,EAC/BE,EAAQD,GAAQ,EAChBI,EAAQL,EAAiB,EACzBxZ,EAAQsX,EAAQ,EAChBsC,EAAO9C,EAAO9W,KACdsZ,EAAkB,IAAPM,EAGf,IADAA,IAAS,EACM,EAARC,EAAWP,EAAsB,IAAXA,EAAiBxC,EAAO9W,GAAQA,IAAS6Z,GAAS,GAI/E,IAHAN,EAAWD,GAAY,IAAMO,GAAS,EACtCP,KAAcO,EACdA,GAASR,EACM,EAARQ,EAAWN,EAAsB,IAAXA,EAAiBzC,EAAO9W,GAAQA,IAAS6Z,GAAS,GAC/E,GAAiB,IAAbP,EACFA,EAAW,EAAII,MACV,CAAA,GAAIJ,IAAaG,EACtB,OAAOF,EAAW9B,IAAMmC,GA3Eb,EAAA,EAAA,EAAA,EA6EXL,GAAsBL,EAAI,EAAGG,GAC7BC,GAAsBI,EACtB,OAAQE,GAAQ,EAAI,GAAKL,EAAWL,EAAI,EAAGI,EAAWD,MAWpD,SAAU3hB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBwiB,EAAsBxiB,EAAoB,KAM9CU,EAAE,CAAEkH,OAAQ,cAAeC,MAAM,EAAMH,QAJP8a,EAAoBC,2BAIyB,CAC3EC,OAAQF,EAAoBE,UAMxB,SAAUtiB,EAAQD,EAASH,GAIjC,IA4BIiR,EA5BAiN,EAAsBle,EAAoB,KAC1Cc,EAAcd,EAAoB,GAClCW,EAASX,EAAoB,GAC7BoB,EAAWpB,EAAoB,IAC/BkB,EAAMlB,EAAoB,IAC1BwK,EAAUxK,EAAoB,KAC9BkC,EAA8BlC,EAAoB,IAClDmC,EAAWnC,EAAoB,IAC/B0F,EAAiB1F,EAAoB,IAAI6D,EACzCkW,EAAiB/Z,EAAoB,KACrCga,EAAiBha,EAAoB,KACrCwC,EAAkBxC,EAAoB,IACtCuC,EAAMvC,EAAoB,IAE1B2iB,EAAYhiB,EAAOgiB,UACnBC,EAAqBD,GAAaA,EAAUpZ,UAC5CsZ,EAAoBliB,EAAOkiB,kBAC3BC,EAA6BD,GAAqBA,EAAkBtZ,UACpEwZ,EAAaJ,GAAa5I,EAAe4I,GACzCK,EAAsBJ,GAAsB7I,EAAe6I,GAC3Drf,EAAkBC,OAAO+F,UACzB0Z,EAAgB1f,EAAgB0f,cAEhC/R,EAAgB1O,EAAgB,eAChC0gB,EAAkB3gB,EAAI,mBAEtBkgB,EAA4BvE,KAAyBlE,GAA4C,UAA1BxP,EAAQ7J,EAAOwiB,OACtFC,GAA0B,EAG1BC,EAA6B,CAC/BV,UAAW,EACXW,WAAY,EACZT,kBAAmB,EACnBU,WAAY,EACZC,YAAa,EACbC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,aAAc,GAGZlB,EAAS,SAASA,EAAOld,GAC3B,IAAIqe,EAAQrZ,EAAQhF,GACpB,MAAiB,aAAVqe,GAAwB3iB,EAAImiB,EAA4BQ,IAG7DC,EAAe,SAAUte,GAC3B,OAAOpE,EAASoE,IAAOtE,EAAImiB,EAA4B7Y,EAAQhF,KA0DjE,IAAKyL,KAAQoS,EACN1iB,EAAOsQ,KAAOwR,GAA4B,GAIjD,KAAKA,GAAkD,mBAAdM,GAA4BA,IAAejZ,SAASP,aAE3FwZ,EAAa,SAASA,IACpB,MAAM9b,UAAU,yBAEdwb,GAA2B,IAAKxR,KAAQoS,EACtC1iB,EAAOsQ,IAAO+I,EAAerZ,EAAOsQ,GAAO8R,GAInD,KAAKN,IAA8BO,GAAuBA,IAAwBzf,KAChFyf,EAAsBD,EAAWxZ,UAC7BkZ,GAA2B,IAAKxR,KAAQoS,EACtC1iB,EAAOsQ,IAAO+I,EAAerZ,EAAOsQ,GAAM1H,UAAWyZ,GAS7D,GAJIP,GAA6B1I,EAAe+I,KAAgCE,GAC9EhJ,EAAe8I,EAA4BE,GAGzCliB,IAAgBI,EAAI8hB,EAAqB9R,GAK3C,IAAKD,KAJLmS,GAA0B,EAC1B1d,EAAesd,EAAqB9R,EAAe,CAAExM,IAAK,WACxD,OAAOtD,EAASuD,MAAQA,KAAKue,GAAmBnjB,MAErCsjB,EAAgC1iB,EAAOsQ,IAClD/O,EAA4BvB,EAAOsQ,GAAOiS,EAAiBjS,GAI/D7Q,EAAOD,QAAU,CACfsiB,0BAA2BA,EAC3BS,gBAAiBE,GAA2BF,EAC5Ca,YA/FgB,SAAUve,GAC1B,GAAIse,EAAate,GAAK,OAAOA,EAC7B,MAAMyB,UAAU,gCA8FhB+c,uBA3F2B,SAAUtR,GACrC,GAAIsH,GACF,GAAIiJ,EAAcziB,KAAKuiB,EAAYrQ,GAAI,OAAOA,OACzC,IAAK,IAAIuR,KAASZ,EAA4B,GAAIniB,EAAImiB,EAA4BpS,GAAO,CAC9F,IAAIiT,EAAwBvjB,EAAOsjB,GACnC,GAAIC,IAA0BxR,IAAMwR,GAAyBjB,EAAcziB,KAAK0jB,EAAuBxR,IACrG,OAAOA,EAET,MAAMzL,UAAU,4CAoFlBkd,uBAjF2B,SAAUtJ,EAAKuJ,EAAU1c,GACpD,GAAK5G,EAAL,CACA,GAAI4G,EAAQ,IAAK,IAAIuc,KAASZ,EAA4B,CACxD,IAAIa,EAAwBvjB,EAAOsjB,GAC/BC,GAAyBhjB,EAAIgjB,EAAsB3a,UAAWsR,WACzDqJ,EAAsB3a,UAAUsR,GAGtCmI,EAAoBnI,KAAQnT,GAC/BvF,EAAS6gB,EAAqBnI,GAAKnT,GAC/B+a,GAA6BG,EAAmB/H,IADRuJ,KAyE9CC,6BApEiC,SAAUxJ,EAAKuJ,EAAU1c,GAC1D,IAAIuc,EAAOC,EACX,GAAKpjB,EAAL,CACA,GAAIkZ,EAAgB,CAClB,GAAItS,EAAQ,IAAKuc,KAASZ,GACxBa,EAAwBvjB,EAAOsjB,KACF/iB,EAAIgjB,EAAuBrJ,WAC/CqJ,EAAsBrJ,GAGjC,GAAKkI,EAAWlI,KAAQnT,EAKjB,OAHL,IACE,OAAOvF,EAAS4gB,EAAYlI,GAAKnT,GAAoB+a,GAA6BE,EAAU9H,IAAlDuJ,GAC1C,MAAOpa,KAGb,IAAKia,KAASZ,IACZa,EAAwBvjB,EAAOsjB,KACAC,EAAsBrJ,KAAQnT,GAC3DvF,EAAS+hB,EAAuBrJ,EAAKuJ,KAiDzC1B,OAAQA,EACRoB,aAAcA,EACdf,WAAYA,EACZC,oBAAqBA,IAMjB,SAAU5iB,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBiB,EAAQjB,EAAoB,GAC5BskB,EAAoBtkB,EAAoB,KACxCqB,EAAWrB,EAAoB,IAC/BuN,EAAkBvN,EAAoB,IACtCsN,EAAWtN,EAAoB,IAC/BukB,EAAqBvkB,EAAoB,KAEzCie,EAAcqG,EAAkBrG,YAChC0C,EAAW2D,EAAkB3D,SAC7B6D,EAAyBvG,EAAY1U,UAAUmB,MAQnDhK,EAAE,CAAEkH,OAAQ,cAAemM,OAAO,EAAMtM,QAAQ,EAAMC,OANhCzG,EAAM,WAC1B,OAAQ,IAAIgd,EAAY,GAAGvT,MAAM,EAAG3K,IAAWggB,cAKgC,CAC/ErV,MAAO,SAASA,MAAMsK,EAAOG,GAC3B,GAAIqP,IAA2BzkB,IAAaoV,IAAQpV,GAClD,OAAOykB,EAAuBhkB,KAAKa,EAASsD,MAAOqQ,GASrD,IAPA,IAAI7N,EAAS9F,EAASsD,MAAMob,WACxB0E,EAAQlX,EAAgByH,EAAO7N,GAC/B8V,EAAM1P,EAAgB4H,IAAQpV,GAAYoH,EAASgO,EAAKhO,GACxDN,EAAS,IAAK0d,EAAmB5f,KAAMsZ,GAA9B,CAA4C3Q,EAAS2P,EAAMwH,IACpEC,EAAa,IAAI/D,EAAShc,MAC1BggB,EAAa,IAAIhE,EAAS9Z,GAC1B6B,EAAQ,EACL+b,EAAQxH,GACb0H,EAAWjE,SAAShY,IAASgc,EAAW5D,SAAS2D,MACjD,OAAO5d,MAOP,SAAUzG,EAAQD,EAASH,GAEjC,IAAIqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAGhCwS,EAFkBxS,EAAoB,GAE5BwC,CAAgB,WAI9BpC,EAAOD,QAAU,SAAU2E,EAAG8f,GAC5B,IACIC,EADAnS,EAAIrR,EAASyD,GAAG6N,YAEpB,OAAOD,IAAM3S,KAAc8kB,EAAIxjB,EAASqR,GAAGF,KAAazS,GAAY6kB,EAAqB5X,EAAU6X,KAM/F,SAAUzkB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBskB,EAAoBtkB,EAAoB,KAK5CU,EAAE,CAAEC,QAAQ,EAAM+G,QAJQ1H,EAAoB,MAII,CAChD2gB,SAAU2D,EAAkB3D,YAMxB,SAAUvgB,EAAQD,EAASH,GAEzBA,EAAoB,EAI5BU,CAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCid,IAAK,SAASA,MACZ,OAAO,IAAIC,MAAOC,cAOhB,SAAU5kB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBilB,EAAcjlB,EAAoB,KAKtCU,EAAE,CAAEkH,OAAQ,OAAQmM,OAAO,EAAMrM,OAAQqd,KAAKxb,UAAU0b,cAAgBA,GAAe,CACrFA,YAAaA,KAMT,SAAU7kB,EAAQD,EAASH,GAIjC,IAAIiB,EAAQjB,EAAoB,GAC5BklB,EAAWllB,EAAoB,KAAKgV,MAEpC2M,EAAMjY,KAAKiY,IACXwD,EAAgBJ,KAAKxb,UACrByb,EAAUG,EAAcH,QACxBI,EAAwBD,EAAcF,YAK1C7kB,EAAOD,QAAWc,EAAM,WACtB,MAA0D,4BAAnDmkB,EAAsB5kB,KAAK,IAAIukB,MAAM,KAAO,QAC9C9jB,EAAM,WACXmkB,EAAsB5kB,KAAK,IAAIukB,KAAK5E,QAChC,SAAS8E,cACb,IAAKI,SAASL,EAAQxkB,KAAKmE,OAAQ,MAAMma,WAAW,sBACpD,IAAIwG,EAAO3gB,KACP4gB,EAAOD,EAAKE,iBACZC,EAAeH,EAAKI,qBACpBpD,EAAOiD,EAAO,EAAI,IAAa,KAAPA,EAAc,IAAM,GAChD,OAAOjD,EAAO4C,EAASvD,EAAI4D,GAAOjD,EAAO,EAAI,EAAG,GAC9C,IAAM4C,EAASI,EAAKK,cAAgB,EAAG,EAAG,GAC1C,IAAMT,EAASI,EAAKM,aAAc,EAAG,GACrC,IAAMV,EAASI,EAAKO,cAAe,EAAG,GACtC,IAAMX,EAASI,EAAKQ,gBAAiB,EAAG,GACxC,IAAMZ,EAASI,EAAKS,gBAAiB,EAAG,GACxC,IAAMb,EAASO,EAAc,EAAG,GAChC,KACAL,GAKE,SAAUhlB,EAAQD,EAASH,GAGjC,IAAIsN,EAAWtN,EAAoB,IAC/BgmB,EAAShmB,EAAoB,KAC7BuK,EAAyBvK,EAAoB,IAE7CiO,EAAOvE,KAAKuE,KAGZT,EAAe,SAAUyY,GAC3B,OAAO,SAAUvY,EAAOwY,EAAWC,GACjC,IAIIC,EAASC,EAJTxB,EAAIzd,OAAOmD,EAAuBmD,IAClC4Y,EAAezB,EAAE1d,OACjBof,EAAUJ,IAAepmB,GAAY,IAAMqH,OAAO+e,GAClDK,EAAelZ,EAAS4Y,GAE5B,OAAIM,GAAgBF,GAA2B,IAAXC,EAAsB1B,IAC1DuB,EAAUI,EAAeF,IACzBD,EAAeL,EAAOxlB,KAAK+lB,EAAStY,EAAKmY,EAAUG,EAAQpf,UAC1CA,SAAkBkf,EAAeA,EAAa3b,MAAM,EAAG0b,IACjEH,EAASpB,EAAIwB,EAAeA,EAAexB,KAItDzkB,EAAOD,QAAU,CAGf6U,MAAOxH,GAAa,GAGpB2H,IAAK3H,GAAa,KAMd,SAAUpN,EAAQD,EAASH,GAIjC,IAAI8N,EAAY9N,EAAoB,IAChCuK,EAAyBvK,EAAoB,IAIjDI,EAAOD,QAAU,GAAG6lB,QAAU,SAASA,OAAO5Q,GAC5C,IAAIqR,EAAMrf,OAAOmD,EAAuB5F,OACpCkC,EAAS,GACTuN,EAAItG,EAAUsH,GAClB,GAAIhB,EAAI,GAAKA,GAAKsS,SAAU,MAAM5H,WAAW,+BAC7C,KAAU,EAAJ1K,GAAQA,KAAO,KAAOqS,GAAOA,GAAc,EAAJrS,IAAOvN,GAAU4f,GAC9D,OAAO5f,IAMH,SAAUzG,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBiB,EAAQjB,EAAoB,GAC5BsB,EAAWtB,EAAoB,IAC/BwB,EAAcxB,EAAoB,IAStCU,EAAE,CAAEkH,OAAQ,OAAQmM,OAAO,EAAMrM,OAPpBzG,EAAM,WACjB,OAAkC,OAA3B,IAAI8jB,KAAK5E,KAAKwG,UAC2D,IAA3E5B,KAAKxb,UAAUod,OAAOnmB,KAAK,CAAEykB,YAAa,WAAc,OAAO,QAKnB,CAEjD0B,OAAQ,SAASA,OAAOhhB,GACtB,IAAIb,EAAIxD,EAASqD,MACbiiB,EAAKplB,EAAYsD,GACrB,MAAoB,iBAAN8hB,GAAmBvB,SAASuB,GAAa9hB,EAAEmgB,cAAT,SAO9C,SAAU7kB,EAAQD,EAASH,GAEjC,IAAIkC,EAA8BlC,EAAoB,IAClD6mB,EAAkB7mB,EAAoB,KAGtCkD,EAFkBlD,EAAoB,GAEvBwC,CAAgB,eAC/B2iB,EAAgBJ,KAAKxb,UAInBrG,KAAgBiiB,GACpBjjB,EAA4BijB,EAAejiB,EAAc2jB,IAMrD,SAAUzmB,EAAQD,EAASH,GAIjC,IAAIqB,EAAWrB,EAAoB,IAC/BwB,EAAcxB,EAAoB,IAEtCI,EAAOD,QAAU,SAAU2mB,GACzB,GAAa,WAATA,GAA8B,WAATA,GAA8B,YAATA,EAC5C,MAAM7f,UAAU,kBAChB,OAAOzF,EAAYH,EAASsD,MAAgB,WAATmiB,KAMjC,SAAU1mB,EAAQD,EAASH,GAEjC,IAAImC,EAAWnC,EAAoB,IAE/BmlB,EAAgBJ,KAAKxb,UACrBwd,EAAe,eACfC,EAAY,WACZC,EAAqB9B,EAAc6B,GACnChC,EAAUG,EAAcH,QAIxB,IAAID,KAAK5E,KAAO,IAAM4G,GACxB5kB,EAASgjB,EAAe6B,EAAW,SAASzf,WAC1C,IAAI3C,EAAQogB,EAAQxkB,KAAKmE,MAEzB,OAAOC,GAAUA,EAAQqiB,EAAmBzmB,KAAKmE,MAAQoiB,KAOvD,SAAU3mB,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,WAAYmM,OAAO,GAAQ,CACrC3C,KALSpR,EAAoB,QAWzB,SAAUI,EAAQD,EAASH,GAIjC,IAAIgN,EAAYhN,EAAoB,IAChCoB,EAAWpB,EAAoB,IAE/B0K,EAAQ,GAAGA,MACXwc,EAAY,GAYhB9mB,EAAOD,QAAU2J,SAASsH,MAAQ,SAASA,KAAKS,GAC9C,IAAIhH,EAAKmC,EAAUrI,MACfwiB,EAAWzc,EAAMlK,KAAK0G,UAAW,GACjC6K,EAAgB,SAASqV,QAC3B,IAAI3e,EAAO0e,EAASjhB,OAAOwE,EAAMlK,KAAK0G,YACtC,OAAOvC,gBAAgBoN,EAfX,SAAUW,EAAG2U,EAAY5e,GACvC,KAAM4e,KAAcH,GAAY,CAC9B,IAAK,IAAII,EAAO,GAAIjnB,EAAI,EAAGA,EAAIgnB,EAAYhnB,IAAKinB,EAAKjnB,GAAK,KAAOA,EAAI,IAErE6mB,EAAUG,GAAcvd,SAAS,MAAO,gBAAkBwd,EAAK7b,KAAK,KAAO,KAC3E,OAAOyb,EAAUG,GAAY3U,EAAGjK,GAUO8e,CAAU1c,EAAIpC,EAAKtB,OAAQsB,GAAQoC,EAAGlC,MAAMkJ,EAAMpJ,IAG3F,OADIrH,EAASyJ,EAAGtB,aAAYwI,EAAcxI,UAAYsB,EAAGtB,WAClDwI,IAMH,SAAU3R,EAAQD,EAASH,GAIjC,IAAIoB,EAAWpB,EAAoB,IAC/BgC,EAAuBhC,EAAoB,IAC3C+Z,EAAiB/Z,EAAoB,KAGrCwnB,EAFkBxnB,EAAoB,GAEvBwC,CAAgB,eAC/BilB,EAAoB3d,SAASP,UAI3Bie,KAAgBC,GACpBzlB,EAAqB6B,EAAE4jB,EAAmBD,EAAc,CAAE5iB,MAAO,SAAUE,GACzE,GAAmB,mBAARH,OAAuBvD,EAAS0D,GAAI,OAAO,EACtD,IAAK1D,EAASuD,KAAK4E,WAAY,OAAOzE,aAAaH,KAEnD,KAAOG,EAAIiV,EAAejV,IAAI,GAAIH,KAAK4E,YAAczE,EAAG,OAAO,EAC/D,OAAO,MAOL,SAAU1E,EAAQD,EAASH,GAEjC,IAAIc,EAAcd,EAAoB,GAClC0F,EAAiB1F,EAAoB,IAAI6D,EAEzC4jB,EAAoB3d,SAASP,UAC7Bme,EAA4BD,EAAkBlgB,SAC9CogB,EAAS,yBAKT7mB,GAJO,SAIkB2mB,GAC3B/hB,EAAe+hB,EALN,OAK+B,CACtCngB,cAAc,EACd5C,IAAK,WACH,IACE,OAAOgjB,EAA0BlnB,KAAKmE,MAAM8P,MAAMkT,GAAQ,GAC1D,MAAO3d,GACP,MAAO,QAST,SAAU5J,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEC,QAAQ,GAAQ,CAClBgJ,WALW3J,EAAoB,MAW3B,SAAUI,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBY,EAAaZ,EAAoB,IACjCiB,EAAQjB,EAAoB,GAE5B2D,EAAa/C,EAAW,OAAQ,aAChCgnB,EAAK,mBACLC,EAAM,oBACNC,EAAK,oBAELC,EAAM,SAAUtT,EAAOoM,EAAQ9Y,GACjC,IAAIigB,EAAOjgB,EAAOkgB,OAAOpH,EAAS,GAC9B7I,EAAOjQ,EAAOkgB,OAAOpH,EAAS,GAClC,OAAKgH,EAAItb,KAAKkI,KAAWqT,EAAGvb,KAAKyL,IAAW8P,EAAGvb,KAAKkI,KAAWoT,EAAItb,KAAKyb,GAC/D,MAAQvT,EAAMyT,WAAW,GAAG3gB,SAAS,IACrCkN,GAGPiG,EAASzZ,EAAM,WACjB,MAAsC,qBAA/B0C,EAAW,iBACY,cAAzBA,EAAW,YAGdA,GAEFjD,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,EAAMH,OAAQgT,GAAU,CAEhDrS,UAAW,SAASA,UAAU7C,EAAI8C,EAAUC,GAC1C,IAAI1B,EAASlD,EAAWgF,MAAM,KAAMzB,WACpC,MAAwB,iBAAVL,EAAqBA,EAAOgI,QAAQ+Y,EAAIG,GAAOlhB,MAQ7D,SAAUzG,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GACZA,EAAoB,GAIzC2C,CAAehC,EAAOwnB,KAAM,QAAQ,IAK9B,SAAU/nB,EAAQD,EAASH,GAIjC,IAAIooB,EAAapoB,EAAoB,KACjCqoB,EAAmBroB,EAAoB,KAI3CI,EAAOD,QAAUioB,EAAW,MAAO,SAAUE,GAC3C,OAAO,SAASC,MAAQ,OAAOD,EAAK3jB,KAAMuC,UAAUC,OAASD,UAAU,GAAKnH,MAC3EsoB,IAKG,SAAUjoB,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBW,EAASX,EAAoB,GAC7B+I,EAAW/I,EAAoB,IAC/BmC,EAAWnC,EAAoB,IAC/BwoB,EAAyBxoB,EAAoB,KAC7CyoB,EAAUzoB,EAAoB,KAC9Boe,EAAape,EAAoB,KACjCoB,EAAWpB,EAAoB,IAC/BiB,EAAQjB,EAAoB,GAC5ByX,EAA8BzX,EAAoB,KAClD2C,EAAiB3C,EAAoB,IACrC0oB,EAAoB1oB,EAAoB,KAE5CI,EAAOD,QAAU,SAAUsd,EAAkBkL,EAASC,GACpD,IAAItX,GAA8C,IAArCmM,EAAiBpQ,QAAQ,OAClCwb,GAAgD,IAAtCpL,EAAiBpQ,QAAQ,QACnCyb,EAAQxX,EAAS,MAAQ,MACzByX,EAAoBpoB,EAAO8c,GAC3BuL,EAAkBD,GAAqBA,EAAkBxf,UACzDyT,EAAc+L,EACdE,EAAW,GAEXC,EAAY,SAAUrO,GACxB,IAAIsO,EAAeH,EAAgBnO,GACnC1Y,EAAS6mB,EAAiBnO,EACjB,OAAPA,EAAe,SAASuO,IAAIxkB,GAE1B,OADAukB,EAAa3oB,KAAKmE,KAAgB,IAAVC,EAAc,EAAIA,GACnCD,MACE,UAAPkW,EAAkB,SAAUlV,GAC9B,QAAOkjB,IAAYznB,EAASuE,KAAewjB,EAAa3oB,KAAKmE,KAAc,IAARgB,EAAY,EAAIA,IAC1E,OAAPkV,EAAe,SAASnW,IAAIiB,GAC9B,OAAOkjB,IAAYznB,EAASuE,GAAO5F,GAAYopB,EAAa3oB,KAAKmE,KAAc,IAARgB,EAAY,EAAIA,IAC9E,OAAPkV,EAAe,SAAS3Z,IAAIyE,GAC9B,QAAOkjB,IAAYznB,EAASuE,KAAewjB,EAAa3oB,KAAKmE,KAAc,IAARgB,EAAY,EAAIA,IACjF,SAASvC,IAAIuC,EAAKf,GAEpB,OADAukB,EAAa3oB,KAAKmE,KAAc,IAARgB,EAAY,EAAIA,EAAKf,GACtCD,QAMb,GAAIoE,EAAS0U,EAA8C,mBAArBsL,KAAqCF,GAAWG,EAAgBlmB,UAAY7B,EAAM,YACtH,IAAI8nB,GAAoB5N,UAAUnD,WAGlCgF,EAAc4L,EAAOS,eAAeV,EAASlL,EAAkBnM,EAAQwX,GACvEN,EAAuBc,UAAW,OAC7B,GAAIvgB,EAAS0U,GAAkB,GAAO,CAC3C,IAAI8L,EAAW,IAAIvM,EAEfwM,EAAiBD,EAAST,GAAOD,EAAU,IAAM,EAAG,IAAMU,EAE1DE,EAAuBxoB,EAAM,WAAcsoB,EAASroB,IAAI,KAGxDwoB,EAAmBjS,EAA4B,SAAUC,GAAY,IAAIqR,EAAkBrR,KAE3FiS,GAAcd,GAAW5nB,EAAM,WAIjC,IAFA,IAAI2oB,EAAY,IAAIb,EAChBrgB,EAAQ,EACLA,KAASkhB,EAAUd,GAAOpgB,EAAOA,GACxC,OAAQkhB,EAAU1oB,KAAK,KAGpBwoB,MACH1M,EAAc2L,EAAQ,SAAUkB,EAAOnS,GACrC0G,EAAWyL,EAAO7M,EAAaS,GAC/B,IAAI5L,EAAO6W,EAAkB,IAAIK,EAAqBc,EAAO7M,GAE7D,OADItF,GAAY3X,IAAW0oB,EAAQ/Q,EAAU7F,EAAKiX,GAAQjX,EAAMP,GACzDO,KAEGtI,UAAYyf,GACRrW,YAAcqK,IAG5ByM,GAAwBE,KAC1BT,EAAU,UACVA,EAAU,OACV5X,GAAU4X,EAAU,SAGlBS,GAAcH,IAAgBN,EAAUJ,GAGxCD,GAAWG,EAAgBc,cAAcd,EAAgBc,MAU/D,OANAppB,EAAE,CAAEC,QAAQ,EAAM+G,QADlBuhB,EAASxL,GAAoBT,IACY+L,GAAqBE,GAE9DtmB,EAAeqa,EAAaS,GAEvBoL,GAASD,EAAOmB,UAAU/M,EAAaS,EAAkBnM,GAEvD0L,IAMH,SAAU5c,EAAQD,EAASH,GAEjC,IAAIsC,EAAatC,EAAoB,IACjCoB,EAAWpB,EAAoB,IAC/BkB,EAAMlB,EAAoB,IAC1B0F,EAAiB1F,EAAoB,IAAI6D,EACzCtB,EAAMvC,EAAoB,IAC1BgqB,EAAWhqB,EAAoB,KAE/BiqB,EAAW1nB,EAAI,QACfoK,EAAK,EAELud,EAAe1mB,OAAO0mB,cAAgB,WACxC,OAAO,GAGLC,EAAc,SAAU3kB,GAC1BE,EAAeF,EAAIykB,EAAU,CAAErlB,MAAO,CACpCwlB,SAAU,OAAQzd,EAClB0d,SAAU,OAoCVC,EAAOlqB,EAAOD,QAAU,CAC1BmpB,UAAU,EACViB,QAlCY,SAAU/kB,EAAI4C,GAE1B,IAAKhH,EAASoE,GAAK,MAAoB,iBAANA,EAAiBA,GAAmB,iBAANA,EAAiB,IAAM,KAAOA,EAC7F,IAAKtE,EAAIsE,EAAIykB,GAAW,CAEtB,IAAKC,EAAa1kB,GAAK,MAAO,IAE9B,IAAK4C,EAAQ,MAAO,IAEpB+hB,EAAY3kB,GAEZ,OAAOA,EAAGykB,GAAUG,UAwBtBI,YArBgB,SAAUhlB,EAAI4C,GAC9B,IAAKlH,EAAIsE,EAAIykB,GAAW,CAEtB,IAAKC,EAAa1kB,GAAK,OAAO,EAE9B,IAAK4C,EAAQ,OAAO,EAEpB+hB,EAAY3kB,GAEZ,OAAOA,EAAGykB,GAAUI,UAatBI,SATa,SAAUjlB,GAEvB,OADIwkB,GAAYM,EAAKhB,UAAYY,EAAa1kB,KAAQtE,EAAIsE,EAAIykB,IAAWE,EAAY3kB,GAC9EA,IAUTlD,EAAW2nB,IAAY,GAKjB,SAAU7pB,EAAQD,EAASH,GAEjC,IAAIiB,EAAQjB,EAAoB,GAEhCI,EAAOD,SAAWc,EAAM,WACtB,OAAOuC,OAAO0mB,aAAa1mB,OAAOknB,kBAAkB,QAMhD,SAAUtqB,EAAQD,EAASH,GAEjC,IAAIqB,EAAWrB,EAAoB,IAC/B4X,EAAwB5X,EAAoB,KAC5CsN,EAAWtN,EAAoB,IAC/BoR,EAAOpR,EAAoB,IAC3B6X,EAAoB7X,EAAoB,KACxC2X,EAA+B3X,EAAoB,IAEnD2qB,EAAS,SAAUC,EAAS/jB,GAC9BlC,KAAKimB,QAAUA,EACfjmB,KAAKkC,OAASA,IAGFzG,EAAOD,QAAU,SAAUuX,EAAU7M,EAAIgH,EAAMgZ,EAAYC,GACvE,IACI/b,EAAUgc,EAAQriB,EAAOvB,EAAQN,EAAQmR,EAAMD,EAD/ChG,EAAgBX,EAAKvG,EAAIgH,EAAMgZ,EAAa,EAAI,GAGpD,GAAIC,EACF/b,EAAW2I,MACN,CAEL,GAAqB,mBADrBqT,EAASlT,EAAkBH,IACM,MAAMzQ,UAAU,0BAEjD,GAAI2Q,EAAsBmT,GAAS,CACjC,IAAKriB,EAAQ,EAAGvB,EAASmG,EAASoK,EAASvQ,QAAkBuB,EAATvB,EAAgBuB,IAIlE,IAHA7B,EAASgkB,EACL9Y,EAAc1Q,EAAS0W,EAAOL,EAAShP,IAAQ,GAAIqP,EAAK,IACxDhG,EAAc2F,EAAShP,MACb7B,aAAkB8jB,EAAQ,OAAO9jB,EAC/C,OAAO,IAAI8jB,GAAO,GAEtB5b,EAAWgc,EAAOvqB,KAAKkX,GAIzB,IADAM,EAAOjJ,EAASiJ,OACPD,EAAOC,EAAKxX,KAAKuO,IAAWqJ,MAEnC,GAAqB,iBADrBvR,EAAS8Q,EAA6B5I,EAAUgD,EAAegG,EAAKnT,MAAOimB,KAC1ChkB,GAAUA,aAAkB8jB,EAAQ,OAAO9jB,EAC5E,OAAO,IAAI8jB,GAAO,KAGdK,KAAO,SAAUnkB,GACvB,OAAO,IAAI8jB,GAAO,EAAM9jB,KAMpB,SAAUzG,EAAQD,EAASH,GAEjC,IAAIoB,EAAWpB,EAAoB,IAC/Bga,EAAiBha,EAAoB,KAGzCI,EAAOD,QAAU,SAAUuN,EAAOmc,EAAOoB,GACvC,IAAIC,EAAWC,EAUf,OAPEnR,GAE0C,mBAAlCkR,EAAYrB,EAAMlX,cAC1BuY,IAAcD,GACd7pB,EAAS+pB,EAAqBD,EAAU3hB,YACxC4hB,IAAuBF,EAAQ1hB,WAC/ByQ,EAAetM,EAAOyd,GACjBzd,IAMH,SAAUtN,EAAQD,EAASH,GAIjC,IAAI0F,EAAiB1F,EAAoB,IAAI6D,EACzCuE,EAASpI,EAAoB,IAC7Bme,EAAcne,EAAoB,KAClCoR,EAAOpR,EAAoB,IAC3Boe,EAAape,EAAoB,KACjCyoB,EAAUzoB,EAAoB,KAC9ByZ,EAAiBzZ,EAAoB,KACrCwd,EAAaxd,EAAoB,KACjCc,EAAcd,EAAoB,GAClCuqB,EAAUvqB,EAAoB,KAAKuqB,QACnC3nB,EAAsB5C,EAAoB,IAE1CmD,EAAmBP,EAAoBQ,IACvCgoB,EAAyBxoB,EAAoBU,UAEjDlD,EAAOD,QAAU,CACfkpB,eAAgB,SAAUV,EAASlL,EAAkBnM,EAAQwX,GAC3D,IAAIpW,EAAIiW,EAAQ,SAAU9W,EAAM6F,GAC9B0G,EAAWvM,EAAMa,EAAG+K,GACpBta,EAAiB0O,EAAM,CACrBvM,KAAMmY,EACN/U,MAAON,EAAO,MACdqc,MAAO1kB,GACPsrB,KAAMtrB,GACNurB,KAAM,IAEHxqB,IAAa+Q,EAAKyZ,KAAO,GAC1B5T,GAAY3X,IAAW0oB,EAAQ/Q,EAAU7F,EAAKiX,GAAQjX,EAAMP,KAG9DjO,EAAmB+nB,EAAuB3N,GAE1C8N,EAAS,SAAU1Z,EAAMlM,EAAKf,GAChC,IAEI4mB,EAAU9iB,EAFV4D,EAAQjJ,EAAiBwO,GACzB4Z,EAAQC,EAAS7Z,EAAMlM,GAqBzB,OAlBE8lB,EACFA,EAAM7mB,MAAQA,GAGd0H,EAAM+e,KAAOI,EAAQ,CACnB/iB,MAAOA,EAAQ6hB,EAAQ5kB,GAAK,GAC5BA,IAAKA,EACLf,MAAOA,EACP4mB,SAAUA,EAAWlf,EAAM+e,KAC3BrT,KAAMjY,GACN4rB,SAAS,GAENrf,EAAMmY,QAAOnY,EAAMmY,MAAQgH,GAC5BD,IAAUA,EAASxT,KAAOyT,GAC1B3qB,EAAawL,EAAMgf,OAClBzZ,EAAKyZ,OAEI,MAAV5iB,IAAe4D,EAAM5D,MAAMA,GAAS+iB,IACjC5Z,GAGP6Z,EAAW,SAAU7Z,EAAMlM,GAC7B,IAGI8lB,EAHAnf,EAAQjJ,EAAiBwO,GAEzBnJ,EAAQ6hB,EAAQ5kB,GAEpB,GAAc,MAAV+C,EAAe,OAAO4D,EAAM5D,MAAMA,GAEtC,IAAK+iB,EAAQnf,EAAMmY,MAAOgH,EAAOA,EAAQA,EAAMzT,KAC7C,GAAIyT,EAAM9lB,KAAOA,EAAK,OAAO8lB,GAiFjC,OA7EAtN,EAAYzL,EAAEnJ,UAAW,CAGvBugB,MAAO,SAASA,QAKd,IAJA,IACIxd,EAAQjJ,EADDsB,MAEP8J,EAAOnC,EAAM5D,MACb+iB,EAAQnf,EAAMmY,MACXgH,GACLA,EAAME,SAAU,EACZF,EAAMD,WAAUC,EAAMD,SAAWC,EAAMD,SAASxT,KAAOjY,WACpD0O,EAAKgd,EAAM/iB,OAClB+iB,EAAQA,EAAMzT,KAEhB1L,EAAMmY,MAAQnY,EAAM+e,KAAOtrB,GACvBe,EAAawL,EAAMgf,KAAO,EAXnB3mB,KAYD2mB,KAAO,GAInBM,SAAU,SAAUjmB,GAClB,IACI2G,EAAQjJ,EADDsB,MAEP8mB,EAAQC,EAFD/mB,KAEgBgB,GAC3B,GAAI8lB,EAAO,CACT,IAAIzT,EAAOyT,EAAMzT,KACbgQ,EAAOyD,EAAMD,gBACVlf,EAAM5D,MAAM+iB,EAAM/iB,OACzB+iB,EAAME,SAAU,EACZ3D,IAAMA,EAAKhQ,KAAOA,GAClBA,IAAMA,EAAKwT,SAAWxD,GACtB1b,EAAMmY,OAASgH,IAAOnf,EAAMmY,MAAQzM,GACpC1L,EAAM+e,MAAQI,IAAOnf,EAAM+e,KAAOrD,GAClClnB,EAAawL,EAAMgf,OAZd3mB,KAaC2mB,OACV,QAASG,GAIb3oB,QAAS,SAASA,QAAQ8O,GAIxB,IAHA,IAEI6Z,EAFAnf,EAAQjJ,EAAiBsB,MACzBoN,EAAgBX,EAAKQ,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GAE/E0rB,EAAQA,EAAQA,EAAMzT,KAAO1L,EAAMmY,OAGxC,IAFA1S,EAAc0Z,EAAM7mB,MAAO6mB,EAAM9lB,IAAKhB,MAE/B8mB,GAASA,EAAME,SAASF,EAAQA,EAAMD,UAKjDtqB,IAAK,SAASA,IAAIyE,GAChB,QAAS+lB,EAAS/mB,KAAMgB,MAI5BwY,EAAYzL,EAAEnJ,UAAW+H,EAAS,CAEhC5M,IAAK,SAASA,IAAIiB,GAChB,IAAI8lB,EAAQC,EAAS/mB,KAAMgB,GAC3B,OAAO8lB,GAASA,EAAM7mB,OAGxBxB,IAAK,SAASA,IAAIuC,EAAKf,GACrB,OAAO2mB,EAAO5mB,KAAc,IAARgB,EAAY,EAAIA,EAAKf,KAEzC,CAEFwkB,IAAK,SAASA,IAAIxkB,GAChB,OAAO2mB,EAAO5mB,KAAMC,EAAkB,IAAVA,EAAc,EAAIA,EAAOA,MAGrD9D,GAAa4E,EAAegN,EAAEnJ,UAAW,OAAQ,CACnD7E,IAAK,WACH,OAAOrB,EAAiBsB,MAAM2mB,QAG3B5Y,GAETqX,UAAW,SAAUrX,EAAG+K,EAAkBnM,GACxC,IAAIua,EAAgBpO,EAAmB,YACnCqO,EAA6BV,EAAuB3N,GACpDsO,EAA2BX,EAAuBS,GAGtDpS,EAAe/G,EAAG+K,EAAkB,SAAU9D,EAAUC,GACtDzW,EAAiBwB,KAAM,CACrBW,KAAMumB,EACNjkB,OAAQ+R,EACRrN,MAAOwf,EAA2BnS,GAClCC,KAAMA,EACNyR,KAAMtrB,MAEP,WAKD,IAJA,IAAIuM,EAAQyf,EAAyBpnB,MACjCiV,EAAOtN,EAAMsN,KACb6R,EAAQnf,EAAM+e,KAEXI,GAASA,EAAME,SAASF,EAAQA,EAAMD,SAE7C,OAAKlf,EAAM1E,SAAY0E,EAAM+e,KAAOI,EAAQA,EAAQA,EAAMzT,KAAO1L,EAAMA,MAAMmY,OAMjE,QAAR7K,EAAuB,CAAEhV,MAAO6mB,EAAM9lB,IAAKyS,MAAM,GACzC,UAARwB,EAAyB,CAAEhV,MAAO6mB,EAAM7mB,MAAOwT,MAAM,GAClD,CAAExT,MAAO,CAAC6mB,EAAM9lB,IAAK8lB,EAAM7mB,OAAQwT,MAAM,GALvC,CAAExT,MADT0H,EAAM1E,OAAS7H,GACYqY,MAAM,IAMlC9G,EAAS,UAAY,UAAWA,GAAQ,GAG3CkM,EAAWC,MAOT,SAAUrd,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBgsB,EAAQhsB,EAAoB,KAE5BisB,EAAcviB,KAAKwiB,MACnBrK,EAAMnY,KAAKmY,IACXsK,EAAOziB,KAAKyiB,KACZrK,EAAMpY,KAAKoY,IAUfphB,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,EAAMH,QARlBukB,GAEoC,KAA7CviB,KAAKwE,MAAM+d,EAAYG,OAAOC,aAE9BJ,EAAYvF,WAAaA,UAIoB,CAChDwF,MAAO,SAASA,MAAMI,GACpB,OAAQA,GAAKA,GAAK,EAAInM,IAAU,kBAAJmM,EACxBzK,EAAIyK,GAAKxK,EACTkK,EAAMM,EAAI,EAAIH,EAAKG,EAAI,GAAKH,EAAKG,EAAI,QAOvC,SAAUlsB,EAAQD,GAExB,IAAI0hB,EAAMnY,KAAKmY,IAIfzhB,EAAOD,QAAUuJ,KAAKsiB,OAAS,SAASA,MAAMM,GAC5C,OAAmB,MAAXA,GAAKA,IAAcA,EAAI,KAAOA,EAAIA,EAAIA,EAAI,EAAIzK,EAAI,EAAIyK,KAM1D,SAAUlsB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GAExBusB,EAAc7iB,KAAK8iB,MACnB3K,EAAMnY,KAAKmY,IACXsK,EAAOziB,KAAKyiB,KAShBzrB,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,EAAMH,SAAU6kB,GAAoC,EAArB,EAAIA,EAAY,KAAW,CAClFC,MARF,SAASA,MAAMF,GACb,OAAQjH,SAASiH,GAAKA,IAAW,GAALA,EAAaA,EAAI,GAAKE,OAAOF,GAAKzK,EAAIyK,EAAIH,EAAKG,EAAIA,EAAI,IAA9CA,MAajC,SAAUlsB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GAExBysB,EAAc/iB,KAAKgjB,MACnB7K,EAAMnY,KAAKmY,IAKfnhB,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,EAAMH,SAAU+kB,GAAe,EAAIA,GAAa,GAAK,IAAM,CACnFC,MAAO,SAASA,MAAMJ,GACpB,OAAmB,IAAXA,GAAKA,GAAUA,EAAIzK,GAAK,EAAIyK,IAAM,EAAIA,IAAM,MAOlD,SAAUlsB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBsiB,EAAOtiB,EAAoB,KAE3B2hB,EAAMjY,KAAKiY,IACXC,EAAMlY,KAAKkY,IAIflhB,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChC8kB,KAAM,SAASA,KAAKL,GAClB,OAAOhK,EAAKgK,GAAKA,GAAK1K,EAAID,EAAI2K,GAAI,EAAI,OAOpC,SAAUlsB,EAAQD,GAIxBC,EAAOD,QAAUuJ,KAAK4Y,MAAQ,SAASA,KAAKgK,GAE1C,OAAmB,IAAXA,GAAKA,IAAWA,GAAKA,EAAIA,EAAIA,EAAI,GAAK,EAAI,IAM9C,SAAUlsB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GAExBkO,EAAQxE,KAAKwE,MACb2T,EAAMnY,KAAKmY,IACX+K,EAAQljB,KAAKkjB,MAIjBlsB,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCglB,MAAO,SAASA,MAAMP,GACpB,OAAQA,KAAO,GAAK,GAAKpe,EAAM2T,EAAIyK,EAAI,IAAOM,GAAS,OAOrD,SAAUxsB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB8sB,EAAQ9sB,EAAoB,KAE5B+sB,EAAarjB,KAAKsjB,KAClBrL,EAAMjY,KAAKiY,IACXzN,EAAIxK,KAAKwK,EAIbxT,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,EAAMH,QAASqlB,GAAcA,EAAW,OAASrG,UAAY,CACrFsG,KAAM,SAASA,KAAKV,GAClB,IAAIW,EAAIH,EAAMnL,EAAI2K,GAAK,GAAK,EAC5B,OAAQW,EAAI,GAAKA,EAAI/Y,EAAIA,KAAOA,EAAI,OAOlC,SAAU9T,EAAQD,GAExB,IAAI+sB,EAAcxjB,KAAKojB,MACnBK,EAAMzjB,KAAKyjB,IAIf/sB,EAAOD,SAAY+sB,GAEI,mBAAlBA,EAAY,KAA4BA,EAAY,IAAM,qBAElC,OAAxBA,GAAa,OACd,SAASJ,MAAMR,GACjB,OAAmB,IAAXA,GAAKA,GAAUA,GAAS,KAALA,GAAaA,EAAI,KAAOA,EAAIA,EAAIA,EAAI,EAAIa,EAAIb,GAAK,GAC1EY,GAKE,SAAU9sB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB8sB,EAAQ9sB,EAAoB,KAIhCU,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,EAAMH,OAAQolB,GAASpjB,KAAKojB,OAAS,CAAEA,MAAOA,KAKlE,SAAU1sB,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAAEulB,OAJvBptB,EAAoB,QAS3B,SAAUI,EAAQD,EAASH,GAEjC,IAAIsiB,EAAOtiB,EAAoB,KAE3B2hB,EAAMjY,KAAKiY,IACXC,EAAMlY,KAAKkY,IACXyL,EAAUzL,EAAI,GAAI,IAClB0L,EAAY1L,EAAI,GAAI,IACpB2L,EAAQ3L,EAAI,EAAG,MAAQ,EAAI0L,GAC3BE,EAAQ5L,EAAI,GAAI,KAQpBxhB,EAAOD,QAAUuJ,KAAK0jB,QAAU,SAASA,OAAOd,GAC9C,IAEIznB,EAAGgC,EAFH4mB,EAAO9L,EAAI2K,GACXoB,EAAQpL,EAAKgK,GAEjB,OAAImB,EAAOD,EAAcE,GAAwBD,EAAOD,EAAQF,EATrD,EAAID,EAAU,EAAIA,GASgDG,EAAQF,EAIxEC,GAFb1mB,GADAhC,GAAK,EAAIyoB,EAAYD,GAAWI,IAClB5oB,EAAI4oB,KAEI5mB,GAAUA,EAAe6mB,EAAQhH,SAChDgH,EAAQ7mB,IAMX,SAAUzG,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GAExB2tB,EAASjkB,KAAKkkB,MACdjM,EAAMjY,KAAKiY,IACXwK,EAAOziB,KAAKyiB,KAQhBzrB,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,EAAMH,SAJlBimB,GAAUA,EAAOjH,SAAUvG,OAASuG,UAID,CAC/CkH,MAAO,SAASA,MAAMC,EAAQC,GAM5B,IALA,IAII7e,EAAK8e,EAJLC,EAAM,EACN3tB,EAAI,EACJ4tB,EAAO/mB,UAAUC,OACjB+mB,EAAO,EAEJ7tB,EAAI4tB,GAELC,GADJjf,EAAM0S,EAAIza,UAAU7G,QAGlB2tB,EAAMA,GADND,EAAMG,EAAOjf,GACK8e,EAAM,EACxBG,EAAOjf,GAGP+e,GAFe,EAAN/e,GACT8e,EAAM9e,EAAMif,GACCH,EACD9e,EAEhB,OAAOif,IAASxH,SAAWA,SAAWwH,EAAO/B,EAAK6B,OAOhD,SAAU5tB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBiB,EAAQjB,EAAoB,GAE5BmuB,EAAazkB,KAAK0kB,KAStB1tB,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,EAAMH,OAPnBzG,EAAM,WACjB,OAAqC,GAA9BktB,EAAW,WAAY,IAAiC,GAArBA,EAAWhnB,UAML,CAChDinB,KAAM,SAASA,KAAK9B,EAAG+B,GACrB,IAAIC,EAAS,MACTC,GAAMjC,EACNkC,GAAMH,EACNI,EAAKH,EAASC,EACdG,EAAKJ,EAASE,EAClB,OAAO,EAAIC,EAAKC,IAAOJ,EAASC,IAAO,IAAMG,EAAKD,GAAMH,EAASE,IAAO,KAAO,KAAO,OAOpF,SAAUpuB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GAExB6hB,EAAMnY,KAAKmY,IACX8M,EAASjlB,KAAKilB,OAIlBjuB,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChC+mB,MAAO,SAASA,MAAMtC,GACpB,OAAOzK,EAAIyK,GAAKqC,MAOd,SAAUvuB,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAAEmkB,MAJxBhsB,EAAoB,QAS1B,SAAUI,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GAExB6hB,EAAMnY,KAAKmY,IACXC,EAAMpY,KAAKoY,IAIfphB,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCgnB,KAAM,SAASA,KAAKvC,GAClB,OAAOzK,EAAIyK,GAAKxK,MAOd,SAAU1hB,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCya,KALStiB,EAAoB,QAWzB,SAAUI,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBiB,EAAQjB,EAAoB,GAC5B8sB,EAAQ9sB,EAAoB,KAE5B2hB,EAAMjY,KAAKiY,IACXwL,EAAMzjB,KAAKyjB,IACXjZ,EAAIxK,KAAKwK,EASbxT,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,EAAMH,OAPnBzG,EAAM,WACjB,OAA6B,OAAtByI,KAAKolB,MAAM,UAM8B,CAChDA,KAAM,SAASA,KAAKxC,GAClB,OAAO3K,EAAI2K,GAAKA,GAAK,GAAKQ,EAAMR,GAAKQ,GAAOR,IAAM,GAAKa,EAAIb,EAAI,GAAKa,GAAKb,EAAI,KAAOpY,EAAI,OAOtF,SAAU9T,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB8sB,EAAQ9sB,EAAoB,KAE5BmtB,EAAMzjB,KAAKyjB,IAIfzsB,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCknB,KAAM,SAASA,KAAKzC,GAClB,IAAIznB,EAAIioB,EAAMR,GAAKA,GACfha,EAAIwa,GAAOR,GACf,OAAOznB,GAAK6hB,SAAW,EAAIpU,GAAKoU,UAAY,GAAK7hB,EAAIyN,IAAM6a,EAAIb,GAAKa,GAAKb,QAOvE,SAAUlsB,EAAQD,EAASH,GAEZA,EAAoB,GAIzC2C,CAAe+G,KAAM,QAAQ,IAKvB,SAAUtJ,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GAExBiO,EAAOvE,KAAKuE,KACZC,EAAQxE,KAAKwE,MAIjBxN,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCmnB,MAAO,SAASA,MAAMxpB,GACpB,OAAa,EAALA,EAAS0I,EAAQD,GAAMzI,OAO7B,SAAUpF,EAAQD,EAASH,GAIjC,IAAIc,EAAcd,EAAoB,GAClCW,EAASX,EAAoB,GAC7B+I,EAAW/I,EAAoB,IAC/BmC,EAAWnC,EAAoB,IAC/BkB,EAAMlB,EAAoB,IAC1BwK,EAAUxK,EAAoB,IAC9B0oB,EAAoB1oB,EAAoB,KACxCwB,EAAcxB,EAAoB,IAClCiB,EAAQjB,EAAoB,GAC5BoI,EAASpI,EAAoB,IAC7B2G,EAAsB3G,EAAoB,IAAI6D,EAC9C2C,EAA2BxG,EAAoB,GAAG6D,EAClD6B,EAAiB1F,EAAoB,IAAI6D,EACzCorB,EAAOjvB,EAAoB,KAAKivB,KAEhCC,EAAS,SACTC,EAAexuB,EAAOuuB,GACtBE,EAAkBD,EAAa5lB,UAG/B8lB,EAAiB7kB,EAAQpC,EAAOgnB,KAAqBF,EAIrDI,EAAW,SAAUthB,GACvB,IACIyW,EAAO8K,EAAOC,EAAOC,EAASC,EAAQvoB,EAAQuB,EAAOinB,EADrDnqB,EAAKhE,EAAYwM,GAAU,GAE/B,GAAiB,iBAANxI,GAA8B,EAAZA,EAAG2B,OAG9B,GAAc,MADdsd,GADAjf,EAAKypB,EAAKzpB,IACC0iB,WAAW,KACQ,KAAVzD,GAElB,GAAc,MADd8K,EAAQ/pB,EAAG0iB,WAAW,KACQ,MAAVqH,EAAe,OAAOpP,SACrC,GAAc,KAAVsE,EAAc,CACvB,OAAQjf,EAAG0iB,WAAW,IACpB,KAAK,GAAI,KAAK,GAAIsH,EAAQ,EAAGC,EAAU,GAAI,MAC3C,KAAK,GAAI,KAAK,IAAKD,EAAQ,EAAGC,EAAU,GAAI,MAC5C,QAAS,OAAQjqB,EAInB,IADA2B,GADAuoB,EAASlqB,EAAGkF,MAAM,IACFvD,OACXuB,EAAQ,EAAGA,EAAQvB,EAAQuB,IAI9B,IAHAinB,EAAOD,EAAOxH,WAAWxf,IAGd,IAAa+mB,EAAPE,EAAgB,OAAOxP,IACxC,OAAOyP,SAASF,EAAQF,GAE5B,OAAQhqB,GAKZ,GAAIuD,EAASmmB,GAASC,EAAa,UAAYA,EAAa,QAAUA,EAAa,SAAU,CAS3F,IARA,IAcqBxpB,EAdjBkqB,EAAgB,SAASzD,OAAOxnB,GAClC,IAAIY,EAAK0B,UAAUC,OAAS,EAAI,EAAIvC,EAChCilB,EAAQllB,KACZ,OAAOklB,aAAiBgG,IAElBR,EAAiBpuB,EAAM,WAAcmuB,EAAgBxmB,QAAQpI,KAAKqpB,KAAarf,EAAQqf,IAAUqF,GACjGxG,EAAkB,IAAIyG,EAAaG,EAAS9pB,IAAMqkB,EAAOgG,GAAiBP,EAAS9pB,IAElFS,EAAOnF,EAAc6F,EAAoBwoB,GAAgB,6KAMhE1kB,MAAM,KAAM4V,EAAI,EAAsBA,EAAdpa,EAAKkB,OAAYkZ,IACrCnf,EAAIiuB,EAAcxpB,EAAMM,EAAKoa,MAAQnf,EAAI2uB,EAAelqB,IAC1DD,EAAemqB,EAAelqB,EAAKa,EAAyB2oB,EAAcxpB,IAK9ExD,EAASxB,EAAQuuB,GAFjBW,EAActmB,UAAY6lB,GACVzc,YAAckd,KAO1B,SAAUzvB,EAAQD,EAASH,GAEjC,IAAIuK,EAAyBvK,EAAoB,IAG7C8vB,EAAa,IAFC9vB,EAAoB,KAED,IACjC+vB,EAAQC,OAAO,IAAMF,EAAaA,EAAa,KAC/CG,EAAQD,OAAOF,EAAaA,EAAa,MAGzCtiB,EAAe,SAAUnB,GAC3B,OAAO,SAAUqB,GACf,IAAI3F,EAASX,OAAOmD,EAAuBmD,IAG3C,OAFW,EAAPrB,IAAUtE,EAASA,EAAO8G,QAAQkhB,EAAO,KAClC,EAAP1jB,IAAUtE,EAASA,EAAO8G,QAAQohB,EAAO,KACtCloB,IAIX3H,EAAOD,QAAU,CAGf6U,MAAOxH,EAAa,GAGpB2H,IAAK3H,EAAa,GAGlByhB,KAAMzhB,EAAa,KAMf,SAAUpN,EAAQD,GAIxBC,EAAOD,QAAU,mDAKX,SAAUC,EAAQD,EAASH,GAEzBA,EAAoB,EAI5BU,CAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClCwlB,QAAS3jB,KAAKkY,IAAI,GAAI,OAMlB,SAAUxhB,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAAEwd,SAJjBrlB,EAAoB,QASnC,SAAUI,EAAQD,EAASH,GAEjC,IAEIkwB,EAFSlwB,EAAoB,GAELqlB,SAI5BjlB,EAAOD,QAAUisB,OAAO/G,UAAY,SAASA,SAAS7f,GACpD,MAAoB,iBAANA,GAAkB0qB,EAAe1qB,KAM3C,SAAUpF,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClCsoB,UALcnwB,EAAoB,QAW9B,SAAUI,EAAQD,EAASH,GAEjC,IAAIoB,EAAWpB,EAAoB,IAE/BkO,EAAQxE,KAAKwE,MAIjB9N,EAAOD,QAAU,SAASgwB,UAAU3qB,GAClC,OAAQpE,EAASoE,IAAO6f,SAAS7f,IAAO0I,EAAM1I,KAAQA,IAMlD,SAAUpF,EAAQD,EAASH,GAEzBA,EAAoB,EAI5BU,CAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClCsG,MAAO,SAASA,MAAMiR,GAEpB,OAAOA,GAAUA,MAOf,SAAUhf,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBmwB,EAAYnwB,EAAoB,KAEhC2hB,EAAMjY,KAAKiY,IAIfjhB,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClCuoB,cAAe,SAASA,cAAchR,GACpC,OAAO+Q,EAAU/Q,IAAWuC,EAAIvC,IAAW,qBAOzC,SAAUhf,EAAQD,EAASH,GAEzBA,EAAoB,EAI5BU,CAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClC2L,iBAAkB,oBAMd,SAAUpT,EAAQD,EAASH,GAEzBA,EAAoB,EAI5BU,CAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClCwoB,kBAAmB,oBAMf,SAAUjwB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBswB,EAAatwB,EAAoB,KAIrCU,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,OAAQ0kB,OAAOkE,YAAcA,GAAc,CAC3EA,WAAYA,KAMR,SAAUlwB,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GAC7BivB,EAAOjvB,EAAoB,KAAKivB,KAChCsB,EAAcvwB,EAAoB,KAElCwwB,EAAc7vB,EAAO2vB,WACrB5V,EAAS,EAAI8V,EAAYD,EAAc,QAAW7J,SAItDtmB,EAAOD,QAAUua,EAAS,SAAS4V,WAAWvoB,GAC5C,IAAI0oB,EAAgBxB,EAAK7nB,OAAOW,IAC5BlB,EAAS2pB,EAAYC,GACzB,OAAkB,IAAX5pB,GAA2C,KAA3B4pB,EAAcxI,OAAO,IAAa,EAAIphB,GAC3D2pB,GAKE,SAAUpwB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB4vB,EAAW5vB,EAAoB,KAInCU,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,OAAQ0kB,OAAOwD,UAAYA,GAAY,CACvEA,SAAUA,KAMN,SAAUxvB,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GAC7BivB,EAAOjvB,EAAoB,KAAKivB,KAChCsB,EAAcvwB,EAAoB,KAElC0wB,EAAY/vB,EAAOivB,SACnBe,EAAM,cACNjW,EAA2C,IAAlCgW,EAAUH,EAAc,OAAmD,KAApCG,EAAUH,EAAc,QAI5EnwB,EAAOD,QAAUua,EAAS,SAASkV,SAAS7nB,EAAQynB,GAClD,IAAI3K,EAAIoK,EAAK7nB,OAAOW,IACpB,OAAO2oB,EAAU7L,EAAI2K,IAAU,IAAOmB,EAAIpkB,KAAKsY,GAAK,GAAK,MACvD6L,GAKE,SAAUtwB,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB8N,EAAY9N,EAAoB,IAChC4wB,EAAkB5wB,EAAoB,KACtCgmB,EAAShmB,EAAoB,KAC7BiB,EAAQjB,EAAoB,GAE5B6wB,EAAgB,GAAIC,QACpB5iB,EAAQxE,KAAKwE,MAEb0T,EAAM,SAAU0K,EAAGlY,EAAG2c,GACxB,OAAa,IAAN3c,EAAU2c,EAAM3c,EAAI,GAAM,EAAIwN,EAAI0K,EAAGlY,EAAI,EAAG2c,EAAMzE,GAAK1K,EAAI0K,EAAIA,EAAGlY,EAAI,EAAG2c,IA4BlFrwB,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAZtBmpB,IACY,UAAvB,KAAQC,QAAQ,IACG,MAAnB,GAAIA,QAAQ,IACS,SAArB,MAAMA,QAAQ,IACuB,yBAArC,mBAAsBA,QAAQ,MAC1B7vB,EAAM,WAEV4vB,EAAcrwB,KAAK,OAKgC,CAEnDswB,QAAS,SAASA,QAAQE,GACxB,IAKIC,EAAGC,EAAG7Q,EAAGrM,EALToL,EAASwR,EAAgBjsB,MACzBwsB,EAAcrjB,EAAUkjB,GACxBviB,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACvB6T,EAAO,GACPzb,EAAS,IAGTuqB,EAAW,SAAUhd,EAAG7B,GAG1B,IAFA,IAAI7J,GAAS,EACT2oB,EAAK9e,IACA7J,EAAQ,GAEf+F,EAAK/F,IADL2oB,GAAMjd,EAAI3F,EAAK/F,IACI,IACnB2oB,EAAKnjB,EAAMmjB,EAAK,MAIhBC,EAAS,SAAUld,GAGrB,IAFA,IAAI1L,EAAQ,EACR6J,EAAI,EACU,KAAT7J,GAEP+F,EAAK/F,GAASwF,GADdqE,GAAK9D,EAAK/F,IACc0L,GACxB7B,EAAKA,EAAI6B,EAAK,KAIdmd,EAAe,WAGjB,IAFA,IAAI7oB,EAAQ,EACR8oB,EAAI,GACU,KAAT9oB,GACP,GAAU,KAAN8oB,GAAsB,IAAV9oB,GAA+B,IAAhB+F,EAAK/F,GAAc,CAChD,IAAIukB,EAAI7lB,OAAOqH,EAAK/F,IACpB8oB,EAAU,KAANA,EAAWvE,EAAIuE,EAAIxL,EAAOxlB,KAAK,IAAK,EAAIysB,EAAE9lB,QAAU8lB,EAE1D,OAAOuE,GAGX,GAAIL,EAAc,GAAmB,GAAdA,EAAkB,MAAMrS,WAAW,6BAE1D,GAAIM,GAAUA,EAAQ,MAAO,MAC7B,GAAIA,IAAW,MAAkB,MAAVA,EAAgB,OAAOhY,OAAOgY,GAKrD,GAJIA,EAAS,IACXkD,EAAO,IACPlD,GAAUA,GAEC,MAATA,EAKF,GAHA8R,GADAD,EA3EI,SAAU3E,GAGlB,IAFA,IAAIlY,EAAI,EACJqd,EAAKnF,EACI,MAANmF,GACLrd,GAAK,GACLqd,GAAM,KAER,KAAa,GAANA,GACLrd,GAAK,EACLqd,GAAM,EACN,OAAOrd,EAiEDyN,CAAIzC,EAASwC,EAAI,EAAG,GAAI,IAAM,IAC1B,EAAIxC,EAASwC,EAAI,GAAIqP,EAAG,GAAK7R,EAASwC,EAAI,EAAGqP,EAAG,GACxDC,GAAK,iBAEG,GADRD,EAAI,GAAKA,GACE,CAGT,IAFAG,EAAS,EAAGF,GACZ7Q,EAAI8Q,EACQ,GAAL9Q,GACL+Q,EAAS,IAAK,GACd/Q,GAAK,EAIP,IAFA+Q,EAASxP,EAAI,GAAIvB,EAAG,GAAI,GACxBA,EAAI4Q,EAAI,EACI,IAAL5Q,GACLiR,EAAO,GAAK,IACZjR,GAAK,GAEPiR,EAAO,GAAKjR,GACZ+Q,EAAS,EAAG,GACZE,EAAO,GACPzqB,EAAS0qB,SAETH,EAAS,EAAGF,GACZE,EAAS,IAAMH,EAAG,GAClBpqB,EAAS0qB,IAAiBvL,EAAOxlB,KAAK,IAAK2wB,GAU7C,OALAtqB,EAFgB,EAAdsqB,EAEO7O,IADTtO,EAAInN,EAAOM,SACWgqB,EAClB,KAAOnL,EAAOxlB,KAAK,IAAK2wB,EAAcnd,GAAKnN,EAC3CA,EAAO6D,MAAM,EAAGsJ,EAAImd,GAAe,IAAMtqB,EAAO6D,MAAMsJ,EAAImd,IAErD7O,EAAOzb,MAQhB,SAAUzG,EAAQD,EAASH,GAEjC,IAAIwK,EAAUxK,EAAoB,IAIlCI,EAAOD,QAAU,SAAUyE,GACzB,GAAoB,iBAATA,GAAuC,UAAlB4F,EAAQ5F,GACtC,MAAMqC,UAAU,wBAElB,OAAQrC,IAMJ,SAAUxE,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBiB,EAAQjB,EAAoB,GAC5B4wB,EAAkB5wB,EAAoB,KAEtC0xB,EAAoB,GAAIC,YAY5BjxB,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAVtBzG,EAAM,WAEjB,MAAgD,MAAzCywB,EAAkBlxB,KAAK,EAAGT,QAC5BkB,EAAM,WAEXywB,EAAkBlxB,KAAK,OAK4B,CACnDmxB,YAAa,SAASA,YAAYC,GAChC,OAAOA,IAAc7xB,GACjB2xB,EAAkBlxB,KAAKowB,EAAgBjsB,OACvC+sB,EAAkBlxB,KAAKowB,EAAgBjsB,MAAOitB,OAOhD,SAAUxxB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB6xB,EAAS7xB,EAAoB,KAIjCU,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,OAAQlE,OAAOquB,SAAWA,GAAU,CACpEA,OAAQA,KAMJ,SAAUzxB,EAAQD,EAASH,GAIjC,IAAIc,EAAcd,EAAoB,GAClCiB,EAAQjB,EAAoB,GAC5B2B,EAAa3B,EAAoB,IACjC8B,EAA8B9B,EAAoB,IAClDiC,EAA6BjC,EAAoB,GACjDsB,EAAWtB,EAAoB,IAC/BsK,EAAgBtK,EAAoB,IAEpC8xB,EAAetuB,OAAOquB,OACtBnsB,EAAiBlC,OAAOkC,eAI5BtF,EAAOD,SAAW2xB,GAAgB7wB,EAAM,WAEtC,GAAIH,GAQiB,IARFgxB,EAAa,CAAExf,EAAG,GAAKwf,EAAapsB,EAAe,GAAI,IAAK,CAC7EE,YAAY,EACZlB,IAAK,WACHgB,EAAef,KAAM,IAAK,CACxBC,MAAO,EACPgB,YAAY,OAGd,CAAE0M,EAAG,KAAMA,EAAS,OAAO,EAE/B,IAAI6B,EAAI,GACJ4d,EAAI,GAEJ1sB,EAAS3B,SACTsuB,EAAW,uBAGf,OAFA7d,EAAE9O,GAAU,EACZ2sB,EAASvnB,MAAM,IAAI3H,QAAQ,SAAUmvB,GAAOF,EAAEE,GAAOA,IACf,GAA/BH,EAAa,GAAI3d,GAAG9O,IAAgB1D,EAAWmwB,EAAa,GAAIC,IAAItmB,KAAK,KAAOumB,IACpF,SAASH,OAAOjqB,EAAQqB,GAM3B,IALA,IAAIipB,EAAI5wB,EAASsG,GACbuO,EAAkBjP,UAAUC,OAC5BuB,EAAQ,EACR3B,EAAwBjF,EAA4B+B,EACpDwC,EAAuBpE,EAA2B4B,EAC7B6E,EAAlByN,GAML,IALA,IAIIxQ,EAJAkf,EAAIva,EAAcpD,UAAUwB,MAC5BzC,EAAOc,EAAwBpF,EAAWkjB,GAAG3e,OAAOa,EAAsB8d,IAAMljB,EAAWkjB,GAC3F1d,EAASlB,EAAKkB,OACdkZ,EAAI,EAEQA,EAATlZ,GACLxB,EAAMM,EAAKoa,KACNvf,IAAeuF,EAAqB7F,KAAKqkB,EAAGlf,KAAMusB,EAAEvsB,GAAOkf,EAAElf,IAEpE,OAAOusB,GACPJ,GAKE,SAAU1xB,EAAQD,EAASH,GAEzBA,EAAoB,EAM5BU,CAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMF,MALhB3H,EAAoB,IAKkB,CACtDoI,OALWpI,EAAoB,OAW3B,SAAUI,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBc,EAAcd,EAAoB,GAClC0a,EAAS1a,EAAoB,KAC7BsB,EAAWtB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCgC,EAAuBhC,EAAoB,IAI3Cc,GACFJ,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAAQgT,GAAU,CACnDyX,iBAAkB,SAASA,iBAAiBptB,EAAGqtB,GAC7CpwB,EAAqB6B,EAAEvC,EAASqD,MAAOI,EAAG,CAAEL,IAAKsI,EAAUolB,GAASxsB,YAAY,EAAM0B,cAAc,QAQpG,SAAUlH,EAAQD,EAASH,GAIjC,IAAIa,EAAUb,EAAoB,IAC9BW,EAASX,EAAoB,GAC7BiB,EAAQjB,EAAoB,GAGhCI,EAAOD,QAAUU,IAAYI,EAAM,WACjC,IAAI0E,EAAM+D,KAAKmD,SAGfwlB,iBAAiB7xB,KAAK,KAAMmF,EAAK,qBAC1BhF,EAAOgF,MAMV,SAAUvF,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBc,EAAcd,EAAoB,GAKtCU,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,QAAS5G,EAAa6G,MAAO7G,GAAe,CAC5EgF,iBALqB9F,EAAoB,OAWrC,SAAUI,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBc,EAAcd,EAAoB,GAKtCU,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,QAAS5G,EAAa6G,MAAO7G,GAAe,CAC5E4E,eAL+B1F,EAAoB,IAKR6D,KAMvC,SAAUzD,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBc,EAAcd,EAAoB,GAClC0a,EAAS1a,EAAoB,KAC7BsB,EAAWtB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCgC,EAAuBhC,EAAoB,IAI3Cc,GACFJ,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAAQgT,GAAU,CACnD2X,iBAAkB,SAASA,iBAAiBttB,EAAGsC,GAC7CrF,EAAqB6B,EAAEvC,EAASqD,MAAOI,EAAG,CAAE3B,IAAK4J,EAAU3F,GAASzB,YAAY,EAAM0B,cAAc,QAQpG,SAAUlH,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBsyB,EAAWtyB,EAAoB,KAAKmb,QAIxCza,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClCsT,QAAS,SAASA,QAAQrW,GACxB,OAAOwtB,EAASxtB,OAOd,SAAU1E,EAAQD,EAASH,GAEjC,IAAIc,EAAcd,EAAoB,GAClC2B,EAAa3B,EAAoB,IACjCuB,EAAkBvB,EAAoB,GACtCqG,EAAuBrG,EAAoB,GAAG6D,EAG9C2J,EAAe,SAAU+kB,GAC3B,OAAO,SAAU/sB,GAOf,IANA,IAKIG,EALAb,EAAIvD,EAAgBiE,GACpBS,EAAOtE,EAAWmD,GAClBqC,EAASlB,EAAKkB,OACd9G,EAAI,EACJwG,EAAS,GAEGxG,EAAT8G,GACLxB,EAAMM,EAAK5F,KACNS,IAAeuF,EAAqB7F,KAAKsE,EAAGa,IAC/CkB,EAAOC,KAAKyrB,EAAa,CAAC5sB,EAAKb,EAAEa,IAAQb,EAAEa,IAG/C,OAAOkB,IAIXzG,EAAOD,QAAU,CAGfgb,QAAS3N,GAAa,GAGtB0N,OAAQ1N,GAAa,KAMjB,SAAUpN,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBgqB,EAAWhqB,EAAoB,KAC/BiB,EAAQjB,EAAoB,GAC5BoB,EAAWpB,EAAoB,IAC/ByqB,EAAWzqB,EAAoB,KAAKyqB,SAEpC+H,EAAehvB,OAAOivB,OAK1B/xB,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,OAJRzG,EAAM,WAAcuxB,EAAa,KAII7qB,MAAOqiB,GAAY,CAChFyI,OAAQ,SAASA,OAAOjtB,GACtB,OAAOgtB,GAAgBpxB,EAASoE,GAAMgtB,EAAa/H,EAASjlB,IAAOA,MAOjE,SAAUpF,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxByoB,EAAUzoB,EAAoB,KAC9BoT,EAAiBpT,EAAoB,IAIzCU,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClC6qB,YAAa,SAASA,YAAYhb,GAChC,IAAIib,EAAM,GAIV,OAHAlK,EAAQ/Q,EAAU,SAAU1D,EAAG4e,GAC7Bxf,EAAeuf,EAAK3e,EAAG4e,IACtB7yB,IAAW,GACP4yB,MAOL,SAAUvyB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBiB,EAAQjB,EAAoB,GAC5BuB,EAAkBvB,EAAoB,GACtC4D,EAAiC5D,EAAoB,GAAG6D,EACxD/C,EAAcd,EAAoB,GAElC6yB,EAAsB5xB,EAAM,WAAc2C,EAA+B,KAK7ElD,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,QAJpB5G,GAAe+xB,EAIqBlrB,MAAO7G,GAAe,CACtE0F,yBAA0B,SAASA,yBAAyBhB,EAAIG,GAC9D,OAAO/B,EAA+BrC,EAAgBiE,GAAKG,OAOzD,SAAUvF,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBc,EAAcd,EAAoB,GAClC8M,EAAU9M,EAAoB,IAC9BuB,EAAkBvB,EAAoB,GACtC+B,EAAiC/B,EAAoB,GACrDoT,EAAiBpT,EAAoB,IAIzCU,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMF,MAAO7G,GAAe,CACtDgyB,0BAA2B,SAASA,0BAA0B3nB,GAO5D,IANA,IAKIxF,EAAKc,EALL3B,EAAIvD,EAAgB4J,GACpB3E,EAA2BzE,EAA+B8B,EAC1DoC,EAAO6G,EAAQhI,GACf+B,EAAS,GACT6B,EAAQ,EAESA,EAAdzC,EAAKkB,SACVV,EAAaD,EAAyB1B,EAAGa,EAAMM,EAAKyC,SACjC3I,IAAWqT,EAAevM,EAAQlB,EAAKc,GAE5D,OAAOI,MAOL,SAAUzG,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBiB,EAAQjB,EAAoB,GAC5B+D,EAA4B/D,EAAoB,IAAI6D,EAMxDnD,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,OAJRzG,EAAM,WAAc,OAAQuC,OAAOmD,oBAAoB,MAIhB,CAC/DA,oBAAqB5C,KAMjB,SAAU3D,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBiB,EAAQjB,EAAoB,GAC5BsB,EAAWtB,EAAoB,IAC/B+yB,EAAuB/yB,EAAoB,KAC3Cyb,EAA2Bzb,EAAoB,KAMnDU,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,OAJRzG,EAAM,WAAc8xB,EAAqB,KAIJprB,MAAO8T,GAA4B,CAChG1B,eAAgB,SAASA,eAAevU,GACtC,OAAOutB,EAAqBzxB,EAASkE,QAQnC,SAAUpF,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClCmrB,GALOhzB,EAAoB,QAWvB,SAAUI,EAAQD,GAIxBC,EAAOD,QAAUqD,OAAOwvB,IAAM,SAASA,GAAG1G,EAAG+B,GAE3C,OAAO/B,IAAM+B,EAAU,IAAN/B,GAAW,EAAIA,GAAM,EAAI+B,EAAI/B,GAAKA,GAAK+B,GAAKA,IAMzD,SAAUjuB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBiB,EAAQjB,EAAoB,GAC5BoB,EAAWpB,EAAoB,IAE/BizB,EAAqBzvB,OAAO0mB,aAKhCxpB,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,OAJRzG,EAAM,WAAcgyB,EAAmB,MAIA,CAC/D/I,aAAc,SAASA,aAAa1kB,GAClC,QAAOpE,EAASoE,MAAMytB,GAAqBA,EAAmBztB,QAO5D,SAAUpF,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBiB,EAAQjB,EAAoB,GAC5BoB,EAAWpB,EAAoB,IAE/BkzB,EAAiB1vB,OAAO2vB,SAK5BzyB,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,OAJRzG,EAAM,WAAciyB,EAAe,MAII,CAC/DC,SAAU,SAASA,SAAS3tB,GAC1B,OAAOpE,EAASoE,MAAM0tB,GAAiBA,EAAe1tB,OAOpD,SAAUpF,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBiB,EAAQjB,EAAoB,GAC5BoB,EAAWpB,EAAoB,IAE/BozB,EAAiB5vB,OAAO6vB,SAK5B3yB,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,OAJRzG,EAAM,WAAcmyB,EAAe,MAII,CAC/DC,SAAU,SAASA,SAAS7tB,GAC1B,OAAOpE,EAASoE,MAAM4tB,GAAiBA,EAAe5tB,OAOpD,SAAUpF,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBsB,EAAWtB,EAAoB,IAC/BszB,EAAatzB,EAAoB,IAOrCU,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,OANtB1H,EAAoB,EAENiB,CAAM,WAAcqyB,EAAW,MAIQ,CAC/DrtB,KAAM,SAASA,KAAKT,GAClB,OAAO8tB,EAAWhyB,EAASkE,QAOzB,SAAUpF,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBc,EAAcd,EAAoB,GAClC0a,EAAS1a,EAAoB,KAC7BsB,EAAWtB,EAAoB,IAC/BwB,EAAcxB,EAAoB,IAClC+Z,EAAiB/Z,EAAoB,KACrCwG,EAA2BxG,EAAoB,GAAG6D,EAIlD/C,GACFJ,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAAQgT,GAAU,CACnD6Y,iBAAkB,SAASA,iBAAiBxuB,GAC1C,IAEIoO,EAFArO,EAAIxD,EAASqD,MACbgB,EAAMnE,EAAYuD,GAAG,GAEzB,GACE,GAAIoO,EAAO3M,EAAyB1B,EAAGa,GAAM,OAAOwN,EAAKzO,UAClDI,EAAIiV,EAAejV,QAQ5B,SAAU1E,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBc,EAAcd,EAAoB,GAClC0a,EAAS1a,EAAoB,KAC7BsB,EAAWtB,EAAoB,IAC/BwB,EAAcxB,EAAoB,IAClC+Z,EAAiB/Z,EAAoB,KACrCwG,EAA2BxG,EAAoB,GAAG6D,EAIlD/C,GACFJ,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAAQgT,GAAU,CACnD8Y,iBAAkB,SAASA,iBAAiBzuB,GAC1C,IAEIoO,EAFArO,EAAIxD,EAASqD,MACbgB,EAAMnE,EAAYuD,GAAG,GAEzB,GACE,GAAIoO,EAAO3M,EAAyB1B,EAAGa,GAAM,OAAOwN,EAAK/P,UAClD0B,EAAIiV,EAAejV,QAQ5B,SAAU1E,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBoB,EAAWpB,EAAoB,IAC/ByqB,EAAWzqB,EAAoB,KAAKyqB,SACpCT,EAAWhqB,EAAoB,KAC/BiB,EAAQjB,EAAoB,GAE5ByzB,EAA0BjwB,OAAOknB,kBAKrChqB,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,OAJRzG,EAAM,WAAcwyB,EAAwB,KAIP9rB,MAAOqiB,GAAY,CAChFU,kBAAmB,SAASA,kBAAkBllB,GAC5C,OAAOiuB,GAA2BryB,EAASoE,GAAMiuB,EAAwBhJ,EAASjlB,IAAOA,MAOvF,SAAUpF,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBoB,EAAWpB,EAAoB,IAC/ByqB,EAAWzqB,EAAoB,KAAKyqB,SACpCT,EAAWhqB,EAAoB,KAC/BiB,EAAQjB,EAAoB,GAE5B0zB,EAAalwB,OAAOmwB,KAKxBjzB,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,OAJRzG,EAAM,WAAcyyB,EAAW,KAIM/rB,MAAOqiB,GAAY,CAChF2J,KAAM,SAASA,KAAKnuB,GAClB,OAAOkuB,GAActyB,EAASoE,GAAMkuB,EAAWjJ,EAASjlB,IAAOA,MAO7D,SAAUpF,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClCmS,eALmBha,EAAoB,QAWnC,SAAUI,EAAQD,EAASH,GAEjC,IAAIyY,EAAwBzY,EAAoB,KAC5CmC,EAAWnC,EAAoB,IAC/BuH,EAAWvH,EAAoB,KAI9ByY,GACHtW,EAASqB,OAAO+F,UAAW,WAAYhC,EAAU,CAAEE,QAAQ,KAMvD,SAAUrH,EAAQD,EAASH,GAIjC,IAAIyY,EAAwBzY,EAAoB,KAC5CwK,EAAUxK,EAAoB,KAIlCI,EAAOD,QAAUsY,EAAwB,GAAGlR,SAAW,SAASA,WAC9D,MAAO,WAAaiD,EAAQ7F,MAAQ,MAMhC,SAAUvE,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB4zB,EAAU5zB,EAAoB,KAAKkb,OAIvCxa,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClCqT,OAAQ,SAASA,OAAOpW,GACtB,OAAO8uB,EAAQ9uB,OAOb,SAAU1E,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB6zB,EAA2B7zB,EAAoB,KAInDU,EAAE,CAAEC,QAAQ,EAAM+G,OAAQ4oB,YAAcuD,GAA4B,CAClEvD,WAAYuD,KAMR,SAAUzzB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB8zB,EAAyB9zB,EAAoB,KAIjDU,EAAE,CAAEC,QAAQ,EAAM+G,OAAQkoB,UAAYkE,GAA0B,CAC9DlE,SAAUkE,KAMN,SAAU1zB,EAAQD,EAASH,GAIjC,IAiDI+zB,EAAUC,EAAsBC,EAAgBC,EAjDhDxzB,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BW,EAASX,EAAoB,GAC7BY,EAAaZ,EAAoB,IACjCm0B,EAAgBn0B,EAAoB,KACpCmC,EAAWnC,EAAoB,IAC/Bme,EAAcne,EAAoB,KAClC2C,EAAiB3C,EAAoB,IACrCwd,EAAaxd,EAAoB,KACjCoB,EAAWpB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCoe,EAAape,EAAoB,KACjCwK,EAAUxK,EAAoB,IAC9BoL,EAAgBpL,EAAoB,IACpCyoB,EAAUzoB,EAAoB,KAC9ByX,EAA8BzX,EAAoB,KAClDukB,EAAqBvkB,EAAoB,KACzCo0B,EAAOp0B,EAAoB,KAAKoD,IAChCixB,EAAYr0B,EAAoB,KAChCs0B,EAAiBt0B,EAAoB,KACrCu0B,EAAmBv0B,EAAoB,KACvCw0B,EAA6Bx0B,EAAoB,KACjDy0B,EAAUz0B,EAAoB,KAC9B4C,EAAsB5C,EAAoB,IAC1C+I,EAAW/I,EAAoB,IAC/BwC,EAAkBxC,EAAoB,IACtCsT,EAAatT,EAAoB,IAEjCwS,EAAUhQ,EAAgB,WAC1BkyB,EAAU,UACVrxB,EAAmBT,EAAoB8B,IACvCvB,EAAmBP,EAAoBQ,IACvCuxB,EAA0B/xB,EAAoBU,UAAUoxB,GACxDE,EAAqBT,EACrBltB,EAAYtG,EAAOsG,UACnBgE,EAAWtK,EAAOsK,SAClB0J,EAAUhU,EAAOgU,QACjBkgB,EAASj0B,EAAW,SACpBk0B,EAAuBN,EAA2B3wB,EAClDkxB,EAA8BD,EAC9BE,EAA8B,WAApBxqB,EAAQmK,GAClBsgB,KAAoBhqB,GAAYA,EAASiqB,aAAev0B,EAAOw0B,eAC/DC,EAAsB,qBAStB1a,EAAS3R,EAAS2rB,EAAS,WAE7B,KAD6BtpB,EAAcwpB,KAAwBxtB,OAAOwtB,IAC7C,CAI3B,GAAmB,KAAfthB,EAAmB,OAAO,EAE9B,IAAK0hB,GAA2C,mBAAzBK,sBAAqC,OAAO,EAGrE,GAAIx0B,IAAY+zB,EAAmBrrB,UAAmB,WAAG,OAAO,EAIhE,GAAkB,IAAd+J,GAAoB,cAAc/G,KAAKqoB,GAAqB,OAAO,EAEvE,IAAIU,EAAUV,EAAmBW,QAAQ,GACrCC,EAAc,SAAUvrB,GAC1BA,EAAK,aAA6B,eAIpC,OAFkBqrB,EAAQ3iB,YAAc,IAC5BH,GAAWgjB,IACdF,EAAQG,KAAK,wBAAwCD,KAG5DE,EAAsBhb,IAAWjD,EAA4B,SAAUC,GACzEkd,EAAmBe,IAAIje,GAAiB,SAAE,gBAIxCke,EAAa,SAAUpwB,GACzB,IAAIiwB,EACJ,SAAOr0B,EAASoE,IAAkC,mBAAnBiwB,EAAOjwB,EAAGiwB,QAAsBA,GAG7DI,EAAS,SAAUP,EAAShpB,EAAOwpB,GACrC,IAAIxpB,EAAMypB,SAAV,CACAzpB,EAAMypB,UAAW,EACjB,IAAIC,EAAQ1pB,EAAM2pB,UAClB5B,EAAU,WAKR,IAJA,IAAIzvB,EAAQ0H,EAAM1H,MACdsxB,EAhDQ,GAgDH5pB,EAAMA,MACX5D,EAAQ,EAEUA,EAAfstB,EAAM7uB,QAAgB,CAC3B,IAKIN,EAAQ4uB,EAAMU,EALdC,EAAWJ,EAAMttB,KACjB2tB,EAAUH,EAAKE,EAASF,GAAKE,EAASE,KACtCf,EAAUa,EAASb,QACnBgB,EAASH,EAASG,OAClB1mB,EAASumB,EAASvmB,OAEtB,IACMwmB,GACGH,IAzDC,IA0DA5pB,EAAMkqB,WAAyBC,GAAkBnB,EAAShpB,GAC9DA,EAAMkqB,UA5DJ,IA8DY,IAAZH,EAAkBxvB,EAASjC,GAEzBiL,GAAQA,EAAO6mB,QACnB7vB,EAASwvB,EAAQzxB,GACbiL,IACFA,EAAO8mB,OACPR,GAAS,IAGTtvB,IAAWuvB,EAASd,QACtBiB,EAAOtvB,EAAU,yBACRwuB,EAAOG,EAAW/uB,IAC3B4uB,EAAKj1B,KAAKqG,EAAQ0uB,EAASgB,GACtBhB,EAAQ1uB,IACV0vB,EAAO3xB,GACd,MAAOoF,GACH6F,IAAWsmB,GAAQtmB,EAAO8mB,OAC9BJ,EAAOvsB,IAGXsC,EAAM2pB,UAAY,GAClB3pB,EAAMypB,UAAW,EACbD,IAAaxpB,EAAMkqB,WAAWI,GAAYtB,EAAShpB,OAIvD6oB,EAAgB,SAAU3tB,EAAM8tB,EAASuB,GAC3C,IAAIC,EAAOT,EACPpB,IACF6B,EAAQ7rB,EAASiqB,YAAY,UACvBI,QAAUA,EAChBwB,EAAMD,OAASA,EACfC,EAAMC,UAAUvvB,GAAM,GAAO,GAC7B7G,EAAOw0B,cAAc2B,IAChBA,EAAQ,CAAExB,QAASA,EAASuB,OAAQA,IACvCR,EAAU11B,EAAO,KAAO6G,IAAO6uB,EAAQS,GAClCtvB,IAAS4tB,GAAqBb,EAAiB,8BAA+BsC,IAGrFD,GAAc,SAAUtB,EAAShpB,GACnC8nB,EAAK5zB,KAAKG,EAAQ,WAChB,IAEIkG,EAFAjC,EAAQ0H,EAAM1H,MAGlB,GAFmBoyB,GAAY1qB,KAG7BzF,EAAS4tB,EAAQ,WACXO,EACFrgB,EAAQsiB,KAAK,qBAAsBryB,EAAO0wB,GACrCH,EAAcC,EAAqBE,EAAS1wB,KAGrD0H,EAAMkqB,UAAYxB,GAAWgC,GAAY1qB,GAhH/B,EADF,EAkHJzF,EAAOmD,OAAO,MAAMnD,EAAOjC,SAKjCoyB,GAAc,SAAU1qB,GAC1B,OAxHY,IAwHLA,EAAMkqB,YAA0BlqB,EAAM4qB,QAG3CT,GAAoB,SAAUnB,EAAShpB,GACzC8nB,EAAK5zB,KAAKG,EAAQ,WACZq0B,EACFrgB,EAAQsiB,KAAK,mBAAoB3B,GAC5BH,EAnIa,mBAmIoBG,EAAShpB,EAAM1H,UAIvDwM,GAAO,SAAUvG,EAAIyqB,EAAShpB,EAAO6qB,GACvC,OAAO,SAAUvyB,GACfiG,EAAGyqB,EAAShpB,EAAO1H,EAAOuyB,KAI1BC,GAAiB,SAAU9B,EAAShpB,EAAO1H,EAAOuyB,GAChD7qB,EAAM8L,OACV9L,EAAM8L,MAAO,EACT+e,IAAQ7qB,EAAQ6qB,GACpB7qB,EAAM1H,MAAQA,EACd0H,EAAMA,MA/IO,EAgJbupB,EAAOP,EAAShpB,GAAO,KAGrB+qB,GAAkB,SAAU/B,EAAShpB,EAAO1H,EAAOuyB,GACrD,IAAI7qB,EAAM8L,KAAV,CACA9L,EAAM8L,MAAO,EACT+e,IAAQ7qB,EAAQ6qB,GACpB,IACE,GAAI7B,IAAY1wB,EAAO,MAAMqC,EAAU,oCACvC,IAAIwuB,EAAOG,EAAWhxB,GAClB6wB,EACFpB,EAAU,WACR,IAAI1L,EAAU,CAAEvQ,MAAM,GACtB,IACEqd,EAAKj1B,KAAKoE,EACRwM,GAAKimB,GAAiB/B,EAAS3M,EAASrc,GACxC8E,GAAKgmB,GAAgB9B,EAAS3M,EAASrc,IAEzC,MAAOtC,GACPotB,GAAe9B,EAAS3M,EAAS3e,EAAOsC,OAI5CA,EAAM1H,MAAQA,EACd0H,EAAMA,MAzKI,EA0KVupB,EAAOP,EAAShpB,GAAO,IAEzB,MAAOtC,GACPotB,GAAe9B,EAAS,CAAEld,MAAM,GAASpO,EAAOsC,MAKhDoO,IAEFka,EAAqB,SAAS0C,QAAQC,GACpCnZ,EAAWzZ,KAAMiwB,EAAoBF,GACrC1nB,EAAUuqB,GACVxD,EAASvzB,KAAKmE,MACd,IAAI2H,EAAQjJ,EAAiBsB,MAC7B,IACE4yB,EAASnmB,GAAKimB,GAAiB1yB,KAAM2H,GAAQ8E,GAAKgmB,GAAgBzyB,KAAM2H,IACxE,MAAOtC,GACPotB,GAAezyB,KAAM2H,EAAOtC,MAIhC+pB,EAAW,SAASuD,QAAQC,GAC1Bp0B,EAAiBwB,KAAM,CACrBW,KAAMovB,EACNtc,MAAM,EACN2d,UAAU,EACVmB,QAAQ,EACRjB,UAAW,GACXO,WAAW,EACXlqB,MAzMQ,EA0MR1H,MAAO7E,OAGFwJ,UAAY4U,EAAYyW,EAAmBrrB,UAAW,CAG7DksB,KAAM,SAASA,KAAK+B,EAAaC,GAC/B,IAAInrB,EAAQqoB,EAAwBhwB,MAChCyxB,EAAWtB,EAAqBvQ,EAAmB5f,KAAMiwB,IAO7D,OANAwB,EAASF,GAA2B,mBAAfsB,GAA4BA,EACjDpB,EAASE,KAA4B,mBAAdmB,GAA4BA,EACnDrB,EAASvmB,OAASmlB,EAAUrgB,EAAQ9E,OAAS9P,GAC7CuM,EAAM4qB,QAAS,EACf5qB,EAAM2pB,UAAUnvB,KAAKsvB,GAvNb,GAwNJ9pB,EAAMA,OAAkBupB,EAAOlxB,KAAM2H,GAAO,GACzC8pB,EAASd,SAIlBoC,QAAS,SAAUD,GACjB,OAAO9yB,KAAK8wB,KAAK11B,GAAW03B,MAGhCzD,EAAuB;AACrB,IAAIsB,EAAU,IAAIvB,EACdznB,EAAQjJ,EAAiBiyB,GAC7B3wB,KAAK2wB,QAAUA,EACf3wB,KAAK4wB,QAAUnkB,GAAKimB,GAAiB/B,EAAShpB,GAC9C3H,KAAK4xB,OAASnlB,GAAKgmB,GAAgB9B,EAAShpB,IAE9CkoB,EAA2B3wB,EAAIixB,EAAuB,SAAUpiB,GAC9D,OAAOA,IAAMkiB,GAAsBliB,IAAMuhB,EACrC,IAAID,EACJe,EAA4BriB,IAG7B7R,GAAmC,mBAAjBszB,IACrBD,EAAaC,EAAc5qB,UAAUksB,KAGrCtzB,EAASgyB,EAAc5qB,UAAW,OAAQ,SAASksB,KAAK+B,EAAaC,GACnE,IAAI5lB,EAAOlN,KACX,OAAO,IAAIiwB,EAAmB,SAAUW,EAASgB,GAC/CrC,EAAW1zB,KAAKqR,EAAM0jB,EAASgB,KAC9Bd,KAAK+B,EAAaC,IAEpB,CAAEhwB,QAAQ,IAGQ,mBAAVotB,GAAsBn0B,EAAE,CAAEC,QAAQ,EAAMiF,YAAY,EAAM8B,QAAQ,GAAQ,CAEnFiwB,MAAO,SAASA,MAAMhtB,GACpB,OAAO2pB,EAAeM,EAAoBC,EAAOlsB,MAAMhI,EAAQuG,iBAMvExG,EAAE,CAAEC,QAAQ,EAAMuE,MAAM,EAAMwC,OAAQgT,GAAU,CAC9C4c,QAAS1C,IAGXjyB,EAAeiyB,EAAoBF,GAAS,GAAO,GACnDlX,EAAWkX,GAEXT,EAAiBrzB,EAAW8zB,GAG5Bh0B,EAAE,CAAEkH,OAAQ8sB,EAAS7sB,MAAM,EAAMH,OAAQgT,GAAU,CAGjD6b,OAAQ,SAASA,OAAOqB,GACtB,IAAIC,EAAa/C,EAAqBnwB,MAEtC,OADAkzB,EAAWtB,OAAO/1B,KAAKT,GAAW63B,GAC3BC,EAAWvC,WAItB50B,EAAE,CAAEkH,OAAQ8sB,EAAS7sB,MAAM,EAAMH,OAAQ7G,GAAW6Z,GAAU,CAG5D6a,QAAS,SAASA,QAAQjJ,GACxB,OAAOgI,EAAezzB,GAAW8D,OAASsvB,EAAiBW,EAAqBjwB,KAAM2nB,MAI1F5rB,EAAE,CAAEkH,OAAQ8sB,EAAS7sB,MAAM,EAAMH,OAAQguB,GAAuB,CAG9DC,IAAK,SAASA,IAAIje,GAChB,IAAIhF,EAAI/N,KACJkzB,EAAa/C,EAAqBpiB,GAClC6iB,EAAUsC,EAAWtC,QACrBgB,EAASsB,EAAWtB,OACpB1vB,EAAS4tB,EAAQ,WACnB,IAAIqD,EAAkB9qB,EAAU0F,EAAE6iB,SAC9Bra,EAAS,GACT6c,EAAU,EACVC,EAAY,EAChBvP,EAAQ/Q,EAAU,SAAU4d,GAC1B,IAAI5sB,EAAQqvB,IACRE,GAAgB,EACpB/c,EAAOpU,KAAK/G,IACZi4B,IACAF,EAAgBt3B,KAAKkS,EAAG4iB,GAASG,KAAK,SAAU7wB,GAC1CqzB,IACJA,GAAgB,EAChB/c,EAAOxS,GAAS9D,IACdozB,GAAazC,EAAQra,KACtBqb,OAEHyB,GAAazC,EAAQra,KAGzB,OADIrU,EAAOmD,OAAOusB,EAAO1vB,EAAOjC,OACzBizB,EAAWvC,SAIpB4C,KAAM,SAASA,KAAKxgB,GAClB,IAAIhF,EAAI/N,KACJkzB,EAAa/C,EAAqBpiB,GAClC6jB,EAASsB,EAAWtB,OACpB1vB,EAAS4tB,EAAQ,WACnB,IAAIqD,EAAkB9qB,EAAU0F,EAAE6iB,SAClC9M,EAAQ/Q,EAAU,SAAU4d,GAC1BwC,EAAgBt3B,KAAKkS,EAAG4iB,GAASG,KAAKoC,EAAWtC,QAASgB,OAI9D,OADI1vB,EAAOmD,OAAOusB,EAAO1vB,EAAOjC,OACzBizB,EAAWvC,YAOhB,SAAUl1B,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GAEjCI,EAAOD,QAAUQ,EAAO22B,SAKlB,SAAUl3B,EAAQD,EAASH,GAEjC,IAiBIm4B,EAAOC,EAASC,EAjBhB13B,EAASX,EAAoB,GAC7BiB,EAAQjB,EAAoB,GAC5BwK,EAAUxK,EAAoB,IAC9BoR,EAAOpR,EAAoB,IAC3BoP,EAAOpP,EAAoB,IAC3BgL,EAAgBhL,EAAoB,IACpCs4B,EAASt4B,EAAoB,KAE7Bu4B,EAAW53B,EAAO43B,SAClBn1B,EAAMzC,EAAO63B,aACb1O,EAAQnpB,EAAO83B,eACf9jB,EAAUhU,EAAOgU,QACjB+jB,EAAiB/3B,EAAO+3B,eACxBC,EAAWh4B,EAAOg4B,SAClBZ,EAAU,EACVa,EAAQ,GACRC,EAAqB,qBAGrBC,EAAM,SAAUnsB,GAElB,GAAIisB,EAAM7tB,eAAe4B,GAAK,CAC5B,IAAI9B,EAAK+tB,EAAMjsB,UACRisB,EAAMjsB,GACb9B,MAIAkuB,EAAS,SAAUpsB,GACrB,OAAO,WACLmsB,EAAInsB,KAIJqsB,EAAW,SAAUlC,GACvBgC,EAAIhC,EAAMroB,OAGRwqB,EAAO,SAAUtsB,GAEnBhM,EAAOu4B,YAAYvsB,EAAK,GAAI4rB,EAASY,SAAW,KAAOZ,EAASa,OAI7Dh2B,GAAQ0mB,IACX1mB,EAAM,SAASo1B,aAAa3tB,GAG1B,IAFA,IAAIpC,EAAO,GACPpI,EAAI,EACkBA,EAAnB6G,UAAUC,QAAYsB,EAAK3B,KAAKI,UAAU7G,MAMjD,OALAu4B,IAAQb,GAAW,YAEH,mBAANltB,EAAmBA,EAAKf,SAASe,IAAKlC,MAAM5I,GAAW0I,IAEjE0vB,EAAMJ,GACCA,GAETjO,EAAQ,SAAS2O,eAAe9rB,UACvBisB,EAAMjsB,IAGS,WAApBnC,EAAQmK,GACVwjB,EAAQ,SAAUxrB,GAChBgI,EAAQ0kB,SAASN,EAAOpsB,KAGjBgsB,GAAYA,EAAS7T,IAC9BqT,EAAQ,SAAUxrB,GAChBgsB,EAAS7T,IAAIiU,EAAOpsB,KAIb+rB,IAAmBJ,GAE5BD,GADAD,EAAU,IAAIM,GACCY,MACflB,EAAQmB,MAAMC,UAAYR,EAC1Bb,EAAQ/mB,EAAKinB,EAAKa,YAAab,EAAM,KAIrC13B,EAAO84B,kBACe,mBAAfP,aACNv4B,EAAO+4B,eACPz4B,EAAMg4B,IACe,UAAtBV,EAASY,SAMThB,EADSU,KAAsB7tB,EAAc,UACrC,SAAU2B,GAChByC,EAAKoB,YAAYxF,EAAc,WAAW6tB,GAAsB,WAC9DzpB,EAAKuqB,YAAYh1B,MACjBm0B,EAAInsB,KAKA,SAAUA,GAChBitB,WAAWb,EAAOpsB,GAAK,KAbzBwrB,EAAQc,EACRt4B,EAAO84B,iBAAiB,UAAWT,GAAU,KAiBjD54B,EAAOD,QAAU,CACfiD,IAAKA,EACL0mB,MAAOA,IAMH,SAAU1pB,EAAQD,EAASH,GAEjC,IAAI0U,EAAY1U,EAAoB,IAEpCI,EAAOD,QAAU,mCAAmCoM,KAAKmI,IAKnD,SAAUtU,EAAQD,EAASH,GAEjC,IAcI65B,EAAOC,EAAMzO,EAAMwK,EAAQkE,EAAQC,EAAM1E,EAASG,EAdlD90B,EAASX,EAAoB,GAC7BwG,EAA2BxG,EAAoB,GAAG6D,EAClD2G,EAAUxK,EAAoB,IAC9Bi6B,EAAYj6B,EAAoB,KAAKoD,IACrCk1B,EAASt4B,EAAoB,KAE7Bk6B,EAAmBv5B,EAAOu5B,kBAAoBv5B,EAAOw5B,uBACrDxlB,EAAUhU,EAAOgU,QACjB2iB,EAAU32B,EAAO22B,QACjBtC,EAA8B,WAApBxqB,EAAQmK,GAElBylB,EAA2B5zB,EAAyB7F,EAAQ,kBAC5D05B,EAAiBD,GAA4BA,EAAyBx1B,MAKrEy1B,IACHR,EAAQ,WACN,IAAI3C,EAAQrsB,EAEZ,IADImqB,IAAYkC,EAASviB,EAAQ9E,SAASqnB,EAAOP,OAC1CmD,GAAM,CACXjvB,EAAKivB,EAAKjvB,GACVivB,EAAOA,EAAK9hB,KACZ,IACEnN,IACA,MAAOb,GAGP,MAFI8vB,EAAMjE,IACLxK,EAAOtrB,GACNiK,GAERqhB,EAAOtrB,GACLm3B,GAAQA,EAAOR,SAKnBb,EADEb,EACO,WACPrgB,EAAQ0kB,SAASQ,IAGVK,IAAqB5B,GAC9ByB,GAAS,EACTC,EAAO/uB,SAASqvB,eAAe,IAC/B,IAAIJ,EAAiBL,GAAOU,QAAQP,EAAM,CAAEQ,eAAe,IAClD,WACPR,EAAKvrB,KAAOsrB,GAAUA,IAGfzC,GAAWA,EAAQ/B,SAE5BD,EAAUgC,EAAQ/B,QAAQx1B,IAC1B01B,EAAOH,EAAQG,KACN,WACPA,EAAKj1B,KAAK80B,EAASuE,KASZ,WAEPI,EAAUz5B,KAAKG,EAAQk5B,KAK7Bz5B,EAAOD,QAAUk6B,GAAkB,SAAUxvB,GAC3C,IAAIupB,EAAO,CAAEvpB,GAAIA,EAAImN,KAAMjY,IACvBsrB,IAAMA,EAAKrT,KAAOoc,GACjB0F,IACHA,EAAO1F,EACPyB,KACAxK,EAAO+I,IAML,SAAUh0B,EAAQD,EAASH,GAEjC,IAAIqB,EAAWrB,EAAoB,IAC/BoB,EAAWpB,EAAoB,IAC/B80B,EAAuB90B,EAAoB,KAE/CI,EAAOD,QAAU,SAAUuS,EAAG4Z,GAE5B,GADAjrB,EAASqR,GACLtR,EAASkrB,IAAMA,EAAE3Z,cAAgBD,EAAG,OAAO4Z,EAC/C,IAAImO,EAAoB3F,EAAqBjxB,EAAE6O,GAG/C,OADA6iB,EADckF,EAAkBlF,SACxBjJ,GACDmO,EAAkBnF,UAMrB,SAAUl1B,EAAQD,EAASH,GAIjC,IAAIgN,EAAYhN,EAAoB,IAEhC06B,EAAoB,SAAUhoB,GAChC,IAAI6iB,EAASgB,EACb5xB,KAAK2wB,QAAU,IAAI5iB,EAAE,SAAUioB,EAAWC,GACxC,GAAIrF,IAAYx1B,IAAaw2B,IAAWx2B,GAAW,MAAMkH,UAAU,2BACnEsuB,EAAUoF,EACVpE,EAASqE,IAEXj2B,KAAK4wB,QAAUvoB,EAAUuoB,GACzB5wB,KAAK4xB,OAASvpB,EAAUupB,IAI1Bn2B,EAAOD,QAAQ0D,EAAI,SAAU6O,GAC3B,OAAO,IAAIgoB,EAAkBhoB,KAMzB,SAAUtS,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GAEjCI,EAAOD,QAAU,SAAU0E,EAAGyN,GAC5B,IAAIuoB,EAAUl6B,EAAOk6B,QACjBA,GAAWA,EAAQ7wB,QACA,IAArB9C,UAAUC,OAAe0zB,EAAQ7wB,MAAMnF,GAAKg2B,EAAQ7wB,MAAMnF,EAAGyN,MAO3D,SAAUlS,EAAQD,GAExBC,EAAOD,QAAU,SAAU8J,GACzB,IACE,MAAO,CAAED,OAAO,EAAOpF,MAAOqF,KAC9B,MAAOD,GACP,MAAO,CAAEA,OAAO,EAAMpF,MAAOoF,MAO3B,SAAU5J,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBgN,EAAYhN,EAAoB,IAChCw0B,EAA6Bx0B,EAAoB,KACjDy0B,EAAUz0B,EAAoB,KAC9ByoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnCizB,WAAY,SAASA,WAAWpjB,GAC9B,IAAIhF,EAAI/N,KACJkzB,EAAarD,EAA2B3wB,EAAE6O,GAC1C6iB,EAAUsC,EAAWtC,QACrBgB,EAASsB,EAAWtB,OACpB1vB,EAAS4tB,EAAQ,WACnB,IAAIH,EAAiBtnB,EAAU0F,EAAE6iB,SAC7Bra,EAAS,GACT6c,EAAU,EACVC,EAAY,EAChBvP,EAAQ/Q,EAAU,SAAU4d,GAC1B,IAAI5sB,EAAQqvB,IACRE,GAAgB,EACpB/c,EAAOpU,KAAK/G,IACZi4B,IACA1D,EAAe9zB,KAAKkS,EAAG4iB,GAASG,KAAK,SAAU7wB,GACzCqzB,IACJA,GAAgB,EAChB/c,EAAOxS,GAAS,CAAEqyB,OAAQ,YAAan2B,MAAOA,KAC5CozB,GAAazC,EAAQra,KACtB,SAAU+V,GACPgH,IACJA,GAAgB,EAChB/c,EAAOxS,GAAS,CAAEqyB,OAAQ,WAAYlE,OAAQ5F,KAC5C+G,GAAazC,EAAQra,UAGzB8c,GAAazC,EAAQra,KAGzB,OADIrU,EAAOmD,OAAOusB,EAAO1vB,EAAOjC,OACzBizB,EAAWvC,YAOhB,SAAUl1B,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9Bm0B,EAAgBn0B,EAAoB,KACpCiB,EAAQjB,EAAoB,GAC5BY,EAAaZ,EAAoB,IACjCukB,EAAqBvkB,EAAoB,KACzCs0B,EAAiBt0B,EAAoB,KACrCmC,EAAWnC,EAAoB,IASnCU,EAAE,CAAEkH,OAAQ,UAAWmM,OAAO,EAAMinB,MAAM,EAAMtzB,SAN5BysB,GAAiBlzB,EAAM,WACzCkzB,EAAc5qB,UAAmB,WAAE/I,KAAK,CAAEi1B,KAAM,cAA+B,iBAKV,CACrEwF,UAAW,SAAUC,GACnB,IAAIxoB,EAAI6R,EAAmB5f,KAAM/D,EAAW,YACxCu6B,EAAiC,mBAAbD,EACxB,OAAOv2B,KAAK8wB,KACV0F,EAAa,SAAU7O,GACrB,OAAOgI,EAAe5hB,EAAGwoB,KAAazF,KAAK,WAAc,OAAOnJ,KAC9D4O,EACJC,EAAa,SAAUlK,GACrB,OAAOqD,EAAe5hB,EAAGwoB,KAAazF,KAAK,WAAc,MAAMxE,KAC7DiK,MAMLr6B,GAAmC,mBAAjBszB,GAAgCA,EAAc5qB,UAAmB,YACtFpH,EAASgyB,EAAc5qB,UAAW,UAAW3I,EAAW,WAAW2I,UAAmB,aAMlF,SAAUnJ,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBY,EAAaZ,EAAoB,IACjCgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAC/BiB,EAAQjB,EAAoB,GAE5Bo7B,EAAcx6B,EAAW,UAAW,SACpCy6B,EAAgBvxB,SAASnB,MAS7BjI,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,EAAMH,QANJzG,EAAM,WACnCm6B,EAAY,iBAKwD,CACpEzyB,MAAO,SAASA,MAAMf,EAAQ0zB,EAAcC,GAG1C,OAFAvuB,EAAUpF,GACVvG,EAASk6B,GACFH,EACHA,EAAYxzB,EAAQ0zB,EAAcC,GAClCF,EAAc76B,KAAKoH,EAAQ0zB,EAAcC,OAO3C,SAAUn7B,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBY,EAAaZ,EAAoB,IACjCgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAC/BoB,EAAWpB,EAAoB,IAC/BoI,EAASpI,EAAoB,IAC7BoR,EAAOpR,EAAoB,KAC3BiB,EAAQjB,EAAoB,GAE5Bw7B,EAAkB56B,EAAW,UAAW,aAMxC66B,EAAiBx6B,EAAM,WACzB,SAAS2P,KACT,QAAS4qB,EAAgB,aAA6B,GAAI5qB,aAAcA,KAEtE8qB,GAAYz6B,EAAM,WACpBu6B,EAAgB,gBAEd9gB,EAAS+gB,GAAkBC,EAE/Bh7B,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,EAAMH,OAAQgT,EAAQ/S,KAAM+S,GAAU,CACjE6M,UAAW,SAASA,UAAUoU,EAAQlzB,GACpCuE,EAAU2uB,GACVt6B,EAASoH,GACT,IAAImzB,EAAY10B,UAAUC,OAAS,EAAIw0B,EAAS3uB,EAAU9F,UAAU,IACpE,GAAIw0B,IAAaD,EAAgB,OAAOD,EAAgBG,EAAQlzB,EAAMmzB,GACtE,GAAID,GAAUC,EAAW,CAEvB,OAAQnzB,EAAKtB,QACX,KAAK,EAAG,OAAO,IAAIw0B,EACnB,KAAK,EAAG,OAAO,IAAIA,EAAOlzB,EAAK,IAC/B,KAAK,EAAG,OAAO,IAAIkzB,EAAOlzB,EAAK,GAAIA,EAAK,IACxC,KAAK,EAAG,OAAO,IAAIkzB,EAAOlzB,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACjD,KAAK,EAAG,OAAO,IAAIkzB,EAAOlzB,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAG5D,IAAIozB,EAAQ,CAAC,MAEb,OADAA,EAAM/0B,KAAK6B,MAAMkzB,EAAOpzB,GACjB,IAAK2I,EAAKzI,MAAMgzB,EAAQE,IAGjC,IAAI9nB,EAAQ6nB,EAAUryB,UAClBggB,EAAWnhB,EAAOhH,EAAS2S,GAASA,EAAQvQ,OAAO+F,WACnD1C,EAASiD,SAASnB,MAAMnI,KAAKm7B,EAAQpS,EAAU9gB,GACnD,OAAOrH,EAASyF,GAAUA,EAAS0iB,MAOjC,SAAUnpB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBc,EAAcd,EAAoB,GAClCqB,EAAWrB,EAAoB,IAC/BwB,EAAcxB,EAAoB,IAClCgC,EAAuBhC,EAAoB,IAW/CU,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,EAAMH,OAVvB1H,EAAoB,EAGHiB,CAAM,WAEjC66B,QAAQp2B,eAAe1D,EAAqB6B,EAAE,GAAI,EAAG,CAAEe,MAAO,IAAM,EAAG,CAAEA,MAAO,MAKf+C,MAAO7G,GAAe,CACvF4E,eAAgB,SAASA,eAAekC,EAAQyM,EAAa0nB,GAC3D16B,EAASuG,GACT,IAAIjC,EAAMnE,EAAY6S,GAAa,GACnChT,EAAS06B,GACT,IAEE,OADA/5B,EAAqB6B,EAAE+D,EAAQjC,EAAKo2B,IAC7B,EACP,MAAO/xB,GACP,OAAO,OAQP,SAAU5J,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBqB,EAAWrB,EAAoB,IAC/BwG,EAA2BxG,EAAoB,GAAG6D,EAItDnD,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnCm0B,eAAgB,SAASA,eAAep0B,EAAQyM,GAC9C,IAAI5N,EAAaD,EAAyBnF,EAASuG,GAASyM,GAC5D,QAAO5N,IAAeA,EAAWa,sBAA8BM,EAAOyM,OAOpE,SAAUjU,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBoB,EAAWpB,EAAoB,IAC/BqB,EAAWrB,EAAoB,IAC/BkB,EAAMlB,EAAoB,IAC1B+B,EAAiC/B,EAAoB,GACrD+Z,EAAiB/Z,EAAoB,KAgBzCU,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnCnD,IAbF,SAASA,IAAIkD,EAAQyM,GACnB,IACI5N,EAAY8C,EADZ0yB,EAAW/0B,UAAUC,OAAS,EAAIS,EAASV,UAAU,GAEzD,OAAI7F,EAASuG,KAAYq0B,EAAiBr0B,EAAOyM,IAC7C5N,EAAa1E,EAA+B8B,EAAE+D,EAAQyM,IAAqBnT,EAAIuF,EAAY,SAC3FA,EAAW7B,MACX6B,EAAW/B,MAAQ3E,GACjBA,GACA0G,EAAW/B,IAAIlE,KAAKy7B,GACtB76B,EAASmI,EAAYwQ,EAAenS,IAAiBlD,IAAI6E,EAAW8K,EAAa4nB,QAArF,MAUI,SAAU77B,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBc,EAAcd,EAAoB,GAClCqB,EAAWrB,EAAoB,IAC/B+B,EAAiC/B,EAAoB,GAIzDU,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,EAAMF,MAAO7G,GAAe,CACvD0F,yBAA0B,SAASA,yBAAyBoB,EAAQyM,GAClE,OAAOtS,EAA+B8B,EAAExC,EAASuG,GAASyM,OAOxD,SAAUjU,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBqB,EAAWrB,EAAoB,IAC/Bk8B,EAAuBl8B,EAAoB,KAK/CU,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,EAAMF,MAJJ3H,EAAoB,MAImB,CACpE+Z,eAAgB,SAASA,eAAenS,GACtC,OAAOs0B,EAAqB76B,EAASuG,QAOnC,SAAUxH,EAAQD,EAASH,GAEzBA,EAAoB,EAI5BU,CAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnC3G,IAAK,SAASA,IAAI0G,EAAQyM,GACxB,OAAOA,KAAezM,MAOpB,SAAUxH,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBqB,EAAWrB,EAAoB,IAE/Bm8B,EAAqB34B,OAAO0mB,aAIhCxpB,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnCqiB,aAAc,SAASA,aAAatiB,GAElC,OADAvG,EAASuG,IACFu0B,GAAqBA,EAAmBv0B,OAO7C,SAAUxH,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnCiF,QALY9M,EAAoB,OAW5B,SAAUI,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBY,EAAaZ,EAAoB,IACjCqB,EAAWrB,EAAoB,IAKnCU,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,EAAMF,MAJpB3H,EAAoB,MAImB,CACpD0qB,kBAAmB,SAASA,kBAAkB9iB,GAC5CvG,EAASuG,GACT,IACE,IAAIw0B,EAA0Bx7B,EAAW,SAAU,qBAEnD,OADIw7B,GAAyBA,EAAwBx0B,IAC9C,EACP,MAAOoC,GACP,OAAO,OAQP,SAAU5J,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBqB,EAAWrB,EAAoB,IAC/BoB,EAAWpB,EAAoB,IAC/BkB,EAAMlB,EAAoB,IAC1BiB,EAAQjB,EAAoB,GAC5BgC,EAAuBhC,EAAoB,IAC3C+B,EAAiC/B,EAAoB,GACrD+Z,EAAiB/Z,EAAoB,KACrCyB,EAA2BzB,EAAoB,GAkCnDU,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,EAAMH,OANjBzG,EAAM,WACtB,IAAIkK,EAASnJ,EAAqB6B,EAAE,GAAI,IAAK,CAAEyD,cAAc,IAE7D,OAA+D,IAAxDw0B,QAAQ14B,IAAI2W,EAAe5O,GAAS,IAAK,EAAGA,MAGK,CACxD/H,IA/BF,SAASA,IAAIwE,EAAQyM,EAAa/N,GAChC,IAEI+1B,EAAoB9yB,EAFpB0yB,EAAW/0B,UAAUC,OAAS,EAAIS,EAASV,UAAU,GACrDo1B,EAAgBv6B,EAA+B8B,EAAExC,EAASuG,GAASyM,GAEvE,IAAKioB,EAAe,CAClB,GAAIl7B,EAASmI,EAAYwQ,EAAenS,IACtC,OAAOxE,IAAImG,EAAW8K,EAAa/N,EAAG21B,GAExCK,EAAgB76B,EAAyB,GAE3C,GAAIP,EAAIo7B,EAAe,SAAU,CAC/B,IAA+B,IAA3BA,EAAcjyB,WAAuBjJ,EAAS66B,GAAW,OAAO,EACpE,GAAII,EAAqBt6B,EAA+B8B,EAAEo4B,EAAU5nB,GAAc,CAChF,GAAIgoB,EAAmB33B,KAAO23B,EAAmBj5B,MAAuC,IAAhCi5B,EAAmBhyB,SAAoB,OAAO,EACtGgyB,EAAmBz3B,MAAQ0B,EAC3BtE,EAAqB6B,EAAEo4B,EAAU5nB,EAAagoB,QACzCr6B,EAAqB6B,EAAEo4B,EAAU5nB,EAAa5S,EAAyB,EAAG6E,IACjF,OAAO,EAET,OAAOg2B,EAAcl5B,MAAQrD,KAAqBu8B,EAAcl5B,IAAI5C,KAAKy7B,EAAU31B,IAAI,OAkBnF,SAAUlG,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBqB,EAAWrB,EAAoB,IAC/B0b,EAAqB1b,EAAoB,KACzCu8B,EAAuBv8B,EAAoB,KAI3Cu8B,GAAsB77B,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CAC7DmS,eAAgB,SAASA,eAAepS,EAAQmM,GAC9C1S,EAASuG,GACT8T,EAAmB3H,GACnB,IAEE,OADAwoB,EAAqB30B,EAAQmM,IACtB,EACP,MAAO/J,GACP,OAAO,OAQP,SAAU5J,EAAQD,EAASH,GAEjC,IAAIc,EAAcd,EAAoB,GAClCW,EAASX,EAAoB,GAC7B+I,EAAW/I,EAAoB,IAC/B0oB,EAAoB1oB,EAAoB,KACxC0F,EAAiB1F,EAAoB,IAAI6D,EACzC8C,EAAsB3G,EAAoB,IAAI6D,EAC9C24B,EAAWx8B,EAAoB,KAC/By8B,EAAWz8B,EAAoB,KAC/B08B,EAAgB18B,EAAoB,KACpCmC,EAAWnC,EAAoB,IAC/BiB,EAAQjB,EAAoB,GAC5BmD,EAAmBnD,EAAoB,IAAIoD,IAC3Coa,EAAaxd,EAAoB,KAGjC28B,EAFkB38B,EAAoB,GAE9BwC,CAAgB,SACxBo6B,EAAej8B,EAAOqvB,OACtB6M,EAAkBD,EAAarzB,UAC/BuzB,EAAM,KACNC,EAAM,KAGNC,EAAc,IAAIJ,EAAaE,KAASA,EAExCG,EAAgBP,EAAcO,cAUlC,GARan8B,GAAeiI,EAAS,UAAYi0B,GAAeC,GAAiBh8B,EAAM,WAGrF,OAFA87B,EAAIJ,IAAS,EAENC,EAAaE,IAAQA,GAAOF,EAAaG,IAAQA,GAAiC,QAA1BH,EAAaE,EAAK,QAKvE,CA0CV,IAzCA,IAAII,EAAgB,SAASlN,OAAOmN,EAASC,GAC3C,IAGIC,EAHAC,EAAe34B,gBAAgBu4B,EAC/BK,EAAkBf,EAASW,GAC3BK,EAAoBJ,IAAUr9B,GAGlC,IAAKu9B,GAAgBC,GAAmBJ,EAAQxqB,cAAgBuqB,GAAiBM,EAC/E,OAAOL,EAGLH,EACEO,IAAoBC,IAAmBL,EAAUA,EAAQl0B,QACpDk0B,aAAmBD,IACxBM,IAAmBJ,EAAQX,EAASj8B,KAAK28B,IAC7CA,EAAUA,EAAQl0B,QAGhBg0B,IACFI,IAAWD,IAA+B,EAAtBA,EAAM/vB,QAAQ,QACtB+vB,EAAQA,EAAMvuB,QAAQ,KAAM,KAG1C,IAAIhI,EAAS6hB,EACXsU,EAAc,IAAIJ,EAAaO,EAASC,GAASR,EAAaO,EAASC,GACvEE,EAAe34B,KAAOk4B,EACtBK,GAKF,OAFID,GAAiBI,GAAQl6B,EAAiB0D,EAAQ,CAAEw2B,OAAQA,IAEzDx2B,GAEL42B,EAAQ,SAAU93B,GACpBA,KAAOu3B,GAAiBx3B,EAAew3B,EAAev3B,EAAK,CACzD2B,cAAc,EACd5C,IAAK,WAAc,OAAOk4B,EAAaj3B,IACvCvC,IAAK,SAAUoC,GAAMo3B,EAAaj3B,GAAOH,MAGzCS,EAAOU,EAAoBi2B,GAC3Bl0B,EAAQ,EACSA,EAAdzC,EAAKkB,QAAgBs2B,EAAMx3B,EAAKyC,OACvCm0B,EAAgBlqB,YAAcuqB,GAChB3zB,UAAYszB,EAC1B16B,EAASxB,EAAQ,SAAUu8B,GAI7B1f,EAAW,WAKL,SAAUpd,EAAQD,EAASH,GAEjC,IAAIoB,EAAWpB,EAAoB,IAC/BwK,EAAUxK,EAAoB,IAG9B28B,EAFkB38B,EAAoB,GAE9BwC,CAAgB,SAI5BpC,EAAOD,QAAU,SAAUqF,GACzB,IAAIg3B,EACJ,OAAOp7B,EAASoE,MAASg3B,EAAWh3B,EAAGm3B,MAAY58B,KAAcy8B,EAA0B,UAAfhyB,EAAQhF,MAMhF,SAAUpF,EAAQD,EAASH,GAIjC,IAAIqB,EAAWrB,EAAoB,IAInCI,EAAOD,QAAU,WACf,IAAI0R,EAAOxQ,EAASsD,MAChBkC,EAAS,GAOb,OANIgL,EAAKlR,SAAQkG,GAAU,KACvBgL,EAAK6rB,aAAY72B,GAAU,KAC3BgL,EAAK8rB,YAAW92B,GAAU,KAC1BgL,EAAK+rB,SAAQ/2B,GAAU,KACvBgL,EAAKgsB,UAASh3B,GAAU,KACxBgL,EAAKwrB,SAAQx2B,GAAU,KACpBA,IAMH,SAAUzG,EAAQD,EAASH,GAKjC,IAAIiB,EAAQjB,EAAoB,GAIhC,SAAS89B,GAAGtM,EAAG3tB,GACb,OAAOmsB,OAAOwB,EAAG3tB,GAGnB1D,EAAQ88B,cAAgBh8B,EAAM,WAE5B,IAAI2mB,EAAKkW,GAAG,IAAK,KAEjB,OADAlW,EAAGmW,UAAY,EACW,MAAnBnW,EAAG3d,KAAK,UAGjB9J,EAAQ69B,aAAe/8B,EAAM,WAE3B,IAAI2mB,EAAKkW,GAAG,KAAM,MAElB,OADAlW,EAAGmW,UAAY,EACU,MAAlBnW,EAAG3d,KAAK,UAMX,SAAU7J,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBiK,EAAOjK,EAAoB,KAE/BU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAAQ,IAAIuC,OAASA,GAAQ,CAC9DA,KAAMA,KAMF,SAAU7J,EAAQD,EAASH,GAIjC,IAYM88B,EACAC,EAbFkB,EAAcj+B,EAAoB,KAClC08B,EAAgB18B,EAAoB,KAEpCk+B,EAAalO,OAAOzmB,UAAUU,KAI9Bk0B,EAAgB/2B,OAAOmC,UAAUsF,QAEjCuvB,EAAcF,EAEdG,GAEEtB,EAAM,MACVmB,EAAW19B,KAFPs8B,EAAM,IAEW,KACrBoB,EAAW19B,KAAKu8B,EAAK,KACI,IAAlBD,EAAIiB,WAAqC,IAAlBhB,EAAIgB,WAGhCd,EAAgBP,EAAcO,eAAiBP,EAAcsB,aAG7DM,EAAgB,OAAOr0B,KAAK,IAAI,KAAOlK,IAE/Bs+B,GAA4BC,GAAiBrB,KAGvDmB,EAAc,SAASn0B,KAAKwc,GAC1B,IACIsX,EAAWQ,EAAQ9pB,EAAOpU,EAD1BunB,EAAKjjB,KAEL04B,EAASJ,GAAiBrV,EAAGyV,OAC7BD,EAAQa,EAAYz9B,KAAKonB,GACzB3e,EAAS2e,EAAG3e,OACZu1B,EAAa,EACbC,EAAUhY,EA+Cd,OA7CI4W,KAE0B,KAD5BD,EAAQA,EAAMvuB,QAAQ,IAAK,KACjBxB,QAAQ,OAChB+vB,GAAS,KAGXqB,EAAUr3B,OAAOqf,GAAK/b,MAAMkd,EAAGmW,WAEZ,EAAfnW,EAAGmW,aAAmBnW,EAAG+V,WAAa/V,EAAG+V,WAAuC,OAA1BlX,EAAImB,EAAGmW,UAAY,MAC3E90B,EAAS,OAASA,EAAS,IAC3Bw1B,EAAU,IAAMA,EAChBD,KAIFD,EAAS,IAAIvO,OAAO,OAAS/mB,EAAS,IAAKm0B,IAGzCkB,IACFC,EAAS,IAAIvO,OAAO,IAAM/mB,EAAS,WAAYm0B,IAE7CiB,IAA0BN,EAAYnW,EAAGmW,WAE7CtpB,EAAQypB,EAAW19B,KAAK68B,EAASkB,EAAS3W,EAAI6W,GAE1CpB,EACE5oB,GACFA,EAAM9J,MAAQ8J,EAAM9J,MAAMD,MAAM8zB,GAChC/pB,EAAM,GAAKA,EAAM,GAAG/J,MAAM8zB,GAC1B/pB,EAAM/L,MAAQkf,EAAGmW,UACjBnW,EAAGmW,WAAatpB,EAAM,GAAGtN,QACpBygB,EAAGmW,UAAY,EACbM,GAA4B5pB,IACrCmT,EAAGmW,UAAYnW,EAAGjnB,OAAS8T,EAAM/L,MAAQ+L,EAAM,GAAGtN,OAAS42B,GAEzDO,GAAiB7pB,GAAwB,EAAfA,EAAMtN,QAGlCg3B,EAAc39B,KAAKiU,EAAM,GAAI8pB,EAAQ,WACnC,IAAKl+B,EAAI,EAAGA,EAAI6G,UAAUC,OAAS,EAAG9G,IAChC6G,UAAU7G,KAAON,KAAW0U,EAAMpU,GAAKN,MAK1C0U,IAIXrU,EAAOD,QAAUi+B,GAKX,SAAUh+B,EAAQD,EAASH,GAEjC,IAAIc,EAAcd,EAAoB,GAClC0+B,EAA6B1+B,EAAoB,IACjD2+B,EAAc3+B,EAAoB,KAClCi9B,EAAgBj9B,EAAoB,KAAKi9B,cAIzCn8B,IAA8B,KAAd,KAAKs8B,OAAgBH,IACvCyB,EAA2B76B,EAAEmsB,OAAOzmB,UAAW,QAAS,CACtDjC,cAAc,EACd5C,IAAKi6B,KAOH,SAAUv+B,EAAQD,EAASH,GAEjC,IAAIc,EAAcd,EAAoB,GAClCi9B,EAAgBj9B,EAAoB,KAAKi9B,cACzCv3B,EAAiB1F,EAAoB,IAAI6D,EACzCR,EAAmBrD,EAAoB,IAAI0E,IAC3Cm4B,EAAkB7M,OAAOzmB,UAGzBzI,GAAem8B,GACjBv3B,EAAesqB,OAAOzmB,UAAW,SAAU,CACzCjC,cAAc,EACd5C,IAAK,WACH,GAAIC,OAASk4B,EAAiB,OAAO98B,GAGrC,GAAI4E,gBAAgBqrB,OAClB,QAAS3sB,EAAiBsB,MAAM04B,OAElC,MAAMp2B,UAAU,8CAQhB,SAAU7G,EAAQD,EAASH,GAKjCA,EAAoB,KACpB,IAIM4+B,EACAhX,EALFlnB,EAAIV,EAAoB,GACxBoB,EAAWpB,EAAoB,IAE/B6+B,GACED,GAAa,GACbhX,EAAK,QACN3d,KAAO,WAER,OADA20B,GAAa,EACN,IAAI30B,KAAKtB,MAAMhE,KAAMuC,aAEJ,IAAnB0gB,EAAGrb,KAAK,QAAmBqyB,GAGhCE,EAAa,IAAIvyB,KAErB7L,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,QAASm3B,GAAqB,CAC/DtyB,KAAM,SAAUka,GACd,GAAyB,mBAAd9hB,KAAKsF,KACd,OAAO60B,EAAWt+B,KAAKmE,KAAM8hB,GAE/B,IAAI5f,EAASlC,KAAKsF,KAAKwc,GACvB,GAAe,OAAX5f,IAAoBzF,EAASyF,GAC/B,MAAM,IAAIk4B,MAAM,sEAElB,QAASl4B,MAOP,SAAUzG,EAAQD,EAASH,GAIjC,IAAImC,EAAWnC,EAAoB,IAC/BqB,EAAWrB,EAAoB,IAC/BiB,EAAQjB,EAAoB,GAC5Bo9B,EAAQp9B,EAAoB,KAE5BgnB,EAAY,WACZ6V,EAAkB7M,OAAOzmB,UACzBy1B,EAAiBnC,EAAgB7V,IAEnB/lB,EAAM,WAAc,MAA2D,QAApD+9B,EAAex+B,KAAK,CAAEyI,OAAQ,IAAKm0B,MAAO,SAElE4B,EAAex3B,MAAQwf,GAK1C7kB,EAAS6tB,OAAOzmB,UAAWyd,EAAW,SAASzf,WAC7C,IAAI03B,EAAI59B,EAASsD,MACbu6B,EAAI93B,OAAO63B,EAAEh2B,QACbk2B,EAAKF,EAAE7B,MAEX,MAAO,IAAM8B,EAAI,IADT93B,OAAO+3B,IAAOp/B,IAAak/B,aAAajP,UAAY,UAAW6M,GAAmBO,EAAM58B,KAAKy+B,GAAKE,IAEzG,CAAE13B,QAAQ,KAMT,SAAUrH,EAAQD,EAASH,GAIjC,IAAIooB,EAAapoB,EAAoB,KACjCqoB,EAAmBroB,EAAoB,KAI3CI,EAAOD,QAAUioB,EAAW,MAAO,SAAUE,GAC3C,OAAO,SAAS8W,MAAQ,OAAO9W,EAAK3jB,KAAMuC,UAAUC,OAASD,UAAU,GAAKnH,MAC3EsoB,IAKG,SAAUjoB,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBq/B,EAASr/B,EAAoB,KAAKq/B,OAItC3+B,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,GAAQ,CACnCurB,YAAa,SAASA,YAAYC,GAChC,OAAOF,EAAO16B,KAAM46B,OAOlB,SAAUn/B,EAAQD,EAASH,GAEjC,IAAI8N,EAAY9N,EAAoB,IAChCuK,EAAyBvK,EAAoB,IAG7CwN,EAAe,SAAUgyB,GAC3B,OAAO,SAAU9xB,EAAO6xB,GACtB,IAGI9a,EAAOgb,EAHP5a,EAAIzd,OAAOmD,EAAuBmD,IAClCgyB,EAAW5xB,EAAUyxB,GACrBjU,EAAOzG,EAAE1d,OAEb,OAAIu4B,EAAW,GAAiBpU,GAAZoU,EAAyBF,EAAoB,GAAKz/B,IACtE0kB,EAAQI,EAAEqD,WAAWwX,IACN,OAAkB,MAARjb,GAAkBib,EAAW,IAAMpU,IACtDmU,EAAS5a,EAAEqD,WAAWwX,EAAW,IAAM,OAAmB,MAATD,EACjDD,EAAoB3a,EAAEoD,OAAOyX,GAAYjb,EACzC+a,EAAoB3a,EAAEna,MAAMg1B,EAAUA,EAAW,GAA+BD,EAAS,OAAlChb,EAAQ,OAAU,IAA0B,QAI7GrkB,EAAOD,QAAU,CAGfk/B,OAAQ7xB,GAAa,GAGrBya,OAAQza,GAAa,KAMjB,SAAUpN,EAAQD,EAASH,GAIjC,IAcMyG,EAdF/F,EAAIV,EAAoB,GACxBwG,EAA2BxG,EAAoB,GAAG6D,EAClDyJ,EAAWtN,EAAoB,IAC/B2/B,EAAa3/B,EAAoB,KACjCuK,EAAyBvK,EAAoB,IAC7C4/B,EAAuB5/B,EAAoB,KAC3Ca,EAAUb,EAAoB,IAE9B6/B,EAAiB,GAAGC,SACpB/xB,EAAMrE,KAAKqE,IAEXgyB,EAA0BH,EAAqB,YASnDl/B,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,UAPX7G,GAAYk/B,MAC9Bt5B,EAAaD,EAAyBY,OAAOmC,UAAW,cACtC9C,EAAW4D,aAK8B01B,GAA2B,CAC1FD,SAAU,SAASA,SAASE,GAC1B,IAAInuB,EAAOzK,OAAOmD,EAAuB5F,OACzCg7B,EAAWK,GACX,IAAIC,EAAiC,EAAnB/4B,UAAUC,OAAaD,UAAU,GAAKnH,GACpDkU,EAAM3G,EAASuE,EAAK1K,QACpBgO,EAAM8qB,IAAgBlgC,GAAYkU,EAAMlG,EAAIT,EAAS2yB,GAAchsB,GACnEisB,EAAS94B,OAAO44B,GACpB,OAAOH,EACHA,EAAer/B,KAAKqR,EAAMquB,EAAQ/qB,GAClCtD,EAAKnH,MAAMyK,EAAM+qB,EAAO/4B,OAAQgO,KAAS+qB,MAO3C,SAAU9/B,EAAQD,EAASH,GAEjC,IAAIw8B,EAAWx8B,EAAoB,KAEnCI,EAAOD,QAAU,SAAUqF,GACzB,GAAIg3B,EAASh3B,GACX,MAAMyB,UAAU,iDAChB,OAAOzB,IAML,SAAUpF,EAAQD,EAASH,GAEjC,IAEI28B,EAFkB38B,EAAoB,GAE9BwC,CAAgB,SAE5BpC,EAAOD,QAAU,SAAUmU,GACzB,IAAIpB,EAAS,IACb,IACE,MAAMoB,GAAapB,GACnB,MAAO+d,GACP,IAEE,OADA/d,EAAOypB,IAAS,EACT,MAAMroB,GAAapB,GAC1B,MAAOrP,KACT,OAAO,IAML,SAAUzD,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBuN,EAAkBvN,EAAoB,IAEtCmgC,EAAe/4B,OAAO+4B,aACtBC,EAAsBh5B,OAAOi5B,cAOjC3/B,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,SAJT04B,GAAqD,GAA9BA,EAAoBj5B,QAIN,CAC5Dk5B,cAAe,SAASA,cAAc/T,GAKpC,IAJA,IAGIqD,EAHA2Q,EAAW,GACXn5B,EAASD,UAAUC,OACnB9G,EAAI,EAEQA,EAAT8G,GAAY,CAEjB,GADAwoB,GAAQzoB,UAAU7G,KACdkN,EAAgBoiB,EAAM,WAAcA,EAAM,MAAM7Q,WAAW6Q,EAAO,8BACtE2Q,EAASx5B,KAAK6oB,EAAO,MACjBwQ,EAAaxQ,GACbwQ,EAAyC,QAA1BxQ,GAAQ,QAAY,IAAcA,EAAO,KAAQ,QAEpE,OAAO2Q,EAAS70B,KAAK,QAOrB,SAAUrL,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB2/B,EAAa3/B,EAAoB,KACjCuK,EAAyBvK,EAAoB,IAKjDU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,QAJR1H,EAAoB,IAIH4/B,CAAqB,aAAe,CAC9E/xB,SAAU,SAASA,SAASmyB,GAC1B,SAAU54B,OAAOmD,EAAuB5F,OACrC0I,QAAQsyB,EAAWK,GAAkC,EAAnB94B,UAAUC,OAAaD,UAAU,GAAKnH,QAOzE,SAAUK,EAAQD,EAASH,GAIjC,IAAIioB,EAASjoB,EAAoB,KAAKioB,OAClCrlB,EAAsB5C,EAAoB,IAC1CyZ,EAAiBzZ,EAAoB,KAErCugC,EAAkB,kBAClBp9B,EAAmBP,EAAoBQ,IACvCC,EAAmBT,EAAoBU,UAAUi9B,GAIrD9mB,EAAerS,OAAQ,SAAU,SAAUuS,GACzCxW,EAAiBwB,KAAM,CACrBW,KAAMi7B,EACNx4B,OAAQX,OAAOuS,GACfjR,MAAO,KAIR,SAASsP,OACV,IAGIwoB,EAHAl0B,EAAQjJ,EAAiBsB,MACzBoD,EAASuE,EAAMvE,OACfW,EAAQ4D,EAAM5D,MAElB,OAAaX,EAAOZ,QAAhBuB,EAA+B,CAAE9D,MAAO7E,GAAWqY,MAAM,IAC7DooB,EAAQvY,EAAOlgB,EAAQW,GACvB4D,EAAM5D,OAAS83B,EAAMr5B,OACd,CAAEvC,MAAO47B,EAAOpoB,MAAM,OAMzB,SAAUhY,EAAQD,EAASH,GAIjC,IAAIygC,EAAgCzgC,EAAoB,KACpDqB,EAAWrB,EAAoB,IAC/BsN,EAAWtN,EAAoB,IAC/BuK,EAAyBvK,EAAoB,IAC7C0gC,EAAqB1gC,EAAoB,KACzC2gC,EAAa3gC,EAAoB,KAGrCygC,EAA8B,QAAS,EAAG,SAAU9D,EAAOiE,EAAaC,GACtE,MAAO,CAGL,SAASpsB,MAAMvB,GACb,IAAIpO,EAAIyF,EAAuB5F,MAC3Bm8B,EAAU5tB,GAAUnT,GAAYA,GAAYmT,EAAOypB,GACvD,OAAOmE,IAAY/gC,GAAY+gC,EAAQtgC,KAAK0S,EAAQpO,GAAK,IAAIkrB,OAAO9c,GAAQypB,GAAOv1B,OAAOtC,KAI5F,SAAUoO,GACR,IAAI6tB,EAAMF,EAAgBD,EAAa1tB,EAAQvO,MAC/C,GAAIo8B,EAAI3oB,KAAM,OAAO2oB,EAAIn8B,MAEzB,IAAIo8B,EAAK3/B,EAAS6R,GACd2R,EAAIzd,OAAOzC,MAEf,IAAKq8B,EAAGrgC,OAAQ,OAAOggC,EAAWK,EAAInc,GAOtC,IALA,IAIIhe,EAJAo6B,EAAcD,EAAGnD,QAEjB1pB,EAAI,GACJC,EAFJ4sB,EAAGjD,UAAY,EAIyB,QAAhCl3B,EAAS85B,EAAWK,EAAInc,KAAc,CAC5C,IAAIqc,EAAW95B,OAAOP,EAAO,IAEZ,MADjBsN,EAAEC,GAAK8sB,KACcF,EAAGjD,UAAY2C,EAAmB7b,EAAGvX,EAAS0zB,EAAGjD,WAAYkD,IAClF7sB,IAEF,OAAa,IAANA,EAAU,KAAOD,OAQxB,SAAU/T,EAAQD,EAASH,GAKjCA,EAAoB,KACpB,IAAImC,EAAWnC,EAAoB,IAC/BiB,EAAQjB,EAAoB,GAC5BwC,EAAkBxC,EAAoB,IACtCmhC,EAAanhC,EAAoB,KACjCkC,EAA8BlC,EAAoB,IAElDwS,EAAUhQ,EAAgB,WAE1B4+B,GAAiCngC,EAAM,WAIzC,IAAI2mB,EAAK,IAMT,OALAA,EAAG3d,KAAO,WACR,IAAIpD,EAAS,GAEb,OADAA,EAAOw6B,OAAS,CAAEx8B,EAAG,KACdgC,GAEyB,MAA3B,GAAGgI,QAAQ+Y,EAAI,UAKpB0Z,EACgC,OAA3B,IAAIzyB,QAAQ,IAAK,MAGtB0yB,EAAU/+B,EAAgB,WAE1Bg/B,IACE,IAAID,IAC6B,KAA5B,IAAIA,GAAS,IAAK,MAOzBE,GAAqCxgC,EAAM,WAC7C,IAAI2mB,EAAK,OACL8Z,EAAe9Z,EAAG3d,KACtB2d,EAAG3d,KAAO,WAAc,OAAOy3B,EAAa/4B,MAAMhE,KAAMuC,YACxD,IAAIL,EAAS,KAAK4D,MAAMmd,GACxB,OAAyB,IAAlB/gB,EAAOM,QAA8B,MAAdN,EAAO,IAA4B,MAAdA,EAAO,KAG5DzG,EAAOD,QAAU,SAAU0a,EAAK1T,EAAQ8C,EAAMtC,GAC5C,IAAI3E,EAASR,EAAgBqY,GAEzB8mB,GAAuB1gC,EAAM,WAE/B,IAAI6D,EAAI,GAER,OADAA,EAAE9B,GAAU,WAAc,OAAO,GACZ,GAAd,GAAG6X,GAAK/V,KAGb+5B,EAAoB8C,IAAwB1gC,EAAM,WAEpD,IAAI29B,GAAa,EACbhX,EAAK,IAkBT,MAhBY,UAAR/M,KAIF+M,EAAK,CAGLjV,YAAiB,KACdA,YAAYH,GAAW,WAAc,OAAOoV,GAC/CA,EAAGwV,MAAQ,GACXxV,EAAG5kB,GAAU,IAAIA,IAGnB4kB,EAAG3d,KAAO,WAAiC,OAAnB20B,GAAa,EAAa,MAElDhX,EAAG5kB,GAAQ,KACH47B,IAGV,IACG+C,IACA9C,GACQ,YAARhkB,KACCumB,IACAE,GACCE,IAEM,UAAR3mB,IAAoB4mB,EACrB,CACA,IAAIG,EAAqB,IAAI5+B,GACzB4X,EAAU3Q,EAAKjH,EAAQ,GAAG6X,GAAM,SAAUsO,EAAcjW,EAAQuT,EAAKob,EAAMC,GAC7E,OAAI5uB,EAAOjJ,OAASk3B,EACdQ,IAAwBG,EAInB,CAAE1pB,MAAM,EAAMxT,MAAOg9B,EAAmBphC,KAAK0S,EAAQuT,EAAKob,IAE5D,CAAEzpB,MAAM,EAAMxT,MAAOukB,EAAa3oB,KAAKimB,EAAKvT,EAAQ2uB,IAEtD,CAAEzpB,MAAM,IACd,CACDkpB,iBAAkBA,EAClBE,6CAA8CA,IAG5CO,EAAcnnB,EAAQ,GAE1BzY,EAASiF,OAAOmC,UAAWsR,EAHRD,EAAQ,IAI3BzY,EAAS6tB,OAAOzmB,UAAWvG,EAAkB,GAAVmE,EAG/B,SAAUY,EAAQkH,GAAO,OAAO8yB,EAAYvhC,KAAKuH,EAAQpD,KAAMsK,IAG/D,SAAUlH,GAAU,OAAOg6B,EAAYvhC,KAAKuH,EAAQpD,QAItDgD,GAAMzF,EAA4B8tB,OAAOzmB,UAAUvG,GAAS,QAAQ,KAMpE,SAAU5C,EAAQD,EAASH,GAIjC,IAAIioB,EAASjoB,EAAoB,KAAKioB,OAItC7nB,EAAOD,QAAU,SAAU0kB,EAAGnc,EAAOm1B,GACnC,OAAOn1B,GAASm1B,EAAU5V,EAAOpD,EAAGnc,GAAOvB,OAAS,KAMhD,SAAU/G,EAAQD,EAASH,GAEjC,IAAIwK,EAAUxK,EAAoB,IAC9BmhC,EAAanhC,EAAoB,KAIrCI,EAAOD,QAAU,SAAU8+B,EAAGpa,GAC5B,IAAI5a,EAAOg1B,EAAEh1B,KACb,GAAoB,mBAATA,EAAqB,CAC9B,IAAIpD,EAASoD,EAAKzJ,KAAKy+B,EAAGpa,GAC1B,GAAsB,iBAAXhe,EACT,MAAMI,UAAU,sEAElB,OAAOJ,EAGT,GAAmB,WAAf2D,EAAQy0B,GACV,MAAMh4B,UAAU,+CAGlB,OAAOk6B,EAAW3gC,KAAKy+B,EAAGpa,KAOtB,SAAUzkB,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB8Z,EAA4B9Z,EAAoB,KAChDuK,EAAyBvK,EAAoB,IAC7CsN,EAAWtN,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAC/BwK,EAAUxK,EAAoB,IAC9Bw8B,EAAWx8B,EAAoB,KAC/BgiC,EAAiBhiC,EAAoB,KACrCkC,EAA8BlC,EAAoB,IAClDiB,EAAQjB,EAAoB,GAC5BwC,EAAkBxC,EAAoB,IACtCukB,EAAqBvkB,EAAoB,KACzC0gC,EAAqB1gC,EAAoB,KACzC4C,EAAsB5C,EAAoB,IAC1Ca,EAAUb,EAAoB,IAE9BiiC,EAAYz/B,EAAgB,YAC5B0/B,EAAgB,gBAChBC,EAAyBD,EAAgB,YACzC/+B,EAAmBP,EAAoBQ,IACvCC,EAAmBT,EAAoBU,UAAU6+B,GACjDtF,EAAkB7M,OAAOzmB,UACzB64B,EAAoBvF,EAAgB5yB,KACpCo4B,EAAiB,GAAGC,SAEpBC,IAAgCF,IAAmBphC,EAAM,WAC3D,IAAIqhC,SAAS,OAcXE,EAAwB1oB,EAA0B,SAAS2oB,qBAAqBvvB,EAAQnL,EAAQpH,EAAQsgC,GAC1G99B,EAAiBwB,KAAM,CACrBW,KAAM68B,EACNjvB,OAAQA,EACRnL,OAAQA,EACRpH,OAAQA,EACRk9B,QAASoD,EACT7oB,MAAM,KAEP8pB,EAAe,SAASlqB,OACzB,IAAI1L,EAAQjJ,EAAiBsB,MAC7B,GAAI2H,EAAM8L,KAAM,MAAO,CAAExT,MAAO7E,GAAWqY,MAAM,GACjD,IAAI6mB,EAAI3yB,EAAM4G,OACV2R,EAAIvY,EAAMvE,OACV0M,EAzBW,SAAUwqB,EAAGpa,GAC5B,IACIhe,EADAoD,EAAOg1B,EAAEh1B,KAEb,GAAmB,mBAARA,EAIT,OAAOm4B,EAAkB5hC,KAAKy+B,EAAGpa,GAFjC,GAAqB,iBADrBhe,EAASoD,EAAKzJ,KAAKy+B,EAAGpa,IACS,MAAM5d,UAAU,yBAC/C,OAAOJ,EAmBG85B,CAAW1B,EAAGpa,GAC1B,OAAc,OAAVpQ,EAAuB,CAAE7P,MAAO7E,GAAWqY,KAAM9L,EAAM8L,MAAO,GAC9D9L,EAAM3L,QACgB,IAApByG,OAAOqN,EAAM,MAAWwqB,EAAElB,UAAY2C,EAAmB7b,EAAGvX,EAAS2xB,EAAElB,WAAYzxB,EAAMuxB,UACtF,CAAEj5B,MAAO6P,EAAO2D,MAAM,IAGxB,CAAExT,MAAO6P,EAAO2D,OADvB9L,EAAM8L,MAAO,MAIXsqB,EAAY,SAAU36B,GACxB,IAEI2K,EAAGiwB,EAAYvF,EAAO0D,EAASngC,EAAQsgC,EAFvChC,EAAI59B,EAASsD,MACbkgB,EAAIzd,OAAOW,GAYf,OAVA2K,EAAI6R,EAAmB0a,EAAGjP,SAC1B2S,EAAa1D,EAAE7B,SACIr9B,IAAak/B,aAAajP,UAAY,UAAW6M,KAClE8F,EAAaX,EAAexhC,KAAKy+B,IAEnC7B,EAAQuF,IAAe5iC,GAAY,GAAKqH,OAAOu7B,GAC/C7B,EAAU,IAAIpuB,EAAEA,IAAMsd,OAASiP,EAAEh2B,OAASg2B,EAAG7B,GAC7Cz8B,KAAYy8B,EAAM/vB,QAAQ,KAC1B4zB,KAAiB7D,EAAM/vB,QAAQ,KAC/ByzB,EAAQ/C,UAAYzwB,EAAS2xB,EAAElB,WACxB,IAAIyE,EAAsB1B,EAASjc,EAAGlkB,EAAQsgC,IAKvDvgC,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAAQ66B,GAA+B,CACxED,SAAU,SAASA,SAASpvB,GAC1B,IACW2R,EAAGic,EAASE,EADnBl8B,EAAIyF,EAAuB5F,MAE/B,GAAc,MAAVuO,EAAgB,CAClB,GAAIspB,EAAStpB,MACH9L,OAAOmD,EAAuB,UAAWsyB,EAC7C3pB,EAAOkqB,MACP4E,EAAexhC,KAAK0S,KAEZ7F,QAAQ,KAAM,MAAMpG,UAAU,iDAE5C,GAAIs7B,EAA6B,OAAOF,EAAe15B,MAAM7D,EAAGoC,WAGhE,IAFA45B,EAAU5tB,EAAO+uB,MACDliC,IAAac,GAA8B,UAAnB2J,EAAQ0I,KAAqB4tB,EAAU4B,GAChE,MAAX5B,EAAiB,OAAO9zB,EAAU8zB,GAAStgC,KAAK0S,EAAQpO,QACvD,GAAIy9B,EAA6B,OAAOF,EAAe15B,MAAM7D,EAAGoC,WAGvE,OAFA2d,EAAIzd,OAAOtC,GACXk8B,EAAK,IAAIhR,OAAO9c,EAAQ,KACjBrS,EAAU6hC,EAAUliC,KAAKwgC,EAAInc,GAAKmc,EAAGiB,GAAWpd,MAI3DhkB,GAAWohC,KAAapF,GAAmB36B,EAA4B26B,EAAiBoF,EAAWS,IAK7F,SAAUtiC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB4iC,EAAU5iC,EAAoB,KAAKmV,IAKvCzU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJlB1H,EAAoB,MAIoB,CACvD6iC,OAAQ,SAASA,OAAO3c,GACtB,OAAO0c,EAAQj+B,KAAMuhB,EAA8B,EAAnBhf,UAAUC,OAAaD,UAAU,GAAKnH,QAOpE,SAAUK,EAAQD,EAASH,GAGjC,IAAI0U,EAAY1U,EAAoB,IAGpCI,EAAOD,QAAU,mDAAmDoM,KAAKmI,IAKnE,SAAUtU,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB8iC,EAAY9iC,EAAoB,KAAKgV,MAKzCtU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJlB1H,EAAoB,MAIoB,CACvDklB,SAAU,SAASA,SAASgB,GAC1B,OAAO4c,EAAUn+B,KAAMuhB,EAA8B,EAAnBhf,UAAUC,OAAaD,UAAU,GAAKnH,QAOtE,SAAUK,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBuB,EAAkBvB,EAAoB,GACtCsN,EAAWtN,EAAoB,IAInCU,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClCk7B,IAAK,SAASA,IAAIC,GAMhB,IALA,IAAIC,EAAc1hC,EAAgByhC,EAASD,KACvCG,EAAkB51B,EAAS21B,EAAY97B,QACvCgP,EAAkBjP,UAAUC,OAC5Bm5B,EAAW,GACXjgC,EAAI,EACiBA,EAAlB6iC,GACL5C,EAASx5B,KAAKM,OAAO67B,EAAY5iC,OAC7BA,EAAI8V,GAAiBmqB,EAASx5B,KAAKM,OAAOF,UAAU7G,KACxD,OAAOigC,EAAS70B,KAAK,QAOrB,SAAUrL,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,SAAUmM,OAAO,GAAQ,CACnCiS,OALWhmB,EAAoB,QAW3B,SAAUI,EAAQD,EAASH,GAIjC,IAAIygC,EAAgCzgC,EAAoB,KACpDqB,EAAWrB,EAAoB,IAC/BsB,EAAWtB,EAAoB,IAC/BsN,EAAWtN,EAAoB,IAC/B8N,EAAY9N,EAAoB,IAChCuK,EAAyBvK,EAAoB,IAC7C0gC,EAAqB1gC,EAAoB,KACzC2gC,EAAa3gC,EAAoB,KAEjCoO,EAAM1E,KAAK0E,IACXL,EAAMrE,KAAKqE,IACXG,EAAQxE,KAAKwE,MACbi1B,EAAuB,4BACvBC,EAAgC,oBAOpC3C,EAA8B,UAAW,EAAG,SAAUc,EAASpD,EAAe0C,EAAiBhK,GAC7F,IAAI2K,EAA+C3K,EAAO2K,6CACtDF,EAAmBzK,EAAOyK,iBAC1B+B,EAAoB7B,EAA+C,IAAM,KAE7E,MAAO,CAGL,SAAS3yB,QAAQy0B,EAAaC,GAC5B,IAAIz+B,EAAIyF,EAAuB5F,MAC3B2D,EAAWg7B,GAAevjC,GAAYA,GAAYujC,EAAY/B,GAClE,OAAOj5B,IAAavI,GAChBuI,EAAS9H,KAAK8iC,EAAax+B,EAAGy+B,GAC9BpF,EAAc39B,KAAK4G,OAAOtC,GAAIw+B,EAAaC,IAIjD,SAAUrwB,EAAQqwB,GAChB,IACI/B,GAAgDF,GACzB,iBAAjBiC,IAA0E,IAA7CA,EAAal2B,QAAQg2B,GAC1D,CACA,IAAItC,EAAMF,EAAgB1C,EAAejrB,EAAQvO,KAAM4+B,GACvD,GAAIxC,EAAI3oB,KAAM,OAAO2oB,EAAIn8B,MAG3B,IAAIo8B,EAAK3/B,EAAS6R,GACd2R,EAAIzd,OAAOzC,MAEX6+B,EAA4C,mBAAjBD,EAC1BC,IAAmBD,EAAen8B,OAAOm8B,IAE9C,IAAI5iC,EAASqgC,EAAGrgC,OAChB,GAAIA,EAAQ,CACV,IAAIsgC,EAAcD,EAAGnD,QACrBmD,EAAGjD,UAAY,EAGjB,IADA,IAAI0F,EAAU,KACD,CACX,IAAI58B,EAAS85B,EAAWK,EAAInc,GAC5B,GAAe,OAAXhe,EAAiB,MAGrB,GADA48B,EAAQ38B,KAAKD,IACRlG,EAAQ,MAGI,KADFyG,OAAOP,EAAO,MACRm6B,EAAGjD,UAAY2C,EAAmB7b,EAAGvX,EAAS0zB,EAAGjD,WAAYkD,IAKpF,IAFA,IAtDwBz7B,EAsDpBk+B,EAAoB,GACpBC,EAAqB,EAChBtjC,EAAI,EAAGA,EAAIojC,EAAQt8B,OAAQ9G,IAAK,CACvCwG,EAAS48B,EAAQpjC,GAUjB,IARA,IAAIujC,EAAUx8B,OAAOP,EAAO,IACxB64B,EAAWtxB,EAAIL,EAAID,EAAUjH,EAAO6B,OAAQmc,EAAE1d,QAAS,GACvD08B,EAAW,GAMNxjB,EAAI,EAAGA,EAAIxZ,EAAOM,OAAQkZ,IAAKwjB,EAAS/8B,MAnE3BtB,EAmE8CqB,EAAOwZ,MAlEnEtgB,GAAYyF,EAAK4B,OAAO5B,IAmEhC,IAAIs+B,EAAgBj9B,EAAOw6B,OAC3B,GAAImC,EAAmB,CACrB,IAAIO,EAAe,CAACH,GAAS19B,OAAO29B,EAAUnE,EAAU7a,GACpDif,IAAkB/jC,IAAWgkC,EAAaj9B,KAAKg9B,GACnD,IAAIx1B,EAAclH,OAAOm8B,EAAa56B,MAAM5I,GAAWgkC,SAEvDz1B,EAAc01B,gBAAgBJ,EAAS/e,EAAG6a,EAAUmE,EAAUC,EAAeP,GAE/DI,GAAZjE,IACFgE,GAAqB7e,EAAEna,MAAMi5B,EAAoBjE,GAAYpxB,EAC7Dq1B,EAAqBjE,EAAWkE,EAAQz8B,QAG5C,OAAOu8B,EAAoB7e,EAAEna,MAAMi5B,KAKvC,SAASK,gBAAgBJ,EAASnd,EAAKiZ,EAAUmE,EAAUC,EAAex1B,GACxE,IAAI21B,EAAUvE,EAAWkE,EAAQz8B,OAC7B1G,EAAIojC,EAAS18B,OACb+8B,EAAUd,EAKd,OAJIU,IAAkB/jC,KACpB+jC,EAAgBxiC,EAASwiC,GACzBI,EAAUf,GAELhF,EAAc39B,KAAK8N,EAAa41B,EAAS,SAAUzvB,EAAO0vB,GAC/D,IAAIC,EACJ,OAAQD,EAAGlc,OAAO,IAChB,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,OAAO2b,EACjB,IAAK,IAAK,OAAOnd,EAAI/b,MAAM,EAAGg1B,GAC9B,IAAK,IAAK,OAAOjZ,EAAI/b,MAAMu5B,GAC3B,IAAK,IACHG,EAAUN,EAAcK,EAAGz5B,MAAM,GAAI,IACrC,MACF,QACE,IAAI0J,GAAK+vB,EACT,GAAU,GAAN/vB,EAAS,OAAOK,EACpB,GAAQhU,EAAJ2T,EAAO,CACT,IAAIvQ,EAAIqK,EAAMkG,EAAI,IAClB,OAAU,IAANvQ,EAAgB4Q,EAChB5Q,GAAKpD,EAAUojC,EAAShgC,EAAI,KAAO9D,GAAYokC,EAAGlc,OAAO,GAAK4b,EAAShgC,EAAI,GAAKsgC,EAAGlc,OAAO,GACvFxT,EAET2vB,EAAUP,EAASzvB,EAAI,GAE3B,OAAOgwB,IAAYrkC,GAAY,GAAKqkC,QAQpC,SAAUhkC,EAAQD,EAASH,GAIjC,IAAIygC,EAAgCzgC,EAAoB,KACpDqB,EAAWrB,EAAoB,IAC/BuK,EAAyBvK,EAAoB,IAC7CqkC,EAAYrkC,EAAoB,KAChC2gC,EAAa3gC,EAAoB,KAGrCygC,EAA8B,SAAU,EAAG,SAAU6D,EAAQC,EAAc1D,GACzE,MAAO,CAGL,SAASX,OAAOhtB,GACd,IAAIpO,EAAIyF,EAAuB5F,MAC3B6/B,EAAWtxB,GAAUnT,GAAYA,GAAYmT,EAAOoxB,GACxD,OAAOE,IAAazkC,GAAYykC,EAAShkC,KAAK0S,EAAQpO,GAAK,IAAIkrB,OAAO9c,GAAQoxB,GAAQl9B,OAAOtC,KAI/F,SAAUoO,GACR,IAAI6tB,EAAMF,EAAgB0D,EAAcrxB,EAAQvO,MAChD,GAAIo8B,EAAI3oB,KAAM,OAAO2oB,EAAIn8B,MAEzB,IAAIo8B,EAAK3/B,EAAS6R,GACd2R,EAAIzd,OAAOzC,MAEX8/B,EAAoBzD,EAAGjD,UACtBsG,EAAUI,EAAmB,KAAIzD,EAAGjD,UAAY,GACrD,IAAIl3B,EAAS85B,EAAWK,EAAInc,GAE5B,OADKwf,EAAUrD,EAAGjD,UAAW0G,KAAoBzD,EAAGjD,UAAY0G,GAC9C,OAAX59B,GAAmB,EAAIA,EAAO6B,WAQrC,SAAUtI,EAAQD,EAASH,GAIjC,IAAIygC,EAAgCzgC,EAAoB,KACpDw8B,EAAWx8B,EAAoB,KAC/BqB,EAAWrB,EAAoB,IAC/BuK,EAAyBvK,EAAoB,IAC7CukB,EAAqBvkB,EAAoB,KACzC0gC,EAAqB1gC,EAAoB,KACzCsN,EAAWtN,EAAoB,IAC/B0kC,EAAiB1kC,EAAoB,KACrCmhC,EAAanhC,EAAoB,KACjCiB,EAAQjB,EAAoB,GAE5B2kC,EAAY,GAAG79B,KACfiH,EAAMrE,KAAKqE,IACX62B,EAAa,WAGbC,GAAc5jC,EAAM,WAAc,OAAQ+uB,OAAO4U,EAAY,OAGjEnE,EAA8B,QAAS,EAAG,SAAUqE,EAAOC,EAAalE,GACtE,IAAImE,EAmDJ,OAzCEA,EAR2B,KAA3B,OAAOv6B,MAAM,QAAQ,IACc,GAAnC,OAAOA,MAAM,QAAS,GAAGtD,QACO,GAAhC,KAAKsD,MAAM,WAAWtD,QACU,GAAhC,IAAIsD,MAAM,YAAYtD,QACK,EAA3B,IAAIsD,MAAM,QAAQtD,QAClB,GAAGsD,MAAM,MAAMtD,OAGC,SAAU4U,EAAWkpB,GACnC,IAAIl9B,EAASX,OAAOmD,EAAuB5F,OACvCugC,EAAMD,IAAUllC,GAAY6kC,EAAaK,IAAU,EACvD,GAAY,GAARC,EAAW,MAAO,GACtB,GAAInpB,IAAchc,GAAW,MAAO,CAACgI,GAErC,IAAKy0B,EAASzgB,GACZ,OAAOgpB,EAAYvkC,KAAKuH,EAAQgU,EAAWmpB,GAW7C,IATA,IAQIzwB,EAAOspB,EAAWoH,EARlBC,EAAS,GAKTC,EAAgB,EAEhBC,EAAgB,IAAItV,OAAOjU,EAAU9S,QAN5B8S,EAAU2hB,WAAa,IAAM,KAC7B3hB,EAAU4hB,UAAY,IAAM,KAC5B5hB,EAAU8hB,QAAU,IAAM,KAC1B9hB,EAAUshB,OAAS,IAAM,IAGmB,MAElD5oB,EAAQ0sB,EAAW3gC,KAAK8kC,EAAev9B,OAE5Bs9B,GADhBtH,EAAYuH,EAAcvH,aAExBqH,EAAOt+B,KAAKiB,EAAO2C,MAAM26B,EAAe5wB,EAAM/L,QAC3B,EAAf+L,EAAMtN,QAAcsN,EAAM/L,MAAQX,EAAOZ,QAAQw9B,EAAUh8B,MAAMy8B,EAAQ3wB,EAAM/J,MAAM,IACzFy6B,EAAa1wB,EAAM,GAAGtN,OACtBk+B,EAAgBtH,EACKmH,GAAjBE,EAAOj+B,UAETm+B,EAAcvH,YAActpB,EAAM/L,OAAO48B,EAAcvH,YAK7D,OAHIsH,IAAkBt9B,EAAOZ,QACvBg+B,GAAeG,EAAc/4B,KAAK,KAAK64B,EAAOt+B,KAAK,IAClDs+B,EAAOt+B,KAAKiB,EAAO2C,MAAM26B,IACTH,EAAhBE,EAAOj+B,OAAei+B,EAAO16B,MAAM,EAAGw6B,GAAOE,GAG7C,IAAI36B,MAAM1K,GAAW,GAAGoH,OACjB,SAAU4U,EAAWkpB,GACnC,OAAOlpB,IAAchc,IAAuB,IAAVklC,EAAc,GAAKF,EAAYvkC,KAAKmE,KAAMoX,EAAWkpB,IAEpEF,EAEhB,CAGL,SAASt6B,MAAMsR,EAAWkpB,GACxB,IAAIngC,EAAIyF,EAAuB5F,MAC3B4gC,EAAWxpB,GAAahc,GAAYA,GAAYgc,EAAU+oB,GAC9D,OAAOS,IAAaxlC,GAChBwlC,EAAS/kC,KAAKub,EAAWjX,EAAGmgC,GAC5BD,EAAcxkC,KAAK4G,OAAOtC,GAAIiX,EAAWkpB,IAO/C,SAAU/xB,EAAQ+xB,GAChB,IAAIlE,EAAMF,EAAgBmE,EAAe9xB,EAAQvO,KAAMsgC,EAAOD,IAAkBD,GAChF,GAAIhE,EAAI3oB,KAAM,OAAO2oB,EAAIn8B,MAEzB,IAAIo8B,EAAK3/B,EAAS6R,GACd2R,EAAIzd,OAAOzC,MACX+N,EAAI6R,EAAmByc,EAAIhR,QAE3BwV,EAAkBxE,EAAGnD,QAQrB0H,EAAW,IAAI7yB,EAAEmyB,EAAa7D,EAAK,OAASA,EAAG/3B,OAAS,KAP/C+3B,EAAGtD,WAAa,IAAM,KACtBsD,EAAGrD,UAAY,IAAM,KACrBqD,EAAGnD,QAAU,IAAM,KACnBgH,EAAa,IAAM,MAK5BK,EAAMD,IAAUllC,GAAY6kC,EAAaK,IAAU,EACvD,GAAY,GAARC,EAAW,MAAO,GACtB,GAAiB,IAAbrgB,EAAE1d,OAAc,OAAuC,OAAhCu9B,EAAea,EAAU1gB,GAAc,CAACA,GAAK,GAIxE,IAHA,IAAIqa,EAAI,EACJuG,EAAI,EACJtxB,EAAI,GACDsxB,EAAI5gB,EAAE1d,QAAQ,CACnBo+B,EAASxH,UAAY8G,EAAaY,EAAI,EACtC,IACIxU,EADAC,EAAIwT,EAAea,EAAUV,EAAahgB,EAAIA,EAAEna,MAAM+6B,IAE1D,GACQ,OAANvU,IACCD,EAAIljB,EAAIT,EAASi4B,EAASxH,WAAa8G,EAAa,EAAIY,IAAK5gB,EAAE1d,WAAa+3B,EAE7EuG,EAAI/E,EAAmB7b,EAAG4gB,EAAGD,OACxB,CAEL,GADArxB,EAAErN,KAAK+d,EAAEna,MAAMw0B,EAAGuG,IACdtxB,EAAEhN,SAAW+9B,EAAK,OAAO/wB,EAC7B,IAAK,IAAI9T,EAAI,EAAGA,GAAK6wB,EAAE/pB,OAAS,EAAG9G,IAEjC,GADA8T,EAAErN,KAAKoqB,EAAE7wB,IACL8T,EAAEhN,SAAW+9B,EAAK,OAAO/wB,EAE/BsxB,EAAIvG,EAAIjO,GAIZ,OADA9c,EAAErN,KAAK+d,EAAEna,MAAMw0B,IACR/qB,MAGT0wB,IAKE,SAAUzkC,EAAQD,EAASH,GAIjC,IAcMyG,EAdF/F,EAAIV,EAAoB,GACxBwG,EAA2BxG,EAAoB,GAAG6D,EAClDyJ,EAAWtN,EAAoB,IAC/B2/B,EAAa3/B,EAAoB,KACjCuK,EAAyBvK,EAAoB,IAC7C4/B,EAAuB5/B,EAAoB,KAC3Ca,EAAUb,EAAoB,IAE9B0lC,EAAmB,GAAGC,WACtB53B,EAAMrE,KAAKqE,IAEXgyB,EAA0BH,EAAqB,cASnDl/B,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,UAPX7G,GAAYk/B,MAC9Bt5B,EAAaD,EAAyBY,OAAOmC,UAAW,gBACtC9C,EAAW4D,aAK8B01B,GAA2B,CAC1F4F,WAAY,SAASA,WAAW3F,GAC9B,IAAInuB,EAAOzK,OAAOmD,EAAuB5F,OACzCg7B,EAAWK,GACX,IAAIt3B,EAAQ4E,EAASS,EAAuB,EAAnB7G,UAAUC,OAAaD,UAAU,GAAKnH,GAAW8R,EAAK1K,SAC3E+4B,EAAS94B,OAAO44B,GACpB,OAAO0F,EACHA,EAAiBllC,KAAKqR,EAAMquB,EAAQx3B,GACpCmJ,EAAKnH,MAAMhC,EAAOA,EAAQw3B,EAAO/4B,UAAY+4B,MAO/C,SAAU9/B,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB4lC,EAAQ5lC,EAAoB,KAAKivB,KAKrCvuB,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJN1H,EAAoB,IAIN6lC,CAAuB,SAAW,CAC3E5W,KAAM,SAASA,OACb,OAAO2W,EAAMjhC,UAOX,SAAUvE,EAAQD,EAASH,GAEjC,IAAIiB,EAAQjB,EAAoB,GAC5BuwB,EAAcvwB,EAAoB,KAMtCI,EAAOD,QAAU,SAAUmU,GACzB,OAAOrT,EAAM,WACX,QAASsvB,EAAYjc,MANf,OAAA,MAMqCA,MAAyBic,EAAYjc,GAAa9M,OAAS8M,MAOpG,SAAUlU,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB8lC,EAAW9lC,EAAoB,KAAKmV,IAGpCuF,EAFyB1a,EAAoB,IAEpC6lC,CAAuB,WAEhCE,EAAUrrB,EAAS,SAASqrB,IAC9B,OAAOD,EAASnhC,OACd,GAAGohC,QAIPrlC,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAAQgT,GAAU,CACnDqrB,QAASA,EACTC,UAAWD,KAMP,SAAU3lC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBimC,EAAajmC,EAAoB,KAAKgV,MAGtC0F,EAFyB1a,EAAoB,IAEpC6lC,CAAuB,aAEhCK,EAAYxrB,EAAS,SAASwrB,IAChC,OAAOD,EAAWthC,OAChB,GAAGuhC,UAIPxlC,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAAQgT,GAAU,CACnDwrB,UAAWA,EACXC,SAAUD,KAMN,SAAU9lC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBomC,EAAapmC,EAAoB,KAKrCU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJN1H,EAAoB,IAINqmC,CAAuB,WAAa,CAC7EC,OAAQ,SAASA,OAAO9+B,GACtB,OAAO4+B,EAAWzhC,KAAM,IAAK,OAAQ6C,OAOnC,SAAUpH,EAAQD,EAASH,GAEjC,IAAIuK,EAAyBvK,EAAoB,IAE7CumC,EAAO,KAIXnmC,EAAOD,QAAU,SAAU4H,EAAQ5C,EAAKqhC,EAAW5hC,GACjD,IAAIigB,EAAIzd,OAAOmD,EAAuBxC,IAClC0+B,EAAK,IAAMthC,EAEf,MADkB,KAAdqhC,IAAkBC,GAAM,IAAMD,EAAY,KAAOp/B,OAAOxC,GAAOiK,QAAQ03B,EAAM,UAAY,KACtFE,EAAK,IAAM5hB,EAAI,KAAO1f,EAAM,MAM/B,SAAU/E,EAAQD,EAASH,GAEjC,IAAIiB,EAAQjB,EAAoB,GAIhCI,EAAOD,QAAU,SAAUmU,GACzB,OAAOrT,EAAM,WACX,IAAIsL,EAAO,GAAG+H,GAAa,KAC3B,OAAO/H,IAASA,EAAKuC,eAA0C,EAAzBvC,EAAK9B,MAAM,KAAKtD,WAOpD,SAAU/G,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBomC,EAAapmC,EAAoB,KAKrCU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJN1H,EAAoB,IAINqmC,CAAuB,QAAU,CAC1EK,IAAK,SAASA,MACZ,OAAON,EAAWzhC,KAAM,MAAO,GAAI,QAOjC,SAAUvE,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBomC,EAAapmC,EAAoB,KAKrCU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJN1H,EAAoB,IAINqmC,CAAuB,UAAY,CAC5EM,MAAO,SAASA,QACd,OAAOP,EAAWzhC,KAAM,QAAS,GAAI,QAOnC,SAAUvE,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBomC,EAAapmC,EAAoB,KAKrCU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJN1H,EAAoB,IAINqmC,CAAuB,SAAW,CAC3EO,KAAM,SAASA,OACb,OAAOR,EAAWzhC,KAAM,IAAK,GAAI,QAO/B,SAAUvE,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBomC,EAAapmC,EAAoB,KAKrCU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJN1H,EAAoB,IAINqmC,CAAuB,UAAY,CAC5EQ,MAAO,SAASA,QACd,OAAOT,EAAWzhC,KAAM,KAAM,GAAI,QAOhC,SAAUvE,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBomC,EAAapmC,EAAoB,KAKrCU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJN1H,EAAoB,IAINqmC,CAAuB,cAAgB,CAChFS,UAAW,SAASA,UAAUC,GAC5B,OAAOX,EAAWzhC,KAAM,OAAQ,QAASoiC,OAOvC,SAAU3mC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBomC,EAAapmC,EAAoB,KAKrCU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJN1H,EAAoB,IAINqmC,CAAuB,aAAe,CAC/EW,SAAU,SAASA,SAAS1b,GAC1B,OAAO8a,EAAWzhC,KAAM,OAAQ,OAAQ2mB,OAOtC,SAAUlrB,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBomC,EAAapmC,EAAoB,KAKrCU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJN1H,EAAoB,IAINqmC,CAAuB,YAAc,CAC9EY,QAAS,SAASA,UAChB,OAAOb,EAAWzhC,KAAM,IAAK,GAAI,QAO/B,SAAUvE,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBomC,EAAapmC,EAAoB,KAKrCU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJN1H,EAAoB,IAINqmC,CAAuB,SAAW,CAC3Ea,KAAM,SAASA,KAAKC,GAClB,OAAOf,EAAWzhC,KAAM,IAAK,OAAQwiC,OAOnC,SAAU/mC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBomC,EAAapmC,EAAoB,KAKrCU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJN1H,EAAoB,IAINqmC,CAAuB,UAAY,CAC5Ee,MAAO,SAASA,QACd,OAAOhB,EAAWzhC,KAAM,QAAS,GAAI,QAOnC,SAAUvE,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBomC,EAAapmC,EAAoB,KAKrCU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJN1H,EAAoB,IAINqmC,CAAuB,WAAa,CAC7EgB,OAAQ,SAASA,SACf,OAAOjB,EAAWzhC,KAAM,SAAU,GAAI,QAOpC,SAAUvE,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBomC,EAAapmC,EAAoB,KAKrCU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJN1H,EAAoB,IAINqmC,CAAuB,QAAU,CAC1EiB,IAAK,SAASA,MACZ,OAAOlB,EAAWzhC,KAAM,MAAO,GAAI,QAOjC,SAAUvE,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBomC,EAAapmC,EAAoB,KAKrCU,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,EAAMrM,OAJN1H,EAAoB,IAINqmC,CAAuB,QAAU,CAC1EkB,IAAK,SAASA,MACZ,OAAOnB,EAAWzhC,KAAM,MAAO,GAAI,QAOjC,SAAUvE,EAAQD,EAASH,GAECA,EAAoB,IAItDwnC,CAA4B,UAAW,SAAUlf,GAC/C,OAAO,SAAS3E,aAAalV,EAAMwR,EAAY9Y,GAC7C,OAAOmhB,EAAK3jB,KAAM8J,EAAMwR,EAAY9Y,OAOlC,SAAU/G,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBW,EAASX,EAAoB,GAC7Bc,EAAcd,EAAoB,GAClCynC,EAA8CznC,EAAoB,KAClEwiB,EAAsBxiB,EAAoB,KAC1CskB,EAAoBtkB,EAAoB,KACxCoe,EAAape,EAAoB,KACjCyB,EAA2BzB,EAAoB,GAC/CkC,EAA8BlC,EAAoB,IAClDsN,EAAWtN,EAAoB,IAC/Bqe,EAAUre,EAAoB,KAC9B0nC,EAAW1nC,EAAoB,KAC/BwB,EAAcxB,EAAoB,IAClCkB,EAAMlB,EAAoB,IAC1BwK,EAAUxK,EAAoB,KAC9BoB,EAAWpB,EAAoB,IAC/BoI,EAASpI,EAAoB,IAC7Bga,EAAiBha,EAAoB,KACrC2G,EAAsB3G,EAAoB,IAAI6D,EAC9C8jC,EAAiB3nC,EAAoB,KACrC8C,EAAU9C,EAAoB,IAAI8C,QAClC0a,EAAaxd,EAAoB,KACjCgC,EAAuBhC,EAAoB,IAC3C+B,EAAiC/B,EAAoB,GACrD4C,EAAsB5C,EAAoB,IAC1C0oB,EAAoB1oB,EAAoB,KAExCqD,EAAmBT,EAAoB8B,IACvCvB,EAAmBP,EAAoBQ,IACvCU,EAAuB9B,EAAqB6B,EAC5CD,EAAiC7B,EAA+B8B,EAChE+jC,EAAQl+B,KAAKk+B,MACb9oB,EAAane,EAAOme,WACpBb,EAAcqG,EAAkBrG,YAChC0C,EAAW2D,EAAkB3D,SAC7B8B,EAA4BD,EAAoBC,0BAChDS,EAAkBV,EAAoBU,gBACtCH,EAAaP,EAAoBO,WACjCC,EAAsBR,EAAoBQ,oBAC1CgB,EAAyBxB,EAAoBwB,uBAC7CF,EAAetB,EAAoBsB,aACnC+jB,EAAoB,oBACpBC,EAAe,eAEfC,EAAW,SAAUr1B,EAAG4U,GAI1B,IAHA,IAAI5e,EAAQ,EACRvB,EAASmgB,EAAKngB,OACdN,EAAS,IAAKmd,EAAuBtR,GAA5B,CAAgCvL,GAC7BuB,EAATvB,GAAgBN,EAAO6B,GAAS4e,EAAK5e,KAC5C,OAAO7B,GAGL8Y,EAAY,SAAUna,EAAIG,GAC5B7B,EAAqB0B,EAAIG,EAAK,CAAEjB,IAAK,WACnC,OAAOrB,EAAiBsB,MAAMgB,OAI9BqiC,EAAgB,SAAUxiC,GAC5B,IAAIqe,EACJ,OAAOre,aAAcyY,GAAwC,gBAAxB4F,EAAQrZ,EAAQhF,KAAkC,qBAATqe,GAG5EokB,EAAoB,SAAUrgC,EAAQjC,GACxC,OAAOme,EAAalc,IACD,iBAAPjC,GACPA,KAAOiC,GACPR,QAAQzB,IAAQyB,OAAOzB,IAG1BuiC,EAAkC,SAAS1hC,yBAAyBoB,EAAQjC,GAC9E,OAAOsiC,EAAkBrgC,EAAQjC,EAAMnE,EAAYmE,GAAK,IACpDlE,EAAyB,EAAGmG,EAAOjC,IACnC/B,EAA+BgE,EAAQjC,IAGzCwiC,EAAwB,SAASziC,eAAekC,EAAQjC,EAAKc,GAC/D,QAAIwhC,EAAkBrgC,EAAQjC,EAAMnE,EAAYmE,GAAK,KAChDvE,EAASqF,IACTvF,EAAIuF,EAAY,WACfvF,EAAIuF,EAAY,QAChBvF,EAAIuF,EAAY,QAEhBA,EAAWa,cACVpG,EAAIuF,EAAY,cAAeA,EAAW4D,UAC1CnJ,EAAIuF,EAAY,gBAAiBA,EAAWb,WAI1C9B,EAAqB8D,EAAQjC,EAAKc,IAFzCmB,EAAOjC,GAAOc,EAAW7B,MAClBgD,IAIP9G,GACG2hB,IACH1gB,EAA+B8B,EAAIqkC,EACnClmC,EAAqB6B,EAAIskC,EACzBxoB,EAAUqD,EAAqB,UAC/BrD,EAAUqD,EAAqB,cAC/BrD,EAAUqD,EAAqB,cAC/BrD,EAAUqD,EAAqB,WAGjCtiB,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,EAAMH,QAAS+a,GAA6B,CACtEjc,yBAA0B0hC,EAC1BxiC,eAAgByiC,IAGlB/nC,EAAOD,QAAU,SAAUkM,EAAMsc,EAASyf,GACxC,IAAIC,EAAQh8B,EAAKoI,MAAM,QAAQ,GAAK,EAChCgJ,EAAmBpR,GAAQ+7B,EAAU,UAAY,IAAM,QACvDE,EAAS,MAAQj8B,EACjBk8B,EAAS,MAAQl8B,EACjBm8B,EAA8B7nC,EAAO8c,GACrCyG,EAAwBskB,EACxBC,EAAiCvkB,GAAyBA,EAAsB3a,UAChF0f,EAAW,GAaXyf,EAAa,SAAU72B,EAAMnJ,GAC/B5E,EAAqB+N,EAAMnJ,EAAO,CAChChE,IAAK,WACH,OAduBgE,EAcHA,GAbpB+F,EAAOpL,EAaOsB,OAZNib,KAAK0oB,GAAQ5/B,EAAQ2/B,EAAQ55B,EAAKwR,YAAY,GAF/C,IAAgBvX,EACvB+F,GAeFrL,IAAK,SAAUwB,GACb,OAZuB8D,EAYHA,EAZU9D,EAYHA,EAX3B6J,EAAOpL,EAWOsB,MAVdyjC,IAASxjC,GAASA,EAAQgjC,EAAMhjC,IAAU,EAAI,EAAY,IAARA,EAAe,IAAe,IAARA,QAC5E6J,EAAKmR,KAAK2oB,GAAQ7/B,EAAQ2/B,EAAQ55B,EAAKwR,WAAYrb,GAAO,GAH/C,IAAgB8D,EAAO9D,EAC9B6J,GAaF7I,YAAY,KAIX6c,EAwCMglB,IACTvjB,EAAwByE,EAAQ,SAAUkB,EAAOpb,EAAMk6B,EAAkBC,GAEvE,OADAxqB,EAAWyL,EAAO3F,EAAuBzG,GAClCiL,EACAtnB,EAASqN,GACVu5B,EAAcv5B,GAAcm6B,IAAY7oC,GACxC,IAAIyoC,EAA4B/5B,EAAMi5B,EAASiB,EAAkBN,GAAQO,GACzED,IAAqB5oC,GACnB,IAAIyoC,EAA4B/5B,EAAMi5B,EAASiB,EAAkBN,IACjE,IAAIG,EAA4B/5B,GAClCqV,EAAarV,GAAcs5B,EAAS7jB,EAAuBzV,GACxDk5B,EAAennC,KAAK0jB,EAAuBzV,GAPtB,IAAI+5B,EAA4BnqB,EAAQ5P,IAQjEob,EAAO3F,KAGVlK,GAAgBA,EAAekK,EAAuBnB,GAC1DjgB,EAAQ6D,EAAoB6hC,GAA8B,SAAU7iC,GAC5DA,KAAOue,GACXhiB,EAA4BgiB,EAAuBve,EAAK6iC,EAA4B7iC,MAGxFue,EAAsB3a,UAAYk/B,IA5DlCvkB,EAAwByE,EAAQ,SAAU9W,EAAMpD,EAAMoS,EAAQ+nB,GAC5DxqB,EAAWvM,EAAMqS,EAAuBzG,GACxC,IAEI+B,EAAQO,EAAY5Y,EAFpBuB,EAAQ,EACRuX,EAAa,EAEjB,GAAK7e,EAASqN,GAIP,CAAA,IAAIu5B,EAAcv5B,GAalB,OAAIqV,EAAarV,GACfs5B,EAAS7jB,EAAuBzV,GAEhCk5B,EAAennC,KAAK0jB,EAAuBzV,GAflD+Q,EAAS/Q,EACTwR,EAAaynB,EAAS7mB,EAAQwnB,GAC9B,IAAIQ,EAAOp6B,EAAKsR,WAChB,GAAI6oB,IAAY7oC,GAAW,CACzB,GAAI8oC,EAAOR,EAAO,MAAMvpB,EAAWgpB,GAEnC,IADA/nB,EAAa8oB,EAAO5oB,GACH,EAAG,MAAMnB,EAAWgpB,QAGrC,GAA8Be,GAD9B9oB,EAAazS,EAASs7B,GAAWP,GAChBpoB,EAAmB,MAAMnB,EAAWgpB,GAEvD3gC,EAAS4Y,EAAasoB,OAftBlhC,EAASkX,EAAQ5P,GAEjB+Q,EAAS,IAAIvB,EADb8B,EAAa5Y,EAASkhC,GA2BxB,IAPAllC,EAAiB0O,EAAM,CACrB2N,OAAQA,EACRS,WAAYA,EACZF,WAAYA,EACZ5Y,OAAQA,EACRyY,KAAM,IAAIe,EAASnB,KAEd9W,EAAQvB,GAAQuhC,EAAW72B,EAAMnJ,OAGtCsR,GAAgBA,EAAekK,EAAuBnB,GAC1D0lB,EAAiCvkB,EAAsB3a,UAAYnB,EAAO4a,IAyBxEylB,EAA+B91B,cAAgBuR,GACjDhiB,EAA4BumC,EAAgC,cAAevkB,GAGzEhB,GACFhhB,EAA4BumC,EAAgCvlB,EAAiBzF,GAK/E/c,EAAE,CACAC,QAAQ,EAAM+G,QAHhBuhB,EAASxL,GAAoByG,IAGoBskB,EAA6B7gC,MAAO8a,GAClFwG,GAEG4e,KAAqB3jB,GACzBhiB,EAA4BgiB,EAAuB2jB,EAAmBQ,GAGlER,KAAqBY,GACzBvmC,EAA4BumC,EAAgCZ,EAAmBQ,GAGjF7qB,EAAWC,KAERrd,EAAOD,QAAU,cAKlB,SAAUC,EAAQD,EAASH,GAGjC,IAAIW,EAASX,EAAoB,GAC7BiB,EAAQjB,EAAoB,GAC5ByX,EAA8BzX,EAAoB,KAClDyiB,EAA4BziB,EAAoB,KAAKyiB,0BAErDxE,EAActd,EAAOsd,YACrB0E,EAAYhiB,EAAOgiB,UAEvBviB,EAAOD,SAAWsiB,IAA8BxhB,EAAM,WACpD0hB,EAAU,OACL1hB,EAAM,WACX,IAAI0hB,GAAW,OACVlL,EAA4B,SAAUC,GAC3C,IAAIiL,EACJ,IAAIA,EAAU,MACd,IAAIA,EAAU,KACd,IAAIA,EAAUjL,KACb,IAASzW,EAAM,WAEhB,OAAkE,IAA3D,IAAI0hB,EAAU,IAAI1E,EAAY,GAAI,EAAGle,IAAWoH,UAMnD,SAAU/G,EAAQD,EAASH,GAEjC,IAAI8oC,EAAoB9oC,EAAoB,KAE5CI,EAAOD,QAAU,SAAUqF,EAAI6iC,GAC7B,IAAIxnB,EAASioB,EAAkBtjC,GAC/B,GAAIqb,EAASwnB,EAAO,MAAMvpB,WAAW,gBACrC,OAAO+B,IAMH,SAAUzgB,EAAQD,EAASH,GAEjC,IAAI8N,EAAY9N,EAAoB,IAEpCI,EAAOD,QAAU,SAAUqF,GACzB,IAAIqB,EAASiH,EAAUtI,GACvB,GAAIqB,EAAS,EAAG,MAAMiY,WAAW,qCACjC,OAAOjY,IAMH,SAAUzG,EAAQD,EAASH,GAEjC,IAAIsB,EAAWtB,EAAoB,IAC/BsN,EAAWtN,EAAoB,IAC/B6X,EAAoB7X,EAAoB,KACxC4X,EAAwB5X,EAAoB,KAC5CoR,EAAOpR,EAAoB,IAC3BgkB,EAAyBhkB,EAAoB,KAAKgkB,uBAEtD5jB,EAAOD,QAAU,SAAS+U,KAAKjM,GAC7B,IAKI5I,EAAG8G,EAAQN,EAAQkR,EAAMhJ,EAAUiJ,EALnClT,EAAIxD,EAAS2H,GACbkN,EAAkBjP,UAAUC,OAC5B8Q,EAA0B,EAAlB9B,EAAsBjP,UAAU,GAAKnH,GAC7CmY,EAAUD,IAAUlY,GACpBoY,EAAiBN,EAAkB/S,GAEvC,GAAIqT,GAAkBpY,KAAc6X,EAAsBO,GAIxD,IAFAH,GADAjJ,EAAWoJ,EAAe3X,KAAKsE,IACfkT,KAChBlT,EAAI,KACKiT,EAAOC,EAAKxX,KAAKuO,IAAWqJ,MACnCtT,EAAEgC,KAAKiR,EAAKnT,OAQhB,IALIsT,GAA6B,EAAlB/B,IACb8B,EAAQ7G,EAAK6G,EAAO/Q,UAAU,GAAI,IAEpCC,EAASmG,EAASxI,EAAEqC,QACpBN,EAAS,IAAKmd,EAAuBrf,MAA5B,CAAmCwC,GACvC9G,EAAI,EAAYA,EAAT8G,EAAY9G,IACtBwG,EAAOxG,GAAK6X,EAAUD,EAAMnT,EAAEzE,GAAIA,GAAKyE,EAAEzE,GAE3C,OAAOwG,IAMH,SAAUzG,EAAQD,EAASH,GAECA,EAAoB,IAItDwnC,CAA4B,UAAW,SAAUlf,GAC/C,OAAO,SAAS1E,aAAanV,EAAMwR,EAAY9Y,GAC7C,OAAOmhB,EAAK3jB,KAAM8J,EAAMwR,EAAY9Y,OAOlC,SAAU/G,EAAQD,EAASH,GAECA,EAAoB,IAItDwnC,CAA4B,OAAQ,SAAUlf,GAC5C,OAAO,SAAS3F,UAAUlU,EAAMwR,EAAY9Y,GAC1C,OAAOmhB,EAAK3jB,KAAM8J,EAAMwR,EAAY9Y,OAOlC,SAAU/G,EAAQD,EAASH,GAECA,EAAoB,IAItDwnC,CAA4B,QAAS,SAAUlf,GAC7C,OAAO,SAAS/E,WAAW9U,EAAMwR,EAAY9Y,GAC3C,OAAOmhB,EAAK3jB,KAAM8J,EAAMwR,EAAY9Y,OAOlC,SAAU/G,EAAQD,EAASH,GAECA,EAAoB,IAItDwnC,CAA4B,QAAS,SAAUlf,GAC7C,OAAO,SAAS7E,WAAWhV,EAAMwR,EAAY9Y,GAC3C,OAAOmhB,EAAK3jB,KAAM8J,EAAMwR,EAAY9Y,OAOlC,SAAU/G,EAAQD,EAASH,GAECA,EAAoB,IAItDwnC,CAA4B,QAAS,SAAUlf,GAC7C,OAAO,SAAShF,WAAW7U,EAAMwR,EAAY9Y,GAC3C,OAAOmhB,EAAK3jB,KAAM8J,EAAMwR,EAAY9Y,OAOlC,SAAU/G,EAAQD,EAASH,GAECA,EAAoB,IAItDwnC,CAA4B,QAAS,SAAUlf,GAC7C,OAAO,SAASzF,kBAAkBpU,EAAMwR,EAAY9Y,GAClD,OAAOmhB,EAAK3jB,KAAM8J,EAAMwR,EAAY9Y,MAErC,IAKG,SAAU/G,EAAQD,EAASH,GAECA,EAAoB,IAItDwnC,CAA4B,SAAU,SAAUlf,GAC9C,OAAO,SAAS9E,YAAY/U,EAAMwR,EAAY9Y,GAC5C,OAAOmhB,EAAK3jB,KAAM8J,EAAMwR,EAAY9Y,OAOlC,SAAU/G,EAAQD,EAASH,GAECA,EAAoB,IAItDwnC,CAA4B,SAAU,SAAUlf,GAC9C,OAAO,SAAS5E,YAAYjV,EAAMwR,EAAY9Y,GAC5C,OAAOmhB,EAAK3jB,KAAM8J,EAAMwR,EAAY9Y,OAOlC,SAAU/G,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1C+oC,EAAc/oC,EAAoB,IAElC+jB,EAAcvB,EAAoBuB,aAKtCI,EAJ6B3B,EAAoB2B,wBAI1B,aAAc,SAASrP,WAAWlN,EAAQoN,GAC/D,OAAO+zB,EAAYvoC,KAAKujB,EAAYpf,MAAOiD,EAAQoN,EAA0B,EAAnB9N,UAAUC,OAAaD,UAAU,GAAKnH,OAM5F,SAAUK,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1CwV,EAASxV,EAAoB,IAAImS,MAEjC4R,EAAcvB,EAAoBuB,aAKtCI,EAJ6B3B,EAAoB2B,wBAI1B,QAAS,SAAShS,MAAMP,GAC7C,OAAO4D,EAAOuO,EAAYpf,MAAOiN,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,OAM/E,SAAUK,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1CgpC,EAAQhpC,EAAoB,IAE5B+jB,EAAcvB,EAAoBuB,aAMtCI,EAL6B3B,EAAoB2B,wBAK1B,OAAQ,SAASjO,KAAKtR,GAC3C,OAAOokC,EAAMrgC,MAAMob,EAAYpf,MAAOuC,cAMlC,SAAU9G,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1CqW,EAAUrW,EAAoB,IAAIiS,OAClCsS,EAAqBvkB,EAAoB,KAEzC+jB,EAAcvB,EAAoBuB,YAClCC,EAAyBxB,EAAoBwB,wBAKjDG,EAJ6B3B,EAAoB2B,wBAI1B,SAAU,SAASlS,OAAOL,GAM/C,IALA,IAAI0V,EAAOjR,EAAQ0N,EAAYpf,MAAOiN,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,IACpF2S,EAAI6R,EAAmB5f,KAAMA,KAAKgO,aAClCjK,EAAQ,EACRvB,EAASmgB,EAAKngB,OACdN,EAAS,IAAKmd,EAAuBtR,GAA5B,CAAgCvL,GAC7BuB,EAATvB,GAAgBN,EAAO6B,GAAS4e,EAAK5e,KAC5C,OAAO7B,KAMH,SAAUzG,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1CuW,EAAQvW,EAAoB,IAAIoS,KAEhC2R,EAAcvB,EAAoBuB,aAKtCI,EAJ6B3B,EAAoB2B,wBAI1B,OAAQ,SAAS/R,KAAK62B,GAC3C,OAAO1yB,EAAMwN,EAAYpf,MAAOskC,EAA8B,EAAnB/hC,UAAUC,OAAaD,UAAU,GAAKnH,OAM7E,SAAUK,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1C0W,EAAa1W,EAAoB,IAAIqS,UAErC0R,EAAcvB,EAAoBuB,aAKtCI,EAJ6B3B,EAAoB2B,wBAI1B,YAAa,SAAS9R,UAAU42B,GACrD,OAAOvyB,EAAWqN,EAAYpf,MAAOskC,EAA8B,EAAnB/hC,UAAUC,OAAaD,UAAU,GAAKnH,OAMlF,SAAUK,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1C6C,EAAW7C,EAAoB,IAAI8C,QAEnCihB,EAAcvB,EAAoBuB,aAKtCI,EAJ6B3B,EAAoB2B,wBAI1B,UAAW,SAASrhB,QAAQ8O,GACjD/O,EAASkhB,EAAYpf,MAAOiN,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,OAM1E,SAAUK,EAAQD,EAASH,GAIjC,IAAIynC,EAA8CznC,EAAoB,MAMtEqkB,EALmCrkB,EAAoB,KAAKqkB,8BAK/B,OAJRrkB,EAAoB,KAIYynC,IAK/C,SAAUrnC,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1CoZ,EAAYpZ,EAAoB,IAAI6N,SAEpCkW,EAAcvB,EAAoBuB,aAKtCI,EAJ6B3B,EAAoB2B,wBAI1B,WAAY,SAAStW,SAAS2L,GACnD,OAAOJ,EAAU2K,EAAYpf,MAAO6U,EAAkC,EAAnBtS,UAAUC,OAAaD,UAAU,GAAKnH,OAMrF,SAAUK,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1CqZ,EAAWrZ,EAAoB,IAAIqN,QAEnC0W,EAAcvB,EAAoBuB,aAKtCI,EAJ6B3B,EAAoB2B,wBAI1B,UAAW,SAAS9W,QAAQmM,GACjD,OAAOH,EAAS0K,EAAYpf,MAAO6U,EAAkC,EAAnBtS,UAAUC,OAAaD,UAAU,GAAKnH,OAMpF,SAAUK,EAAQD,EAASH,GAIjC,IAAIW,EAASX,EAAoB,GAC7BwiB,EAAsBxiB,EAAoB,KAC1CkpC,EAAiBlpC,EAAoB,KAGrCwY,EAFkBxY,EAAoB,GAE3BwC,CAAgB,YAC3B8gB,EAAa3iB,EAAO2iB,WACpB6lB,EAAcD,EAAehuB,OAC7BkuB,EAAYF,EAAejjC,KAC3BojC,EAAeH,EAAe/tB,QAC9B4I,EAAcvB,EAAoBuB,YAClCI,EAAyB3B,EAAoB2B,uBAC7CmlB,EAA2BhmB,GAAcA,EAAW/Z,UAAUiP,GAE9D+wB,IAAsBD,IACa,UAAjCA,EAAyB9hC,MAAoB8hC,EAAyB9hC,MAAQzH,IAEhFypC,EAAmB,SAAStuB,SAC9B,OAAOiuB,EAAY3oC,KAAKujB,EAAYpf,QAKtCwf,EAAuB,UAAW,SAAShJ,UACzC,OAAOkuB,EAAa7oC,KAAKujB,EAAYpf,SAIvCwf,EAAuB,OAAQ,SAASle,OACtC,OAAOmjC,EAAU5oC,KAAKujB,EAAYpf,SAIpCwf,EAAuB,SAAUqlB,GAAmBD,GAGpDplB,EAAuB3L,EAAUgxB,GAAmBD,IAK9C,SAAUnpC,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAE1C+jB,EAAcvB,EAAoBuB,YAElC0lB,EAAQ,GAAGh+B,MAKf0Y,EAN6B3B,EAAoB2B,wBAM1B,OAAQ,SAAS1Y,KAAKsQ,GAC3C,OAAO0tB,EAAM9gC,MAAMob,EAAYpf,MAAOuC,cAMlC,SAAU9G,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1C0pC,EAAe1pC,EAAoB,KAEnC+jB,EAAcvB,EAAoBuB,aAMtCI,EAL6B3B,EAAoB2B,wBAK1B,cAAe,SAASnI,YAAYxC,GACzD,OAAOkwB,EAAa/gC,MAAMob,EAAYpf,MAAOuC,cAMzC,SAAU9G,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1Ckc,EAAOlc,EAAoB,IAAIgS,IAC/BuS,EAAqBvkB,EAAoB,KAEzC+jB,EAAcvB,EAAoBuB,YAClCC,EAAyBxB,EAAoBwB,wBAKjDG,EAJ6B3B,EAAoB2B,wBAI1B,MAAO,SAASnS,IAAIiG,GACzC,OAAOiE,EAAK6H,EAAYpf,MAAOsT,EAA0B,EAAnB/Q,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,SAAU+E,EAAGqC,GAClG,OAAO,IAAK6c,EAAuBO,EAAmBzf,EAAGA,EAAE6N,cAApD,CAAmExL,QAOxE,SAAU/G,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1CynC,EAA8CznC,EAAoB;AAElEgkB,EAAyBxB,EAAoBwB,wBAKjDK,EAJmC7B,EAAoB6B,8BAI1B,KAAM,SAASlI,KAI1C,IAHA,IAAIzT,EAAQ,EACRvB,EAASD,UAAUC,OACnBN,EAAS,IAAKmd,EAAuBrf,MAA5B,CAAmCwC,GAChCuB,EAATvB,GAAgBN,EAAO6B,GAASxB,UAAUwB,KACjD,OAAO7B,GACN4gC,IAKG,SAAUrnC,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1Coc,EAAUpc,EAAoB,KAAKqc,KAEnC0H,EAAcvB,EAAoBuB,aAKtCI,EAJ6B3B,EAAoB2B,wBAI1B,SAAU,SAAS7H,OAAO1K,GAC/C,OAAOwK,EAAQ2H,EAAYpf,MAAOiN,EAAY1K,UAAUC,OAA2B,EAAnBD,UAAUC,OAAaD,UAAU,GAAKnH,OAMlG,SAAUK,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1C0c,EAAe1c,EAAoB,KAAKyc,MAExCsH,EAAcvB,EAAoBuB,aAKtCI,EAJ6B3B,EAAoB2B,wBAI1B,cAAe,SAASxH,YAAY/K,GACzD,OAAO8K,EAAaqH,EAAYpf,MAAOiN,EAAY1K,UAAUC,OAA2B,EAAnBD,UAAUC,OAAaD,UAAU,GAAKnH,OAMvG,SAAUK,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAE1C+jB,EAAcvB,EAAoBuB,YAElC7V,EAAQxE,KAAKwE,OAIjBiW,EAL6B3B,EAAoB2B,wBAK1B,UAAW,SAAStH,UAMzC,IALA,IAIIjY,EAHAuC,EAAS4c,EADFpf,MACoBwC,OAC3BwiC,EAASz7B,EAAM/G,EAAS,GACxBuB,EAAQ,EAELA,EAAQihC,GACb/kC,EANSD,KAMI+D,GANJ/D,KAOJ+D,KAPI/D,OAOcwC,GAPdxC,KAQJwC,GAAUvC,EACf,OATSD,QAeP,SAAUvE,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1CsN,EAAWtN,EAAoB,IAC/B0nC,EAAW1nC,EAAoB,KAC/BsB,EAAWtB,EAAoB,IAC/BiB,EAAQjB,EAAoB,GAE5B+jB,EAAcvB,EAAoBuB,aAUtCI,EAT6B3B,EAAoB2B,wBAS1B,MAAO,SAAS/gB,IAAI0U,GACzCiM,EAAYpf,MACZ,IAAIkc,EAAS6mB,EAA4B,EAAnBxgC,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GACnEoH,EAASxC,KAAKwC,OACdsJ,EAAMnP,EAASwW,GACf7D,EAAM3G,EAASmD,EAAItJ,QACnBuB,EAAQ,EACZ,GAAmBvB,EAAf8M,EAAM4M,EAAiB,MAAM/B,WAAW,gBAC5C,KAAOpW,EAAQuL,GAAKtP,KAAKkc,EAASnY,GAAS+H,EAAI/H,MAfpCzH,EAAM,WAEjB,IAAI0hB,UAAU,GAAGvf,IAAI,QAmBjB,SAAUhD,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1CukB,EAAqBvkB,EAAoB,KACzCiB,EAAQjB,EAAoB,GAE5B+jB,EAAcvB,EAAoBuB,YAClCC,EAAyBxB,EAAoBwB,uBAE7C4lB,EAAS,GAAGl/B,OAShByZ,EAV6B3B,EAAoB2B,wBAU1B,QAAS,SAASzZ,MAAMsK,EAAOG,GAMpD,IALA,IAAImS,EAAOsiB,EAAOppC,KAAKujB,EAAYpf,MAAOqQ,EAAOG,GAC7CzC,EAAI6R,EAAmB5f,KAAMA,KAAKgO,aAClCjK,EAAQ,EACRvB,EAASmgB,EAAKngB,OACdN,EAAS,IAAKmd,EAAuBtR,GAA5B,CAAgCvL,GAC7BuB,EAATvB,GAAgBN,EAAO6B,GAAS4e,EAAK5e,KAC5C,OAAO7B,GAdI5F,EAAM,WAEjB,IAAI0hB,UAAU,GAAGjY,YAkBb,SAAUtK,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1Ckd,EAAQld,EAAoB,IAAIkS,KAEhC6R,EAAcvB,EAAoBuB,aAKtCI,EAJ6B3B,EAAoB2B,wBAI1B,OAAQ,SAASjS,KAAKN,GAC3C,OAAOsL,EAAM6G,EAAYpf,MAAOiN,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,OAM9E,SAAUK,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAE1C+jB,EAAcvB,EAAoBuB,YAElC8lB,EAAQ,GAAGzsB,MAIf+G,EAL6B3B,EAAoB2B,wBAK1B,OAAQ,SAAS/G,KAAKG,GAC3C,OAAOssB,EAAMrpC,KAAKujB,EAAYpf,MAAO4Y,MAMjC,SAAUnd,EAAQD,EAASH,GAIjC,IAAIwiB,EAAsBxiB,EAAoB,KAC1CsN,EAAWtN,EAAoB,IAC/BuN,EAAkBvN,EAAoB,IACtCukB,EAAqBvkB,EAAoB,KAEzC+jB,EAAcvB,EAAoBuB,aAKtCI,EAJ6B3B,EAAoB2B,wBAI1B,WAAY,SAAS2lB,SAASC,EAAO50B,GAC1D,IAAIrQ,EAAIif,EAAYpf,MAChBwC,EAASrC,EAAEqC,OACX6iC,EAAaz8B,EAAgBw8B,EAAO5iC,GACxC,OAAO,IAAKod,EAAmBzf,EAAGA,EAAE6N,aAA7B,CACL7N,EAAE0a,OACF1a,EAAEmb,WAAa+pB,EAAallC,EAAE+iC,kBAC9Bv6B,GAAU6H,IAAQpV,GAAYoH,EAASoG,EAAgB4H,EAAKhO,IAAW6iC,OAOrE,SAAU5pC,EAAQD,EAASH,GAIjC,IAAIW,EAASX,EAAoB,GAC7BwiB,EAAsBxiB,EAAoB,KAC1CiB,EAAQjB,EAAoB,GAE5B2iB,EAAYhiB,EAAOgiB,UACnBoB,EAAcvB,EAAoBuB,YAClCI,EAAyB3B,EAAoB2B,uBAC7C8lB,EAAkB,GAAGC,eACrBN,EAAS,GAAGl/B,MAGZy/B,IAAyBxnB,GAAa1hB,EAAM,WAC9CgpC,EAAgBzpC,KAAK,IAAImiB,EAAU,MAWrCwB,EAAuB,iBAAkB,SAAS+lB,iBAChD,OAAOD,EAAgBthC,MAAMwhC,EAAuBP,EAAOppC,KAAKujB,EAAYpf,OAASof,EAAYpf,MAAOuC,YAT7FjG,EAAM,WACjB,MAAO,CAAC,EAAG,GAAGipC,kBAAoB,IAAIvnB,EAAU,CAAC,EAAG,IAAIunB,qBACnDjpC,EAAM,WACX0hB,EAAUpZ,UAAU2gC,eAAe1pC,KAAK,CAAC,EAAG,QAYxC,SAAUJ,EAAQD,EAASH,GAIjC,IAAImkB,EAAyBnkB,EAAoB,KAAKmkB,uBAClDljB,EAAQjB,EAAoB,GAG5BsjB,EAFStjB,EAAoB,GAETsjB,WACpB8mB,EAAsB9mB,GAAcA,EAAW/Z,WAAa,GAC5D8gC,EAAgB,GAAG9iC,SACnB+iC,EAAY,GAAG7+B,KAEfxK,EAAM,WAAcopC,EAAc7pC,KAAK,QACzC6pC,EAAgB,SAAS9iC,WACvB,OAAO+iC,EAAU9pC,KAAKmE,QAQ1Bwf,EAAuB,WAAYkmB,EAJTD,EAAoB7iC,UAAY8iC,IASpD,SAAUjqC,EAAQD,EAASH,GAIjC,IAWIuqC,EAXA5pC,EAASX,EAAoB,GAC7Bme,EAAcne,EAAoB,KAClCwoB,EAAyBxoB,EAAoB,KAC7CooB,EAAapoB,EAAoB,KACjCwqC,EAAiBxqC,EAAoB,KACrCoB,EAAWpB,EAAoB,IAC/ByqC,EAAsBzqC,EAAoB,IAAIsL,QAC9CO,EAAkB7L,EAAoB,IAEtC0qC,GAAW/pC,EAAOmP,eAAiB,kBAAmBnP,EACtDupB,EAAe1mB,OAAO0mB,aAGtBvB,EAAU,SAAUL,GACtB,OAAO,SAASvc,UACd,OAAOuc,EAAK3jB,KAAMuC,UAAUC,OAASD,UAAU,GAAKnH,MAMpD4qC,EAAWvqC,EAAOD,QAAUioB,EAAW,UAAWO,EAAS6hB,GAK/D,GAAI3+B,GAAmB6+B,EAAS,CAC9BH,EAAkBC,EAAenhB,eAAeV,EAAS,WAAW,GACpEH,EAAuBc,UAAW,EAClC,IAAIshB,EAAmBD,EAASphC,UAC5BshC,EAAeD,EAAyB,UACxCE,EAAYF,EAAiB1pC,IAC7B6pC,EAAYH,EAAiBlmC,IAC7BsmC,EAAYJ,EAAiBxnC,IACjC+a,EAAYysB,EAAkB,CAC5Bhf,SAAU,SAAUjmB,GAClB,IAAIvE,EAASuE,IAASukB,EAAavkB,GAIjC,OAAOklC,EAAarqC,KAAKmE,KAAMgB,GAH/B,IAAI2G,EAAQm+B,EAAoB9lC,MAEhC,OADK2H,EAAM2+B,SAAQ3+B,EAAM2+B,OAAS,IAAIV,GAC/BM,EAAarqC,KAAKmE,KAAMgB,IAAQ2G,EAAM2+B,OAAe,UAAEtlC,IAGlEzE,IAAK,SAASA,IAAIyE,GAChB,IAAIvE,EAASuE,IAASukB,EAAavkB,GAIjC,OAAOmlC,EAAUtqC,KAAKmE,KAAMgB,GAH5B,IAAI2G,EAAQm+B,EAAoB9lC,MAEhC,OADK2H,EAAM2+B,SAAQ3+B,EAAM2+B,OAAS,IAAIV,GAC/BO,EAAUtqC,KAAKmE,KAAMgB,IAAQ2G,EAAM2+B,OAAO/pC,IAAIyE,IAGzDjB,IAAK,SAASA,IAAIiB,GAChB,IAAIvE,EAASuE,IAASukB,EAAavkB,GAIjC,OAAOolC,EAAUvqC,KAAKmE,KAAMgB,GAH5B,IAAI2G,EAAQm+B,EAAoB9lC,MAEhC,OADK2H,EAAM2+B,SAAQ3+B,EAAM2+B,OAAS,IAAIV,GAC/BO,EAAUtqC,KAAKmE,KAAMgB,GAAOolC,EAAUvqC,KAAKmE,KAAMgB,GAAO2G,EAAM2+B,OAAOvmC,IAAIiB,IAGpFvC,IAAK,SAASA,IAAIuC,EAAKf,GACrB,GAAIxD,EAASuE,KAASukB,EAAavkB,GAAM,CACvC,IAAI2G,EAAQm+B,EAAoB9lC,MAC3B2H,EAAM2+B,SAAQ3+B,EAAM2+B,OAAS,IAAIV,GACtCO,EAAUtqC,KAAKmE,KAAMgB,GAAOqlC,EAAUxqC,KAAKmE,KAAMgB,EAAKf,GAAS0H,EAAM2+B,OAAO7nC,IAAIuC,EAAKf,QAChFomC,EAAUxqC,KAAKmE,KAAMgB,EAAKf,GACjC,OAAOD,UAQP,SAAUvE,EAAQD,EAASH,GAIjC,IAAIme,EAAcne,EAAoB,KAClCwqB,EAAcxqB,EAAoB,KAAKwqB,YACvCnpB,EAAWrB,EAAoB,IAC/BoB,EAAWpB,EAAoB,IAC/Boe,EAAape,EAAoB,KACjCyoB,EAAUzoB,EAAoB,KAC9BkrC,EAAuBlrC,EAAoB,IAC3CmrC,EAAOnrC,EAAoB,IAC3B4C,EAAsB5C,EAAoB,IAE1CmD,EAAmBP,EAAoBQ,IACvCgoB,EAAyBxoB,EAAoBU,UAC7C8O,EAAO84B,EAAqB94B,KAC5BC,EAAY64B,EAAqB74B,UACjC1F,EAAK,EAGLy+B,EAAsB,SAAU1/B,GAClC,OAAOA,EAAMu/B,SAAWv/B,EAAMu/B,OAAS,IAAII,IAGzCA,EAAsB,WACxB1mC,KAAKwW,QAAU,IAGbmwB,EAAqB,SAAU5/B,EAAO/F,GACxC,OAAOyM,EAAK1G,EAAMyP,QAAS,SAAU3V,GACnC,OAAOA,EAAG,KAAOG,KAIrB0lC,EAAoB9hC,UAAY,CAC9B7E,IAAK,SAAUiB,GACb,IAAI8lB,EAAQ6f,EAAmB3mC,KAAMgB,GACrC,GAAI8lB,EAAO,OAAOA,EAAM,IAE1BvqB,IAAK,SAAUyE,GACb,QAAS2lC,EAAmB3mC,KAAMgB,IAEpCvC,IAAK,SAAUuC,EAAKf,GAClB,IAAI6mB,EAAQ6f,EAAmB3mC,KAAMgB,GACjC8lB,EAAOA,EAAM,GAAK7mB,EACjBD,KAAKwW,QAAQrU,KAAK,CAACnB,EAAKf,KAE/BgnB,SAAU,SAAUjmB,GAClB,IAAI+C,EAAQ2J,EAAU1N,KAAKwW,QAAS,SAAU3V,GAC5C,OAAOA,EAAG,KAAOG,IAGnB,OADK+C,GAAO/D,KAAKwW,QAAQuC,OAAOhV,EAAO,MAC7BA,IAIdtI,EAAOD,QAAU,CACfkpB,eAAgB,SAAUV,EAASlL,EAAkBnM,EAAQwX,GAC3D,IAAIpW,EAAIiW,EAAQ,SAAU9W,EAAM6F,GAC9B0G,EAAWvM,EAAMa,EAAG+K,GACpBta,EAAiB0O,EAAM,CACrBvM,KAAMmY,EACN9Q,GAAIA,IACJs+B,OAAQlrC,KAEN2X,GAAY3X,IAAW0oB,EAAQ/Q,EAAU7F,EAAKiX,GAAQjX,EAAMP,KAG9DjO,EAAmB+nB,EAAuB3N,GAE1C8N,EAAS,SAAU1Z,EAAMlM,EAAKf,GAChC,IAAI0H,EAAQjJ,EAAiBwO,GACzBpD,EAAO+b,EAAYnpB,EAASsE,IAAM,GAGtC,OAFa,IAAT8I,EAAe28B,EAAoB9+B,GAAOlJ,IAAIuC,EAAKf,GAClD6J,EAAKnC,EAAMK,IAAM/H,EACfiN,GA6CT,OA1CAsM,EAAYzL,EAAEnJ,UAAW,CAGvBqiB,SAAU,SAAUjmB,GAClB,IAAI2G,EAAQjJ,EAAiBsB,MAC7B,IAAKvD,EAASuE,GAAM,OAAO,EAC3B,IAAI8I,EAAO+b,EAAY7kB,GACvB,OAAa,IAAT8I,EAAsB28B,EAAoB9+B,GAAe,UAAE3G,GACxD8I,GAAQ08B,EAAK18B,EAAMnC,EAAMK,YAAc8B,EAAKnC,EAAMK,KAI3DzL,IAAK,SAASA,IAAIyE,GAChB,IAAI2G,EAAQjJ,EAAiBsB,MAC7B,IAAKvD,EAASuE,GAAM,OAAO,EAC3B,IAAI8I,EAAO+b,EAAY7kB,GACvB,OAAa,IAAT8I,EAAsB28B,EAAoB9+B,GAAOpL,IAAIyE,GAClD8I,GAAQ08B,EAAK18B,EAAMnC,EAAMK,OAIpCwR,EAAYzL,EAAEnJ,UAAW+H,EAAS,CAEhC5M,IAAK,SAASA,IAAIiB,GAChB,IAAI2G,EAAQjJ,EAAiBsB,MAC7B,GAAIvD,EAASuE,GAAM,CACjB,IAAI8I,EAAO+b,EAAY7kB,GACvB,OAAa,IAAT8I,EAAsB28B,EAAoB9+B,GAAO5H,IAAIiB,GAClD8I,EAAOA,EAAKnC,EAAMK,IAAM5M,KAInCqD,IAAK,SAASA,IAAIuC,EAAKf,GACrB,OAAO2mB,EAAO5mB,KAAMgB,EAAKf,KAEzB,CAEFwkB,IAAK,SAASA,IAAIxkB,GAChB,OAAO2mB,EAAO5mB,KAAMC,GAAO,MAIxB8N,KAOL,SAAUtS,EAAQD,EAASH,GAIhBA,EAAoB,IAKrCooB,CAAW,UAAW,SAAUE,GAC9B,OAAO,SAASijB,UAAY,OAAOjjB,EAAK3jB,KAAMuC,UAAUC,OAASD,UAAU,GAAKnH,MAL7DC,EAAoB,OAWnC,SAAUI,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBc,EAAcd,EAAoB,GAClC+Z,EAAiB/Z,EAAoB,KACrCga,EAAiBha,EAAoB,KACrCoI,EAASpI,EAAoB,IAC7B0F,EAAiB1F,EAAoB,IACrCyB,EAA2BzB,EAAoB,GAC/CyoB,EAAUzoB,EAAoB,KAC9BkC,EAA8BlC,EAAoB,IAClD4C,EAAsB5C,EAAoB,IAE1CmD,EAAmBP,EAAoBQ,IACvCooC,EAAiC5oC,EAAoBU,UAAU,kBAE/DmoC,EAAkB,SAASC,eAAeC,EAAQC,GACpD,IAAI/5B,EAAOlN,KACX,KAAMkN,aAAgB45B,GAAkB,OAAO,IAAIA,EAAgBE,EAAQC,GACvE5xB,IACFnI,EAAOmI,EAAe,IAAI+kB,MAAM6M,GAAU7xB,EAAelI,KAE3D,IAAIg6B,EAAc,GAKlB,OAJApjB,EAAQkjB,EAAQE,EAAY/kC,KAAM+kC,GAC9B/qC,EAAaqC,EAAiB0O,EAAM,CAAE85B,OAAQE,EAAavmC,KAAM,mBAChEuM,EAAK85B,OAASE,EACfD,IAAY7rC,IAAWmC,EAA4B2P,EAAM,UAAWzK,OAAOwkC,IACxE/5B,GAGT45B,EAAgBliC,UAAYnB,EAAO22B,MAAMx1B,UAAW,CAClDoJ,YAAalR,EAAyB,EAAGgqC,GACzCG,QAASnqC,EAAyB,EAAG,IACrC+F,KAAM/F,EAAyB,EAAG,oBAGhCX,GAAa4E,EAAe7B,EAAE4nC,EAAgBliC,UAAW,SAAU,CACrE7E,IAAK,WACH,OAAO8mC,EAA+B7mC,MAAMgnC,QAE9CrkC,cAAc,IAGhB5G,EAAE,CAAEC,QAAQ,GAAQ,CAClB+qC,eAAgBD,KAMZ,SAAUrrC,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBmB,EAAUnB,EAAoB,IAE9BmzB,EAAW3vB,OAAO2vB,SAElB2Y,EAAsB,SAAUn4B,EAAOo4B,GACzC,IAAK5Y,IAAahyB,EAAQwS,KAAWwf,EAASxf,GAAQ,OAAO,EAI7D,IAHA,IAEIyD,EAFA1O,EAAQ,EACRvB,EAASwM,EAAMxM,OAEZuB,EAAQvB,GAEb,KAAyB,iBADzBiQ,EAAUzD,EAAMjL,OACsBqjC,QAAqC,IAAZ30B,GAC7D,OAAO,EAET,OAAkB,IAAXjQ,GAKXzG,EAAE,CAAEkH,OAAQ,QAASC,MAAM,GAAQ,CACjCmkC,iBAAkB,SAASA,iBAAiBpnC,GAC1C,IAAKknC,EAAoBlnC,GAAO,GAAO,OAAO,EAC9C,IAAIm+B,EAAMn+B,EAAMm+B,IAChB,QAAIA,EAAI57B,SAAWvC,EAAMuC,SAAW2kC,EAAoB/I,GAAK,QAQ3D,SAAU3iC,EAAQD,EAASH,GAIjC,IAAIc,EAAcd,EAAoB,GAClC+U,EAAmB/U,EAAoB,IACvCsB,EAAWtB,EAAoB,IAC/BsN,EAAWtN,EAAoB,IAC/B0F,EAAiB1F,EAAoB,IAAI6D,GAIzC/C,GAAiB,aAAe,KAClC4E,EAAesJ,MAAMzF,UAAW,YAAa,CAC3CjC,cAAc,EACd5C,IAAK,SAASq5B,YACZ,IAAIj5B,EAAIxD,EAASqD,MACbsP,EAAM3G,EAASxI,EAAEqC,QACrB,OAAc,GAAP8M,EAAW,EAAIA,EAAM,KAIhCc,EAAiB,eAMb,SAAU3U,EAAQD,EAASH,GAIjC,IAAIc,EAAcd,EAAoB,GAClC+U,EAAmB/U,EAAoB,IACvCsB,EAAWtB,EAAoB,IAC/BsN,EAAWtN,EAAoB,IAC/B0F,EAAiB1F,EAAoB,IAAI6D,GAIzC/C,GAAiB,YAAc,KACjC4E,EAAesJ,MAAMzF,UAAW,WAAY,CAC1CjC,cAAc,EACd5C,IAAK,SAASunC,WACZ,IAAInnC,EAAIxD,EAASqD,MACbsP,EAAM3G,EAASxI,EAAEqC,QACrB,OAAc,GAAP8M,EAAWlU,GAAY+E,EAAEmP,EAAM,IAExC7Q,IAAK,SAAS6oC,SAASrnC,GACrB,IAAIE,EAAIxD,EAASqD,MACbsP,EAAM3G,EAASxI,EAAEqC,QACrB,OAAOrC,EAAS,GAAPmP,EAAW,EAAIA,EAAM,GAAKrP,KAIvCmQ,EAAiB,cAMb,SAAU3U,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBoe,EAAape,EAAoB,KACjCkC,EAA8BlC,EAAoB,IAClDkB,EAAMlB,EAAoB,IAC1BwC,EAAkBxC,EAAoB,IACtCksC,EAAyBlsC,EAAoB,KAC7Ca,EAAUb,EAAoB,IAE9BkR,EAAgB1O,EAAgB,eAEhC2pC,EAA2B,SAASC,gBACtChuB,EAAWzZ,KAAMwnC,IAKdjrC,EAFLirC,EAAyB5iC,UAAY2iC,EAEJh7B,IAC/BhP,EAA4BgqC,EAAwBh7B,EAAe,iBAGhEhQ,EAAIgrC,EAAwB,gBAAkBA,EAAuBv5B,cAAgBnP,QACxFtB,EAA4BgqC,EAAwB,cAAeC,GAGrEzrC,EAAE,CAAEC,QAAQ,EAAM+G,OAAQ7G,GAAW,CACnCurC,cAAeD,KAMX,SAAU/rC,EAAQD,EAASH,GAEjC,IAYIksC,EAAwB3iC,EAZxB5I,EAASX,EAAoB,GAC7BoC,EAASpC,EAAoB,IAC7B+Z,EAAiB/Z,EAAoB,KACrCkB,EAAMlB,EAAoB,IAC1BkC,EAA8BlC,EAAoB,IAClDwC,EAAkBxC,EAAoB,IACtCa,EAAUb,EAAoB,IAE9BqsC,EAA2B,2BAC3BC,EAAiB9pC,EAAgB,iBACjC4pC,EAAgBzrC,EAAOyrC,cACvBG,EAA+BnqC,EAAO8pC,uBAG1C,IAAKrrC,EACH,GAAI0rC,EACFL,EAAyBK,OACpB,GAA4B,mBAAjBH,EAChBF,EAAyBE,EAAc7iC,eAClC,GAAInH,EAAOiqC,IAA6B1rC,EAAO0rC,GACpD,IAEE9iC,EAAYwQ,EAAeA,EAAeA,EAAejQ,SAAS,+BAATA,MACrDiQ,EAAexQ,KAAe/F,OAAO+F,YAAW2iC,EAAyB3iC,GAC7E,MAAOS,IAMR9I,EAFwBgrC,EAAxBA,GAAiD,GAErBI,IAC/BpqC,EAA4BgqC,EAAwBI,EAAgB,WAClE,OAAO3nC,OAIXvE,EAAOD,QAAU+rC,GAKX,SAAU9rC,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBqB,EAAWrB,EAAoB,IAG/BwsC,EAF2BxsC,EAAoB,IAE1BysC,CAAyB,SAAUx9B,EAAKqoB,GAC/D,IAAIhrB,EAAQ3H,KAGZ,OAAO2yB,EAAQ/B,QAAQl0B,EAASiL,EAAM0L,KAAKxX,KAF5B8L,EAAMyC,SAEqCE,KAAOwmB,KAAK,SAAU1d,GAC9E,OAAI1W,EAAS0W,GAAMK,KAEV,CAAEA,KADT9L,EAAM8L,MAAO,EACQxT,MAAO7E,IAEvB,CAAEqY,MAAM,EAAOxT,MAAO,CAAC0H,EAAM5D,QAASqP,EAAKnT,YAItDlE,EAAE,CAAEkH,OAAQ,gBAAiBmM,OAAO,EAAMinB,MAAM,GAAQ,CACtD0R,eAAgB,SAASA,iBACvB,OAAO,IAAIF,EAAmB,CAC5Bz9B,SAAU1N,EAASsD,MACnB+D,MAAO,QAQP,SAAUtI,EAAQD,EAASH,GAIjC,IAAI+M,EAAO/M,EAAoB,IAC3BgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAC/BoI,EAASpI,EAAoB,IAC7BkC,EAA8BlC,EAAoB,IAClDme,EAAcne,EAAoB,KAClCwC,EAAkBxC,EAAoB,IACtC4C,EAAsB5C,EAAoB,IAG1Cs3B,EAFat3B,EAAoB,GAEvBY,CAAW,WAErBuC,EAAmBP,EAAoBQ,IACvCC,EAAmBT,EAAoB8B,IAEvCwM,EAAgB1O,EAAgB,eAEhCmqC,EAAU,SAAU/nC,GACtB,IAAImK,EAAW1L,EAAiBsB,MAAMoK,SAClC69B,EAAW79B,EAAiB,UAChC,OAAO69B,IAAa7sC,GAChBu3B,EAAQ/B,QAAQ,CAAEnd,MAAM,EAAMxT,MAAOA,IACrCvD,EAASurC,EAASpsC,KAAKuO,EAAUnK,KAGnCioC,EAAS,SAAUjoC,GACrB,IAAImK,EAAW1L,EAAiBsB,MAAMoK,SAClC+9B,EAAU/9B,EAAgB,SAC9B,OAAO+9B,IAAY/sC,GACfu3B,EAAQf,OAAO3xB,GACfkoC,EAAQtsC,KAAKuO,EAAUnK,IAG7BxE,EAAOD,QAAU,SAAU4sC,EAAajiB,GACtC,IAAI0hB,EAAqB,SAASJ,cAAc9/B,GAC9CA,EAAM0L,KAAOhL,EAAUV,EAAMyC,SAASiJ,MACtC1L,EAAM8L,MAAO,EACbjV,EAAiBwB,KAAM2H,IAqBzB,OAlBAkgC,EAAmBjjC,UAAY4U,EAAY/V,EAAO2E,EAAKq/B,cAAc7iC,WAAY,CAC/EyO,KAAM,SAASA,KAAK/I,GAClB,IAAI3C,EAAQjJ,EAAiBsB,MAC7B,GAAI2H,EAAM8L,KAAM,OAAOkf,EAAQ/B,QAAQ,CAAEnd,MAAM,EAAMxT,MAAO7E,KAC5D,IACE,OAAOu3B,EAAQ/B,QAAQl0B,EAAS0rC,EAAYvsC,KAAK8L,EAAO2C,EAAKqoB,KAC7D,MAAOttB,GACP,OAAOstB,EAAQf,OAAOvsB,KAG1BiP,SAAU0zB,EACVK,QAASH,IAGN/hB,GACH5oB,EAA4BsqC,EAAmBjjC,UAAW2H,EAAe,aAGpEs7B,IAMH,SAAUpsC,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBqB,EAAWrB,EAAoB,IAC/B8oC,EAAoB9oC,EAAoB,KAGxCwsC,EAF2BxsC,EAAoB,IAE1BysC,CAAyB,SAAUx9B,EAAKqoB,GAC/D,IAAIhrB,EAAQ3H,KAEZ,OAAO,IAAI2yB,EAAQ,SAAU/B,EAASgB,GACpC,IAAI0W,EAAO,WACT,IACE3V,EAAQ/B,QACNl0B,EAASiL,EAAM0L,KAAKxX,KAAK8L,EAAMyC,SAAUzC,EAAM0rB,UAAYj4B,GAAYkP,KACvEwmB,KAAK,SAAU1d,GACf,IACM1W,EAAS0W,GAAMK,KAEjBmd,EAAQ,CAAEnd,KADV9L,EAAM8L,MAAO,EACSxT,MAAO7E,KACpBuM,EAAM0rB,WACf1rB,EAAM0rB,YACNiV,KACK1X,EAAQ,CAAEnd,MAAM,EAAOxT,MAAOmT,EAAKnT,QAC1C,MAAOsoC,GAAO3W,EAAO2W,KACtB3W,GACH,MAAOvsB,GAASusB,EAAOvsB,KAG3BijC,QAIJvsC,EAAE,CAAEkH,OAAQ,gBAAiBmM,OAAO,EAAMinB,MAAM,GAAQ,CACtDmS,KAAM,SAASA,KAAKlI,GAClB,OAAO,IAAIuH,EAAmB,CAC5Bz9B,SAAU1N,EAASsD,MACnBqzB,UAAW8Q,EAAkB7D,SAQ7B,SAAU7kC,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBwV,EAASxV,EAAoB,KAAKmS,MAEtCzR,EAAE,CAAEkH,OAAQ,gBAAiBmM,OAAO,EAAMinB,MAAM,GAAQ,CACtD7oB,MAAO,SAASA,MAAMtH,GACpB,OAAO2K,EAAO7Q,KAAMkG,OAOlB,SAAUzK,EAAQD,EAASH,GAKjC,IAAIgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAG/Bs3B,EAFat3B,EAAoB,GAEvBY,CAAW,WACrBkG,EAAO,GAAGA,KAEV0G,EAAe,SAAUnB,GAC3B,IAAI+gC,EAAsB,GAAR/gC,EACdghC,EAAsB,GAARhhC,EACdoF,EAAmB,GAARpF,EACXmF,EAAkB,GAARnF,EACd,OAAO,SAAU0C,EAAUlE,GACzBxJ,EAAS0N,GACT,IAAIiJ,EAAOhL,EAAU+B,EAASiJ,MAC1BrE,EAAQy5B,EAAc,GAAKrtC,GAG/B,OAFKqtC,GAAapgC,EAAUnC,GAErB,IAAIysB,EAAQ,SAAU/B,EAASgB,GACpC,IAAI0W,EAAO,WACT,IACE3V,EAAQ/B,QAAQl0B,EAAS2W,EAAKxX,KAAKuO,KAAY0mB,KAAK,SAAU1d,GAC5D,IACE,GAAI1W,EAAS0W,GAAMK,KACjBmd,EAAQ6X,EAAcz5B,GAAQnC,IAAkBC,GAAY1R,SACvD,CACL,IAAI6E,EAAQmT,EAAKnT,MACbwoC,GACFtmC,EAAKtG,KAAKmT,EAAO/O,GACjBqoC,KAEA3V,EAAQ/B,QAAQ1qB,EAAGjG,IAAQ6wB,KAAK,SAAU5uB,GACpCwmC,EACFJ,IACSx7B,EACT5K,EAASomC,IAAS1X,GAAQ,GAE1B1uB,EAAS0uB,EAAQ/jB,GAAW5M,GAASqoC,KAEtC1W,IAGP,MAAO2W,GAAO3W,EAAO2W,KACtB3W,GACH,MAAOvsB,GAASusB,EAAOvsB,KAG3BijC,QAKN7sC,EAAOD,QAAU,CACfmtC,QAAS9/B,EAAa,GACtB1K,QAAS0K,EAAa,GACtB2E,MAAO3E,EAAa,GACpB0E,KAAM1E,EAAa,GACnB4E,KAAM5E,EAAa,KAMf,SAAUpN,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAG/BwsC,EAF2BxsC,EAAoB,IAE1BysC,CAAyB,SAAUx9B,EAAKqoB,GAC/D,IAAIhrB,EAAQ3H,KACR4oC,EAAWjhC,EAAMihC,SAErB,OAAO,IAAIjW,EAAQ,SAAU/B,EAASgB,GACpC,IAAI0W,EAAO,WACT,IACE3V,EAAQ/B,QAAQl0B,EAASiL,EAAM0L,KAAKxX,KAAK8L,EAAMyC,SAAUE,KAAOwmB,KAAK,SAAU1d,GAC7E,IACE,GAAI1W,EAAS0W,GAAMK,KAEjBmd,EAAQ,CAAEnd,KADV9L,EAAM8L,MAAO,EACSxT,MAAO7E,SACxB,CACL,IAAI6E,EAAQmT,EAAKnT,MACjB0yB,EAAQ/B,QAAQgY,EAAS3oC,IAAQ6wB,KAAK,SAAU+X,GAC9CA,EAAWjY,EAAQ,CAAEnd,MAAM,EAAOxT,MAAOA,IAAWqoC,KACnD1W,IAEL,MAAO2W,GAAO3W,EAAO2W,KACtB3W,GACH,MAAOvsB,GAASusB,EAAOvsB,KAG3BijC,QAIJvsC,EAAE,CAAEkH,OAAQ,gBAAiBmM,OAAO,EAAMinB,MAAM,GAAQ,CACtD/oB,OAAQ,SAASA,OAAOs7B,GACtB,OAAO,IAAIf,EAAmB,CAC5Bz9B,SAAU1N,EAASsD,MACnB4oC,SAAUvgC,EAAUugC,SAQpB,SAAUntC,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBuW,EAAQvW,EAAoB,KAAKoS,KAErC1R,EAAE,CAAEkH,OAAQ,gBAAiBmM,OAAO,EAAMinB,MAAM,GAAQ,CACtD5oB,KAAM,SAASA,KAAKvH,GAClB,OAAO0L,EAAM5R,KAAMkG,OAOjB,SAAUzK,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAC/BysC,EAA2BzsC,EAAoB,KAC/CytC,EAAyBztC,EAAoB,KAE7CwsC,EAAqBC,EAAyB,SAAUx9B,EAAKqoB,GAC/D,IAEIoW,EAAev1B,EAFf7L,EAAQ3H,KACRuS,EAAS5K,EAAM4K,OAGnB,OAAO,IAAIogB,EAAQ,SAAU/B,EAASgB,GACpC,IAAIoX,EAAY,WACd,IACErW,EAAQ/B,QAAQl0B,EAASiL,EAAM0L,KAAKxX,KAAK8L,EAAMyC,SAAUE,KAAOwmB,KAAK,SAAU1d,GAC7E,IACM1W,EAAS0W,GAAMK,KAEjBmd,EAAQ,CAAEnd,KADV9L,EAAM8L,MAAO,EACSxT,MAAO7E,KAE7Bu3B,EAAQ/B,QAAQre,EAAOa,EAAKnT,QAAQ6wB,KAAK,SAAUmY,GACjD,IAEE,IADAz1B,EAAiBs1B,EAAuBG,MACjB7tC,GAGrB,OAFAuM,EAAMohC,cAAgBA,EAAgBrsC,EAAS8W,EAAe3X,KAAKotC,IACnEthC,EAAMuhC,UAAY7gC,EAAU0gC,EAAc11B,MACnC81B,IACPvX,EAAOtvB,UAAU,uDACnB,MAAO8mC,GAAUxX,EAAOwX,KACzBxX,GAEL,MAAOyX,GAAUzX,EAAOyX,KACzBzX,GACH,MAAOvsB,GAASusB,EAAOvsB,KAGvB8jC,EAAY,WACd,GAAIJ,EAAgBphC,EAAMohC,cACxB,IACEpW,EAAQ/B,QAAQl0B,EAASiL,EAAMuhC,UAAUrtC,KAAKktC,KAAiBjY,KAAK,SAAU5uB,GAC5E,IACMxF,EAASwF,GAAQuR,MACnB9L,EAAMohC,cAAgBphC,EAAMuhC,UAAY,KACxCF,KACKpY,EAAQ,CAAEnd,MAAM,EAAOxT,MAAOiC,EAAOjC,QAC5C,MAAOopC,GAAUzX,EAAOyX,KACzBzX,GACH,MAAOvsB,GAASusB,EAAOvsB,QACpB2jC,KAGTG,QAIJptC,EAAE,CAAEkH,OAAQ,gBAAiBmM,OAAO,EAAMinB,MAAM,GAAQ,CACtDxjB,QAAS,SAASA,QAAQN,GACxB,OAAO,IAAIs1B,EAAmB,CAC5Bz9B,SAAU1N,EAASsD,MACnBuS,OAAQlK,EAAUkK,GAClBw2B,cAAe,KACfG,UAAW,WAQX,SAAUztC,EAAQD,EAASH,GAEjC,IAAI6X,EAAoB7X,EAAoB,KAGxCssC,EAFkBtsC,EAAoB,GAErBwC,CAAgB,iBAErCpC,EAAOD,QAAU,SAAUqF,GACzB,IAAI2H,EAAS3H,EAAG8mC,GAChB,OAAOn/B,IAAWpN,GAAY8X,EAAkBrS,GAAM2H,IAMlD,SAAU/M,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxB6C,EAAW7C,EAAoB,KAAK8C,QAExCpC,EAAE,CAAEkH,OAAQ,gBAAiBmM,OAAO,EAAMinB,MAAM,GAAQ,CACtDl4B,QAAS,SAASA,QAAQ+H,GACxB,OAAOhI,EAAS8B,KAAMkG,OAOpB,SAAUzK,EAAQD,EAASH,GAGjC,IAAIU,EAAIV,EAAoB,GACxB+M,EAAO/M,EAAoB,IAC3BgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAC/BsB,EAAWtB,EAAoB,IAC/BysC,EAA2BzsC,EAAoB,KAC/CytC,EAAyBztC,EAAoB,KAE7CosC,EAAgBr/B,EAAKq/B,cAErBI,EAAqBC,EAAyB,SAAUx9B,GAC1D,OAAO5N,EAASsD,KAAKqT,KAAKxX,KAAKmE,KAAKoK,SAAUE,MAC7C,GAEHvO,EAAE,CAAEkH,OAAQ,gBAAiBC,MAAM,GAAQ,CACzCqN,KAAM,SAASA,KAAKpQ,GAClB,IAEIiK,EAFA5D,EAAS7J,EAASwD,GAClBmpC,EAAgBR,EAAuBtiC,GAE3C,GAAqB,MAAjB8iC,GAEF,IADAl/B,EAAW/B,EAAUihC,GAAeztC,KAAK2K,cACjBihC,EAAe,OAAOr9B,OAE9CA,EAAW5D,EACX,OAAO,IAAIqhC,EAAmB,CAC9Bz9B,SAAUA,QAQV,SAAU3O,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAG/BwsC,EAF2BxsC,EAAoB,IAE1BysC,CAAyB,SAAUx9B,EAAKqoB,GAC/D,IAAIhrB,EAAQ3H,KACRuS,EAAS5K,EAAM4K,OAEnB,OAAOogB,EAAQ/B,QAAQl0B,EAASiL,EAAM0L,KAAKxX,KAAK8L,EAAMyC,SAAUE,KAAOwmB,KAAK,SAAU1d,GACpF,OAAI1W,EAAS0W,GAAMK,KAEV,CAAEA,KADT9L,EAAM8L,MAAO,EACQxT,MAAO7E,IAEvBu3B,EAAQ/B,QAAQre,EAAOa,EAAKnT,QAAQ6wB,KAAK,SAAU7wB,GACxD,MAAO,CAAEwT,MAAM,EAAOxT,MAAOA,SAKnClE,EAAE,CAAEkH,OAAQ,gBAAiBmM,OAAO,EAAMinB,MAAM,GAAQ,CACtDhpB,IAAK,SAASA,IAAIkF,GAChB,OAAO,IAAIs1B,EAAmB,CAC5Bz9B,SAAU1N,EAASsD,MACnBuS,OAAQlK,EAAUkK,SAQlB,SAAU9W,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAG/Bs3B,EAFat3B,EAAoB,GAEvBY,CAAW,WAEzBF,EAAE,CAAEkH,OAAQ,gBAAiBmM,OAAO,EAAMinB,MAAM,GAAQ,CACtD1e,OAAQ,SAASA,OAAO4xB,GACtB,IAAIn/B,EAAW1N,EAASsD,MACpBqT,EAAOhL,EAAU+B,EAASiJ,MAC1Bm2B,EAAYjnC,UAAUC,OAAS,EAC/BinC,EAAcD,EAAYpuC,GAAYmH,UAAU,GAGpD,OAFA8F,EAAUkhC,GAEH,IAAI5W,EAAQ,SAAU/B,EAASgB,GACpC,IAAI0W,EAAO,WACT,IACE3V,EAAQ/B,QAAQl0B,EAAS2W,EAAKxX,KAAKuO,KAAY0mB,KAAK,SAAU1d,GAC5D,IACE,GAAI1W,EAAS0W,GAAMK,KACjB+1B,EAAY5X,EAAOtvB,UAAU,mDAAqDsuB,EAAQ6Y,OACrF,CACL,IAAIxpC,EAAQmT,EAAKnT,MACbupC,GACFA,GAAY,EACZC,EAAcxpC,EACdqoC,KAEA3V,EAAQ/B,QAAQ2Y,EAAQE,EAAaxpC,IAAQ6wB,KAAK,SAAU5uB,GAC1DunC,EAAcvnC,EACdomC,KACC1W,IAGP,MAAO2W,GAAO3W,EAAO2W,KACtB3W,GACH,MAAOvsB,GAASusB,EAAOvsB,KAG3BijC,UAQA,SAAU7sC,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBkd,EAAQld,EAAoB,KAAKkS,KAErCxR,EAAE,CAAEkH,OAAQ,gBAAiBmM,OAAO,EAAMinB,MAAM,GAAQ,CACtD9oB,KAAM,SAASA,KAAKrH,GAClB,OAAOqS,EAAMvY,KAAMkG,OAOjB,SAAUzK,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBqB,EAAWrB,EAAoB,IAC/B8oC,EAAoB9oC,EAAoB,KAGxCwsC,EAF2BxsC,EAAoB,IAE1BysC,CAAyB,SAAUx9B,GAC1D,OAAKtK,KAAKqzB,YAGDrzB,KAAKqT,KAAKxX,KAAKmE,KAAKoK,SAAUE,GAD9B,CAAEmJ,KADTzT,KAAKyT,MAAO,EACSxT,MAAO7E,MAIhCW,EAAE,CAAEkH,OAAQ,gBAAiBmM,OAAO,EAAMinB,MAAM,GAAQ,CACtDqT,KAAM,SAASA,KAAKpJ,GAClB,OAAO,IAAIuH,EAAmB,CAC5Bz9B,SAAU1N,EAASsD,MACnBqzB,UAAW8Q,EAAkB7D,SAQ7B,SAAU7kC,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBsuC,EAAWtuC,EAAoB,KAAKstC,QAExC5sC,EAAE,CAAEkH,OAAQ,gBAAiBmM,OAAO,EAAMinB,MAAM,GAAQ,CACtDsS,QAAS,SAASA,UAChB,OAAOgB,EAAS3pC,UAOd,SAAUvE,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBuuC,EAAsBvuC,EAAoB,KAC1CY,EAAaZ,EAAoB,IACjCoI,EAASpI,EAAoB,IAE7BwuC,EAAc,WAChB,IAAI/b,EAAS7xB,EAAW,SAAU,UAClC,OAAO6xB,EAASA,EAAOrqB,EAAO,OAASA,EAAO,OAIhD1H,EAAE,CAAEC,QAAQ,GAAQ,CAClB8tC,aAAc,SAASA,eACrB,OAAOF,EAAoB5lC,MAAMnF,OAAQ0D,WAAWxC,IAAI,SAAU8pC,OAOhE,SAAUpuC,EAAQD,EAASH,GAGjC,IAAIuoB,EAAMvoB,EAAoB,KAC1B+L,EAAU/L,EAAoB,KAC9BoI,EAASpI,EAAoB,IAC7BoB,EAAWpB,EAAoB,IAE/B0uC,EAAO,WAET/pC,KAAKwG,OAAS,KACdxG,KAAKU,OAAS,KAEdV,KAAKgqC,WAAa,KAClBhqC,KAAKiqC,eAAiBxmC,EAAO,OAG/BsmC,EAAKnlC,UAAU7E,IAAM,SAAUiB,EAAK6oC,GAClC,OAAO7pC,KAAKgB,KAAShB,KAAKgB,GAAO6oC,MAGnCE,EAAKnlC,UAAUyO,KAAO,SAAU3X,EAAGmF,EAAIqpC,GACrC,IAAInjC,EAAQmjC,EACRlqC,KAAKiqC,eAAevuC,KAAOsE,KAAKiqC,eAAevuC,GAAK,IAAI0L,GACxDpH,KAAKgqC,aAAehqC,KAAKgqC,WAAa,IAAIpmB,GAC1CkD,EAAQ/f,EAAMhH,IAAIc,GAEtB,OADKimB,GAAO/f,EAAMtI,IAAIoC,EAAIimB,EAAQ,IAAIijB,GAC/BjjB,GAGT,IAAIqjB,EAAO,IAAIJ,EAEftuC,EAAOD,QAAU,WACf,IAEIE,EAAGmF,EAFHupC,EAASD,EACT3nC,EAASD,UAAUC,OAGvB,IAAK9G,EAAI,EAAGA,EAAI8G,EAAQ9G,IAClBe,EAASoE,EAAK0B,UAAU7G,MAAK0uC,EAASA,EAAO/2B,KAAK3X,EAAGmF,GAAI,IAE/D,GAAIb,OAASnB,QAAUurC,IAAWD,EAAM,MAAM7nC,UAAU,yDACxD,IAAK5G,EAAI,EAAGA,EAAI8G,EAAQ9G,IACjBe,EAASoE,EAAK0B,UAAU7G,MAAK0uC,EAASA,EAAO/2B,KAAK3X,EAAGmF,GAAI,IAC9D,OAAOupC,IAML,SAAU3uC,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBuuC,EAAsBvuC,EAAoB,KAC1CY,EAAaZ,EAAoB,IAGrCU,EAAE,CAAEC,QAAQ,GAAQ,CAClBquC,gBAAiB,SAASA,kBACxB,OAAyB,IAArB9nC,UAAUC,QAAwC,iBAAjBD,UAAU,GAAwBtG,EAAW,UAAe,OAAEsG,UAAU,IACtGqnC,EAAoB5lC,MAAM,KAAMzB,WAAWxC,IAAI,SAAU9D,EAAW,eAOzE,SAAUR,EAAQD,EAASH,GAGjCA,EAAoB,MAKd,SAAUI,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBW,EAASX,EAAoB,GAC7Boe,EAAape,EAAoB,KACjCkC,EAA8BlC,EAAoB,IAClDiB,EAAQjB,EAAoB,GAC5BkB,EAAMlB,EAAoB,IAC1BwC,EAAkBxC,EAAoB,IACtCka,EAAoBla,EAAoB,KAAKka,kBAC7CrZ,EAAUb,EAAoB,IAE9BwY,EAAWhW,EAAgB,YAC3B0O,EAAgB1O,EAAgB,eAEhCysC,EAAiBtuC,EAAOuuC,SAGxBx0B,EAAS7Z,GACiB,mBAAlBouC,GACPA,EAAe1lC,YAAc2Q,IAE5BjZ,EAAM,WAAcguC,EAAe,MAErC10B,EAAsB,SAAS20B,WACjC9wB,EAAWzZ,KAAM4V,IAGf1Z,GAEFqB,EADAgY,EAAoB,GAC2B1B,EAAU,WACvD,OAAO7T,OAINzD,EAAIgZ,EAAmBhJ,IAC1BhP,EAA4BgY,EAAmBhJ,EAAe,aAG5DwJ,GAAWxZ,EAAIgZ,EAAmB,gBAAkBA,EAAkBvH,cAAgBnP,QACxFtB,EAA4BgY,EAAmB,cAAeK,GAGhEA,EAAoBhR,UAAY2Q,EAEhCxZ,EAAE,CAAEC,QAAQ,EAAM+G,OAAQgT,GAAU,CAClCw0B,SAAU30B,KAMN,SAAUna,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBqB,EAAWrB,EAAoB,IAG/BmvC,EAFsBnvC,EAAoB,IAE1BovC,CAAoB,SAAUngC,GAChD,IAAIpI,EAASxF,EAASsD,KAAKqT,KAAKxX,KAAKmE,KAAKoK,SAAUE,IAEpD,KADWtK,KAAKyT,OAASvR,EAAOuR,MACrB,MAAO,CAACzT,KAAK+D,QAAS7B,EAAOjC,SAG1ClE,EAAE,CAAEkH,OAAQ,WAAYmM,OAAO,EAAMinB,MAAM,GAAQ,CACjD0R,eAAgB,SAASA,iBACvB,OAAO,IAAIyC,EAAc,CACvBpgC,SAAU1N,EAASsD,MACnB+D,MAAO,QAQP,SAAUtI,EAAQD,EAASH,GAIjC,IAAI+M,EAAO/M,EAAoB,IAC3BgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAC/BoI,EAASpI,EAAoB,IAC7BkC,EAA8BlC,EAAoB,IAClDme,EAAcne,EAAoB,KAClCwC,EAAkBxC,EAAoB,IACtC4C,EAAsB5C,EAAoB,IAE1CmD,EAAmBP,EAAoBQ,IACvCC,EAAmBT,EAAoB8B,IAEvCwM,EAAgB1O,EAAgB,eAEhCmqC,EAAU,SAAU/nC,GACtB,IAAImK,EAAW1L,EAAiBsB,MAAMoK,SAClC69B,EAAW79B,EAAiB,UAChC,OAAO69B,IAAa7sC,GAAY,CAAEqY,MAAM,EAAMxT,MAAOA,GAAUvD,EAASurC,EAASpsC,KAAKuO,EAAUnK,KAG9FioC,EAAS,SAAUjoC,GACrB,IAAImK,EAAW1L,EAAiBsB,MAAMoK,SAClC+9B,EAAU/9B,EAAgB,SAC9B,GAAI+9B,IAAY/sC,GAAW,MAAM6E,EACjC,OAAOkoC,EAAQtsC,KAAKuO,EAAUnK,IAGhCxE,EAAOD,QAAU,SAAU4sC,EAAajiB,GACtC,IAAIqkB,EAAgB,SAASD,SAAS5iC,GACpCA,EAAM0L,KAAOhL,EAAUV,EAAMyC,SAASiJ,MACtC1L,EAAM8L,MAAO,EACbjV,EAAiBwB,KAAM2H,IAiBzB,OAdA6iC,EAAc5lC,UAAY4U,EAAY/V,EAAO2E,EAAKmiC,SAAS3lC,WAAY,CACrEyO,KAAM,SAASA,OACb,IAAI1L,EAAQjJ,EAAiBsB,MACzBkC,EAASyF,EAAM8L,KAAOrY,GAAYgtC,EAAYpkC,MAAM2D,EAAOpF,WAC/D,MAAO,CAAEkR,KAAM9L,EAAM8L,KAAMxT,MAAOiC,IAEpCoS,SAAU0zB,EACVK,QAASH,IAGN/hB,GACH5oB,EAA4BitC,EAAc5lC,UAAW2H,EAAe,aAG/Di+B,IAMH,SAAU/uC,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBqB,EAAWrB,EAAoB,IAC/B8oC,EAAoB9oC,EAAoB,KAGxCmvC,EAFsBnvC,EAAoB,IAE1BovC,CAAoB,SAAUngC,GAIhD,IAHA,IAEIpI,EAFAkI,EAAWpK,KAAKoK,SAChBiJ,EAAOrT,KAAKqT,KAETrT,KAAKqzB,WAIV,GAHArzB,KAAKqzB,YACLnxB,EAASxF,EAAS2W,EAAKxX,KAAKuO,IACrBpK,KAAKyT,OAASvR,EAAOuR,KAClB,OAIZ,GAFAvR,EAASxF,EAAS2W,EAAKxX,KAAKuO,EAAUE,MAC/BtK,KAAKyT,OAASvR,EAAOuR,MACjB,OAAOvR,EAAOjC,QAG3BlE,EAAE,CAAEkH,OAAQ,WAAYmM,OAAO,EAAMinB,MAAM,GAAQ,CACjDmS,KAAM,SAASA,KAAKlI,GAClB,OAAO,IAAIkK,EAAc,CACvBpgC,SAAU1N,EAASsD,MACnBqzB,UAAW8Q,EAAkB7D,SAQ7B,SAAU7kC,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxByoB,EAAUzoB,EAAoB,KAC9BgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAEnCU,EAAE,CAAEkH,OAAQ,WAAYmM,OAAO,EAAMinB,MAAM,GAAQ,CACjD7oB,MAAO,SAASA,MAAMtH,GAGpB,OAFAxJ,EAASsD,MACTqI,EAAUnC,IACF4d,EAAQ9jB,KAAM,SAAUC,GAC9B,IAAKiG,EAAGjG,GAAQ,OAAO6jB,EAAQuC,QAC9BjrB,IAAW,GAAO,GAAM6qB,YAOzB,SAAUxqB,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAC/BovC,EAAsBpvC,EAAoB,KAC1C2X,EAA+B3X,EAAoB,IAEnDmvC,EAAgBC,EAAoB,SAAUngC,GAKhD,IAJA,IAGIpI,EAAcjC,EAHdmK,EAAWpK,KAAKoK,SAChBw+B,EAAW5oC,KAAK4oC,SAChBv1B,EAAOrT,KAAKqT,OAEH,CAGX,GAFAnR,EAASxF,EAAS2W,EAAKxX,KAAKuO,EAAUE,IAC/BtK,KAAKyT,OAASvR,EAAOuR,KAClB,OAEV,GAAIT,EAA6B5I,EAAUw+B,EAD3C3oC,EAAQiC,EAAOjC,OAC8C,OAAOA,KAIxElE,EAAE,CAAEkH,OAAQ,WAAYmM,OAAO,EAAMinB,MAAM,GAAQ,CACjD/oB,OAAQ,SAASA,OAAOs7B,GACtB,OAAO,IAAI4B,EAAc,CACvBpgC,SAAU1N,EAASsD,MACnB4oC,SAAUvgC,EAAUugC,SAQpB,SAAUntC,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxByoB,EAAUzoB,EAAoB,KAC9BgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAEnCU,EAAE,CAAEkH,OAAQ,WAAYmM,OAAO,EAAMinB,MAAM,GAAQ,CACjD5oB,KAAM,SAASA,KAAKvH,GAGlB,OAFAxJ,EAASsD,MACTqI,EAAUnC,GACH4d,EAAQ9jB,KAAM,SAAUC,GAC7B,GAAIiG,EAAGjG,GAAQ,OAAO6jB,EAAQuC,KAAKpmB,IAClC7E,IAAW,GAAO,GAAM8G,WAOzB,SAAUzG,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAC/B6X,EAAoB7X,EAAoB,KACxCovC,EAAsBpvC,EAAoB,KAC1C2X,EAA+B3X,EAAoB,IAEnDmvC,EAAgBC,EAAoB,SAAUngC,GAIhD,IAHA,IACIpI,EAAQ+mC,EAAQz1B,EAAgBu1B,EADhC3+B,EAAWpK,KAAKoK,WAGP,CACX,GAAI2+B,EAAgB/oC,KAAK+oC,cAAe,CAEtC,KADA7mC,EAASxF,EAASsD,KAAKkpC,UAAUrtC,KAAKktC,KAC1Bt1B,KAAM,OAAOvR,EAAOjC,MAChCD,KAAK+oC,cAAgB/oC,KAAKkpC,UAAY,KAKxC,GAFAhnC,EAASxF,EAASsD,KAAKqT,KAAKxX,KAAKuO,EAAUE,IAEvCtK,KAAKyT,OAASvR,EAAOuR,KAAM,OAK/B,GAHAw1B,EAASj2B,EAA6B5I,EAAUpK,KAAKuS,OAAQrQ,EAAOjC,QACpEuT,EAAiBN,EAAkB+1B,MAEZ7tC,GACrB,MAAMkH,UAAU,sDAGlBtC,KAAK+oC,cAAgBA,EAAgBrsC,EAAS8W,EAAe3X,KAAKotC,IAClEjpC,KAAKkpC,UAAY7gC,EAAU0gC,EAAc11B,SAI7CtX,EAAE,CAAEkH,OAAQ,WAAYmM,OAAO,EAAMinB,MAAM,GAAQ,CACjDxjB,QAAS,SAASA,QAAQN,GACxB,OAAO,IAAIi4B,EAAc,CACvBpgC,SAAU1N,EAASsD,MACnBuS,OAAQlK,EAAUkK,GAClBw2B,cAAe,KACfG,UAAW,WAQX,SAAUztC,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxByoB,EAAUzoB,EAAoB,KAC9BqB,EAAWrB,EAAoB,IAEnCU,EAAE,CAAEkH,OAAQ,WAAYmM,OAAO,EAAMinB,MAAM,GAAQ,CACjDl4B,QAAS,SAASA,QAAQ+H,GACxB4d,EAAQpnB,EAASsD,MAAOkG,EAAI9K,IAAW,GAAO,OAO5C,SAAUK,EAAQD,EAASH,GAGjC,IAAIU,EAAIV,EAAoB,GACxB+M,EAAO/M,EAAoB,IAC3BgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAC/BsB,EAAWtB,EAAoB,IAC/BovC,EAAsBpvC,EAAoB,KAC1C6X,EAAoB7X,EAAoB,KAExCkvC,EAAWniC,EAAKmiC,SAEhBC,EAAgBC,EAAoB,SAAUngC,GAChD,IAAIpI,EAASxF,EAASsD,KAAKqT,KAAKxX,KAAKmE,KAAKoK,SAAUE,IAEpD,KADWtK,KAAKyT,OAASvR,EAAOuR,MACrB,OAAOvR,EAAOjC,QACxB,GAEHlE,EAAE,CAAEkH,OAAQ,WAAYC,MAAM,GAAQ,CACpCqN,KAAM,SAASA,KAAKpQ,GAClB,IAEIiK,EAFA5D,EAAS7J,EAASwD,GAClBmpC,EAAgBp2B,EAAkB1M,GAEtC,GAAqB,MAAjB8iC,GAEF,IADAl/B,EAAW/B,EAAUihC,GAAeztC,KAAK2K,cACjB+jC,EAAU,OAAOngC,OAEzCA,EAAW5D,EACX,OAAO,IAAIgkC,EAAc,CACzBpgC,SAAUA,QAQV,SAAU3O,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAC/BovC,EAAsBpvC,EAAoB,KAC1C2X,EAA+B3X,EAAoB,IAEnDmvC,EAAgBC,EAAoB,SAAUngC,GAChD,IAAIF,EAAWpK,KAAKoK,SAChBlI,EAASxF,EAASsD,KAAKqT,KAAKxX,KAAKuO,EAAUE,IAE/C,KADWtK,KAAKyT,OAASvR,EAAOuR,MACrB,OAAOT,EAA6B5I,EAAUpK,KAAKuS,OAAQrQ,EAAOjC,SAG/ElE,EAAE,CAAEkH,OAAQ,WAAYmM,OAAO,EAAMinB,MAAM,GAAQ,CACjDhpB,IAAK,SAASA,IAAIkF,GAChB,OAAO,IAAIi4B,EAAc,CACvBpgC,SAAU1N,EAASsD,MACnBuS,OAAQlK,EAAUkK,SAQlB,SAAU9W,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxByoB,EAAUzoB,EAAoB,KAC9BgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAEnCU,EAAE,CAAEkH,OAAQ,WAAYmM,OAAO,EAAMinB,MAAM,GAAQ,CACjD1e,OAAQ,SAASA,OAAO4xB,GACtB7sC,EAASsD,MACTqI,EAAUkhC,GACV,IAAIC,EAAYjnC,UAAUC,OAAS,EAC/BinC,EAAcD,EAAYpuC,GAAYmH,UAAU,GASpD,GARAuhB,EAAQ9jB,KAAM,SAAUC,GAGpBwpC,EAFED,GACFA,GAAY,EACEvpC,GAEAspC,EAAQE,EAAaxpC,IAEpC7E,IAAW,GAAO,GACjBouC,EAAW,MAAMlnC,UAAU,kDAC/B,OAAOmnC,MAOL,SAAUhuC,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxByoB,EAAUzoB,EAAoB,KAC9BgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAEnCU,EAAE,CAAEkH,OAAQ,WAAYmM,OAAO,EAAMinB,MAAM,GAAQ,CACjD9oB,KAAM,SAASA,KAAKrH,GAGlB,OAFAxJ,EAASsD,MACTqI,EAAUnC,GACH4d,EAAQ9jB,KAAM,SAAUC,GAC7B,GAAIiG,EAAGjG,GAAQ,OAAO6jB,EAAQuC,QAC7BjrB,IAAW,GAAO,GAAM6qB,YAOzB,SAAUxqB,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBqB,EAAWrB,EAAoB,IAC/B8oC,EAAoB9oC,EAAoB,KAGxCmvC,EAFsBnvC,EAAoB,IAE1BovC,CAAoB,SAAUngC,GAChD,GAAKtK,KAAKqzB,YAAV,CAIA,IAAInxB,EAASxF,EAASsD,KAAKqT,KAAKxX,KAAKmE,KAAKoK,SAAUE,IAEpD,OADWtK,KAAKyT,OAASvR,EAAOuR,WAChC,EAAkBvR,EAAOjC,MALvBD,KAAKyT,MAAO,IAQhB1X,EAAE,CAAEkH,OAAQ,WAAYmM,OAAO,EAAMinB,MAAM,GAAQ,CACjDqT,KAAM,SAASA,KAAKpJ,GAClB,OAAO,IAAIkK,EAAc,CACvBpgC,SAAU1N,EAASsD,MACnBqzB,UAAW8Q,EAAkB7D,SAQ7B,SAAU7kC,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxByoB,EAAUzoB,EAAoB,KAC9BqB,EAAWrB,EAAoB,IAE/B8G,EAAO,GAAGA,KAEdpG,EAAE,CAAEkH,OAAQ,WAAYmM,OAAO,EAAMinB,MAAM,GAAQ,CACjDsS,QAAS,SAASA,UAChB,IAAIzmC,EAAS,GAEb,OADA4hB,EAAQpnB,EAASsD,MAAOmC,EAAMD,GAAQ,GAAO,GACtCA,MAOL,SAAUzG,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqvC,EAAsBrvC,EAAoB,KAI9CU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DyuC,UAAW,SAASA,YAClB,OAAOD,EAAoB1mC,MAAMhE,KAAMuC,eAOrC,SAAU9G,EAAQD,EAASH,GAIjC,IAAIqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAGpCI,EAAOD,QAAU,WAKf,IAJA,IAGIovC,EAHAnnB,EAAa/mB,EAASsD,MACtB6qC,EAAUxiC,EAAUob,EAAmB,WACvCqnB,GAAa,EAERz7B,EAAI,EAAGC,EAAM/M,UAAUC,OAAQ6M,EAAIC,EAAKD,IAC/Cu7B,EAAaC,EAAQhvC,KAAK4nB,EAAYlhB,UAAU8M,IAChDy7B,EAAaA,GAAcF,EAE7B,QAASE,IAML,SAAUrvC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/BoR,EAAOpR,EAAoB,IAC3B0vC,EAAiB1vC,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DsR,MAAO,SAASA,MAAMP,GACpB,IAAII,EAAM3Q,EAASsD,MACfoK,EAAW2gC,EAAe19B,GAC1BD,EAAgBX,EAAKQ,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GACtF,OAAQ0oB,EAAQ1Z,EAAU,SAAUpJ,EAAKf,GACvC,IAAKmN,EAAcnN,EAAOe,EAAKqM,GAAM,OAAOyW,EAAQuC,QACnDjrB,IAAW,GAAM,GAAM6qB,YAOxB,SAAUxqB,EAAQD,EAASH,GAEjC,IAAIa,EAAUb,EAAoB,IAC9B2vC,EAAc3vC,EAAoB,KAEtCI,EAAOD,QAAUU,EAAU8uC,EAAc,SAAUnqC,GAEjD,OAAO+iB,IAAIhf,UAAU4R,QAAQ3a,KAAKgF,KAM9B,SAAUpF,EAAQD,EAASH,GAEjC,IAAIqB,EAAWrB,EAAoB,IAC/B6X,EAAoB7X,EAAoB,KAE5CI,EAAOD,QAAU,SAAUqF,GACzB,IAAI2S,EAAiBN,EAAkBrS,GACvC,GAA6B,mBAAlB2S,EACT,MAAMlR,UAAUG,OAAO5B,GAAM,oBAC7B,OAAOnE,EAAS8W,EAAe3X,KAAKgF,MAMlC,SAAUpF,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BY,EAAaZ,EAAoB,IACjCqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCoR,EAAOpR,EAAoB,IAC3BukB,EAAqBvkB,EAAoB,KACzC0vC,EAAiB1vC,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DoR,OAAQ,SAASA,OAAOL,GACtB,IAAII,EAAM3Q,EAASsD,MACfoK,EAAW2gC,EAAe19B,GAC1BD,EAAgBX,EAAKQ,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GAClF6vC,EAAS,IAAKrrB,EAAmBvS,EAAKpR,EAAW,SACjDyG,EAAS2F,EAAU4iC,EAAOxsC,KAI9B,OAHAqlB,EAAQ1Z,EAAU,SAAUpJ,EAAKf,GAC3BmN,EAAcnN,EAAOe,EAAKqM,IAAM3K,EAAO7G,KAAKovC,EAAQjqC,EAAKf,IAC5D7E,IAAW,GAAM,GACb6vC,MAOL,SAAUxvC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/BoR,EAAOpR,EAAoB,IAC3B0vC,EAAiB1vC,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DuR,KAAM,SAASA,KAAKR,GAClB,IAAII,EAAM3Q,EAASsD,MACfoK,EAAW2gC,EAAe19B,GAC1BD,EAAgBX,EAAKQ,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GACtF,OAAO0oB,EAAQ1Z,EAAU,SAAUpJ,EAAKf,GACtC,GAAImN,EAAcnN,EAAOe,EAAKqM,GAAM,OAAOyW,EAAQuC,KAAKpmB,IACvD7E,IAAW,GAAM,GAAM8G,WAOxB,SAAUzG,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/BoR,EAAOpR,EAAoB,IAC3B0vC,EAAiB1vC,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DgvC,QAAS,SAASA,QAAQj+B,GACxB,IAAII,EAAM3Q,EAASsD,MACfoK,EAAW2gC,EAAe19B,GAC1BD,EAAgBX,EAAKQ,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GACtF,OAAO0oB,EAAQ1Z,EAAU,SAAUpJ,EAAKf,GACtC,GAAImN,EAAcnN,EAAOe,EAAKqM,GAAM,OAAOyW,EAAQuC,KAAKrlB,IACvD5F,IAAW,GAAM,GAAM8G,WAOxB,SAAUzG,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,MAAOC,MAAM,GAAQ,CAC/BqN,KALSlV,EAAoB,QAWzB,SAAUI,EAAQD,EAASH,GAKjC,IAAIgN,EAAYhN,EAAoB,IAChCoR,EAAOpR,EAAoB,IAC3ByoB,EAAUzoB,EAAoB,KAElCI,EAAOD,QAAU,SAAS+U,KAAKjM,GAC7B,IAEIiP,EAAS/D,EAAGC,EAAGrC,EAFf5K,EAASD,UAAUC,OACnBoQ,EAAiB,EAATpQ,EAAaD,UAAU,GAAKnH,GAKxC,OAHAiN,EAAUrI,OACVuT,EAAUX,IAAUxX,KACPiN,EAAUuK,GACnBtO,GAAUlJ,GAAkB,IAAI4E,MACpCwP,EAAI,GACA+D,GACF9D,EAAI,EACJrC,EAAgBX,EAAKmG,EAAgB,EAATpQ,EAAaD,UAAU,GAAKnH,GAAW,GACnE0oB,EAAQxf,EAAQ,SAAU6mC,GACxB37B,EAAErN,KAAKiL,EAAc+9B,EAAU17B,SAGjCqU,EAAQxf,EAAQkL,EAAErN,KAAMqN,GAEnB,IAAIxP,KAAKwP,MAMZ,SAAU/T,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxByoB,EAAUzoB,EAAoB,KAC9BgN,EAAYhN,EAAoB,IAIpCU,EAAE,CAAEkH,OAAQ,MAAOC,MAAM,GAAQ,CAC/BkoC,QAAS,SAASA,QAAQr4B,EAAUs4B,GAClC,IAAIJ,EAAS,IAAIjrC,KACjBqI,EAAUgjC,GACV,IAAI9uC,EAAM8L,EAAU4iC,EAAO1uC,KACvBwD,EAAMsI,EAAU4iC,EAAOlrC,KACvBtB,EAAM4J,EAAU4iC,EAAOxsC,KAM3B,OALAqlB,EAAQ/Q,EAAU,SAAUN,GAC1B,IAAI64B,EAAaD,EAAc54B,GAC1BlW,EAAIV,KAAKovC,EAAQK,GACjBvrC,EAAIlE,KAAKovC,EAAQK,GAAYnpC,KAAKsQ,GADJhU,EAAI5C,KAAKovC,EAAQK,EAAY,CAAC74B,MAG5Dw4B,MAOL,SAAUxvC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/B0vC,EAAiB1vC,EAAoB,KACrCkwC,EAAgBlwC,EAAoB,KACpCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DgN,SAAU,SAASA,SAAS2L,GAC1B,OAAOiP,EAAQinB,EAAeruC,EAASsD,OAAQ,SAAUgB,EAAKf,GAC5D,GAAIsrC,EAActrC,EAAO4U,GAAgB,OAAOiP,EAAQuC,QACvDjrB,IAAW,GAAM,GAAM6qB,YAOxB,SAAUxqB,EAAQD,GAIxBC,EAAOD,QAAU,SAAUmsB,EAAG+B,GAE5B,OAAO/B,IAAM+B,GAAK/B,GAAKA,GAAK+B,GAAKA,IAM7B,SAAUjuB,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxByoB,EAAUzoB,EAAoB,KAC9BgN,EAAYhN,EAAoB,IAIpCU,EAAE,CAAEkH,OAAQ,MAAOC,MAAM,GAAQ,CAC/BsoC,MAAO,SAASA,MAAMz4B,EAAUs4B,GAC9B,IAAIJ,EAAS,IAAIjrC,KACjBqI,EAAUgjC,GACV,IAAI3oC,EAAS2F,EAAU4iC,EAAOxsC,KAI9B,OAHAqlB,EAAQ/Q,EAAU,SAAUN,GAC1B/P,EAAO7G,KAAKovC,EAAQI,EAAc54B,GAAUA,KAEvCw4B,MAOL,SAAUxvC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/B0vC,EAAiB1vC,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DuvC,MAAO,SAASA,MAAM52B,GACpB,OAAOiP,EAAQinB,EAAeruC,EAASsD,OAAQ,SAAUgB,EAAKf,GAC5D,GAAIA,IAAU4U,EAAe,OAAOiP,EAAQuC,KAAKrlB,IAChD5F,IAAW,GAAM,GAAM8G,WAOxB,SAAUzG,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BY,EAAaZ,EAAoB,IACjCqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCoR,EAAOpR,EAAoB,IAC3BukB,EAAqBvkB,EAAoB,KACzC0vC,EAAiB1vC,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DwvC,QAAS,SAASA,QAAQz+B,GACxB,IAAII,EAAM3Q,EAASsD,MACfoK,EAAW2gC,EAAe19B,GAC1BD,EAAgBX,EAAKQ,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GAClF6vC,EAAS,IAAKrrB,EAAmBvS,EAAKpR,EAAW,SACjDyG,EAAS2F,EAAU4iC,EAAOxsC,KAI9B,OAHAqlB,EAAQ1Z,EAAU,SAAUpJ,EAAKf,GAC/ByC,EAAO7G,KAAKovC,EAAQ79B,EAAcnN,EAAOe,EAAKqM,GAAMpN,IACnD7E,IAAW,GAAM,GACb6vC,MAOL,SAAUxvC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BY,EAAaZ,EAAoB,IACjCqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCoR,EAAOpR,EAAoB,IAC3BukB,EAAqBvkB,EAAoB,KACzC0vC,EAAiB1vC,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DyvC,UAAW,SAASA,UAAU1+B,GAC5B,IAAII,EAAM3Q,EAASsD,MACfoK,EAAW2gC,EAAe19B,GAC1BD,EAAgBX,EAAKQ,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GAClF6vC,EAAS,IAAKrrB,EAAmBvS,EAAKpR,EAAW,SACjDyG,EAAS2F,EAAU4iC,EAAOxsC,KAI9B,OAHAqlB,EAAQ1Z,EAAU,SAAUpJ,EAAKf,GAC/ByC,EAAO7G,KAAKovC,EAAQjqC,EAAKoM,EAAcnN,EAAOe,EAAKqM,KAClDjS,IAAW,GAAM,GACb6vC,MAOL,SAAUxvC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAE7D0vC,MAAO,SAASA,MAAM74B,GAIpB,IAHA,IAAI1F,EAAM3Q,EAASsD,MACf0C,EAAS2F,EAAUgF,EAAI5O,KACvB/C,EAAI,EACDA,EAAI6G,UAAUC,QACnBshB,EAAQvhB,UAAU7G,KAAMgH,EAAQ2K,GAAK,GAEvC,OAAOA,MAOL,SAAU5R,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,MAAOC,MAAM,GAAQ,CAC/BsU,GALOnc,EAAoB,QAWvB,SAAUI,EAAQD,EAASH,GAKjCI,EAAOD,QAAU,SAASgc,KAGxB,IAFA,IAAIhV,EAASD,UAAUC,OACnBgN,EAAI,IAAInF,MAAM7H,GACXA,KAAUgN,EAAEhN,GAAUD,UAAUC,GACvC,OAAO,IAAIxC,KAAKwP,KAMZ,SAAU/T,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChC0vC,EAAiB1vC,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7Dyb,OAAQ,SAASA,OAAO1K,GACtB,IAAII,EAAM3Q,EAASsD,MACfoK,EAAW2gC,EAAe19B,GAC1Bm8B,EAAYjnC,UAAUC,OAAS,EAC/BinC,EAAcD,EAAYpuC,GAAYmH,UAAU,GAUpD,GATA8F,EAAU4E,GACV6W,EAAQ1Z,EAAU,SAAUpJ,EAAKf,GAG7BwpC,EAFED,GACFA,GAAY,EACEvpC,GAEAgN,EAAWw8B,EAAaxpC,EAAOe,EAAKqM,IAEnDjS,IAAW,GAAM,GAChBouC,EAAW,MAAMlnC,UAAU,6CAC/B,OAAOmnC,MAOL,SAAUhuC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/BoR,EAAOpR,EAAoB,IAC3B0vC,EAAiB1vC,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DqR,KAAM,SAASA,KAAKN,GAClB,IAAII,EAAM3Q,EAASsD,MACfoK,EAAW2gC,EAAe19B,GAC1BD,EAAgBX,EAAKQ,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GACtF,OAAO0oB,EAAQ1Z,EAAU,SAAUpJ,EAAKf,GACtC,GAAImN,EAAcnN,EAAOe,EAAKqM,GAAM,OAAOyW,EAAQuC,QAClDjrB,IAAW,GAAM,GAAM6qB,YAOxB,SAAUxqB,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAIpCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7D2vC,OAAQ,SAASA,OAAO7qC,EAAK8qC,GAC3B,IAAIz+B,EAAM3Q,EAASsD,MACfwC,EAASD,UAAUC,OACvB6F,EAAUyjC,GACV,IAAIC,EAAiB1+B,EAAI9Q,IAAIyE,GAC7B,IAAK+qC,GAAkBvpC,EAAS,EAC9B,MAAMF,UAAU,yBAElB,IAAIrC,EAAQ8rC,EAAiB1+B,EAAItN,IAAIiB,GAAOqH,EAAmB,EAAT7F,EAAaD,UAAU,GAAKnH,GAAtCiN,CAAiDrH,EAAKqM,GAElG,OADAA,EAAI5O,IAAIuC,EAAK8qC,EAAS7rC,EAAOe,EAAKqM,IAC3BA,MAOL,SAAU5R,EAAQD,EAASH,GAKzBA,EAAoB,EAM5BU,CAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAL9B1H,EAAoB,KAK6B,CAC7D2wC,eALY3wC,EAAoB,QAW5B,SAAUI,EAAQD,EAASH,GAIjC,IAAIqB,EAAWrB,EAAoB,IAInCI,EAAOD,QAAU,SAASywC,OAAOjrC,EAAKkrC,GACpC,IAEIjsC,EAFAoN,EAAM3Q,EAASsD,MACfmsC,EAA8B,EAAnB5pC,UAAUC,OAAaD,UAAU,GAAKnH,GAErD,GAAuB,mBAAZ8wC,GAA6C,mBAAZC,EAC1C,MAAM7pC,UAAU,kCAWhB,OATE+K,EAAI9Q,IAAIyE,IACVf,EAAQoN,EAAItN,IAAIiB,GACO,mBAAZkrC,IACTjsC,EAAQisC,EAASjsC,GACjBoN,EAAI5O,IAAIuC,EAAKf,KAEa,mBAAZksC,IAChBlsC,EAAQksC,IACR9+B,EAAI5O,IAAIuC,EAAKf,IACNA,IAML,SAAUxE,EAAQD,EAASH,GAIzBA,EAAoB,EAM5BU,CAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAL9B1H,EAAoB,KAK6B,CAC7D4wC,OALY5wC,EAAoB,QAW5B,SAAUI,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GAExB+N,EAAMrE,KAAKqE,IACXK,EAAM1E,KAAK0E,IAIf1N,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCkpC,MAAO,SAASA,MAAMzkB,EAAG0kB,EAAOC,GAC9B,OAAOljC,EAAIkjC,EAAO7iC,EAAI4iC,EAAO1kB,QAO3B,SAAUlsB,EAAQD,EAASH,GAEzBA,EAAoB,EAI5BU,CAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCqpC,YAAaxnC,KAAKynC,GAAK,OAMnB,SAAU/wC,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GAExBoxC,EAAc,IAAM1nC,KAAKynC,GAI7BzwC,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCwpC,QAAS,SAASA,QAAQC,GACxB,OAAOA,EAAUF,MAOf,SAAUhxC,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GAExBuxC,EAAQvxC,EAAoB,KAC5BotB,EAASptB,EAAoB,KAIjCU,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChC2pC,OAAQ,SAASA,OAAOllB,EAAGmlB,EAAOC,EAAQC,EAAQC,GAChD,OAAOxkB,EAAOmkB,EAAMjlB,EAAGmlB,EAAOC,EAAQC,EAAQC,QAO5C,SAAUxxC,EAAQD,GAIxBC,EAAOD,QAAUuJ,KAAK6nC,OAAS,SAASA,MAAMjlB,EAAGmlB,EAAOC,EAAQC,EAAQC,GACtE,OACuB,IAArB1qC,UAAUC,QAELmlB,GAAKA,GACLmlB,GAASA,GACTC,GAAUA,GACVC,GAAUA,GACVC,GAAWA,EAETzxB,IACLmM,IAAM5F,UAAY4F,KAAO5F,SAAiB4F,GACtCA,EAAImlB,IAAUG,EAAUD,IAAWD,EAASD,GAASE,IAMzD,SAAUvxC,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCgqC,MAAO,SAASA,MAAMC,EAAIC,EAAIC,EAAIC,GAChC,IAAIC,EAAMJ,IAAO,EAEbK,EAAMH,IAAO,EACjB,OAFUD,IAAO,IAEHE,IAAO,KAAOC,EAAMC,GAAOD,EAAMC,KAASD,EAAMC,IAAQ,MAAQ,IAAM,MAOlF,SAAU/xC,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCuqC,MAAO,SAASA,MAAMC,EAAGzf,GACvB,IACI0f,GAAMD,EACNE,GAAM3f,EACN4f,EAHS,MAGJF,EACLG,EAJS,MAIJF,EACLG,EAAKJ,GAAM,GACXK,EAAKJ,GAAM,GACXtlB,GAAKylB,EAAKD,IAAO,IAAMD,EAAKC,IAAO,IACvC,OAAOC,EAAKC,GAAM1lB,GAAK,MAAQulB,EAAKG,IAAO,IAR9B,MAQoC1lB,IAAe,QAO9D,SAAU7sB,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChC+qC,MAAO,SAASA,MAAMd,EAAIC,EAAIC,EAAIC,GAChC,IAAIC,EAAMJ,IAAO,EAEbK,EAAMH,IAAO,EACjB,OAFUD,IAAO,IAEHE,IAAO,MAAQC,EAAMC,IAAQD,EAAMC,GAAOD,EAAMC,IAAQ,KAAO,IAAM,MAOjF,SAAU/xC,EAAQD,EAASH,GAEzBA,EAAoB,EAI5BU,CAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCupC,YAAa,IAAM1nC,KAAKynC,MAMpB,SAAU/wC,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GAExBkxC,EAAcxnC,KAAKynC,GAAK,IAI5BzwC,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCypC,QAAS,SAASA,QAAQD,GACxB,OAAOA,EAAUH,MAOf,SAAU9wC,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChC0pC,MALUvxC,EAAoB,QAW1B,SAAUI,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBqB,EAAWrB,EAAoB,IAC/B6yC,EAAiB7yC,EAAoB,KACrC8Z,EAA4B9Z,EAAoB,KAChD4C,EAAsB5C,EAAoB,IAE1C8yC,EAAgB,gBAChBC,EAA0BD,EAAgB,aAC1C3vC,EAAmBP,EAAoBQ,IACvCC,EAAmBT,EAAoBU,UAAUyvC,GAGjDC,EAAyBl5B,EAA0B,SAASm5B,sBAAsBC,GACpF/vC,EAAiBwB,KAAM,CACrBW,KAAMytC,EACNG,KAAMA,EAAO,cAEdJ,EAAe,SAAS96B,OACzB,IAAI1L,EAAQjJ,EAAiBsB,MAE7B,MAAO,CAAEC,OAAe,YADb0H,EAAM4mC,MAAqB,WAAb5mC,EAAM4mC,KAAoB,OAAS,aACtB,WAAY96B,MAAM,KAM1D1X,EAAE,CAAEkH,OAAQ,OAAQC,MAAM,EAAMH,QAAQ,GAAQ,CAC9CyrC,WAAY,SAASA,WAAW3tC,GAC9B,IAAI0tC,EAAO7xC,EAASmE,GAAI0tC,KACxB,IAAKL,EAAeK,GAAO,MAAMjsC,UAnBf,8EAoBlB,OAAO,IAAI+rC,EAAuBE,OAOhC,SAAU9yC,EAAQD,EAASH,GAEzBA,EAAoB,EAI5BU,CAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCurC,QAAS,SAASA,QAAQ9mB,GACxB,OAAQA,GAAKA,IAAMA,GAAU,GAALA,EAAS,EAAIA,IAAM5F,SAAW4F,EAAI,MAOxD,SAAUlsB,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,OAAQC,MAAM,GAAQ,CAChCwrC,MAAO,SAASA,MAAMhB,EAAGzf,GACvB,IACI0f,GAAMD,EACNE,GAAM3f,EACN4f,EAHS,MAGJF,EACLG,EAJS,MAIJF,EACLG,EAAKJ,IAAO,GACZK,EAAKJ,IAAO,GACZtlB,GAAKylB,EAAKD,IAAO,IAAMD,EAAKC,IAAO,IACvC,OAAOC,EAAKC,GAAM1lB,IAAM,MAAQulB,EAAKG,IAAO,IAR/B,MAQqC1lB,KAAgB,QAOhE,SAAU7sB,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB8N,EAAY9N,EAAoB,IAChC4vB,EAAW5vB,EAAoB,KAE/BszC,EAAgC,gCAEhCC,EAAQ,aAIZ7yC,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClC2rC,WAAY,SAASA,WAAWzrC,EAAQynB,GACtC,IACIyP,EAAGwU,EADHnxB,EAAO,EAEX,GAAqB,iBAAVva,EAAoB,MAAMd,UAAUqsC,GAC/C,IAAKvrC,EAAOZ,OAAQ,MAAMusC,YAAYJ,GACtC,GAAwB,KAApBvrC,EAAOkgB,OAAO,KAChB3F,GAAQ,IACRva,EAASA,EAAO2C,MAAM,IACVvD,QAAQ,MAAMusC,YAAYJ,GAGxC,IADArU,EAAIzP,IAAUzvB,GAAY,GAAK+N,EAAU0hB,IACjC,GAAS,GAAJyP,EAAQ,MAAMngB,WAjBX,iBAkBhB,IAAKy0B,EAAMhnC,KAAKxE,KAAY0rC,EAAU7jB,EAAS7nB,EAAQk3B,IAAI13B,SAAS03B,KAAOl3B,EACzE,MAAM2rC,YAAYJ,GAEpB,OAAOhxB,EAAOmxB,MAOZ,SAAUrzC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB2zC,EAAiB3zC,EAAoB,KAIzCU,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClC+rC,eAAgB,SAASA,eAAezoC,GACtC,OAAO,IAAIwoC,EAAexoC,EAAQ,eAOhC,SAAU/K,EAAQD,EAASH,GAIjC,IAAI4C,EAAsB5C,EAAoB,IAC1C8Z,EAA4B9Z,EAAoB,KAChDkB,EAAMlB,EAAoB,IAC1B2B,EAAa3B,EAAoB,IACjCsB,EAAWtB,EAAoB,IAE/B6zC,EAAkB,kBAClB1wC,EAAmBP,EAAoBQ,IACvCC,EAAmBT,EAAoBU,UAAUuwC,GAErDzzC,EAAOD,QAAU2Z,EAA0B,SAAS65B,eAAe1qC,EAAQwD,GACzE,IAAItB,EAAS7J,EAAS2H,GACtB9F,EAAiBwB,KAAM,CACrBW,KAAMuuC,EACNpnC,KAAMA,EACNtB,OAAQA,EACRlF,KAAMtE,EAAWwJ,GACjBzC,MAAO,KAER,SAAU,SAASsP,OAGpB,IAFA,IAAI1L,EAAQjJ,EAAiBsB,MACzBsB,EAAOqG,EAAMrG,OACJ,CACX,GAAa,OAATA,GAAgCA,EAAKkB,QAApBmF,EAAM5D,MAEzB,OADA4D,EAAMnB,OAASmB,EAAMrG,KAAO,KACrB,CAAErB,MAAO7E,GAAWqY,MAAM,GAEnC,IAAIzS,EAAMM,EAAKqG,EAAM5D,SACjByC,EAASmB,EAAMnB,OACnB,GAAKjK,EAAIiK,EAAQxF,GAAjB,CACA,OAAQ2G,EAAMG,MACZ,IAAK,OAAQ,MAAO,CAAE7H,MAAOe,EAAKyS,MAAM,GACxC,IAAK,SAAU,MAAO,CAAExT,MAAOuG,EAAOxF,GAAMyS,MAAM,GACpC,MAAO,CAAExT,MAAO,CAACe,EAAKwF,EAAOxF,IAAOyS,MAAM,QAOxD,SAAUhY,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB2zC,EAAiB3zC,EAAoB,KAIzCU,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClCisC,YAAa,SAASA,YAAY3oC,GAChC,OAAO,IAAIwoC,EAAexoC,EAAQ,YAOhC,SAAU/K,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB2zC,EAAiB3zC,EAAoB,KAIzCU,EAAE,CAAEkH,OAAQ,SAAUC,MAAM,GAAQ,CAClCksC,cAAe,SAASA,cAAc5oC,GACpC,OAAO,IAAIwoC,EAAexoC,EAAQ,cAOhC,SAAU/K,EAAQD,EAASH,GAKjC,IAAIU,EAAIV,EAAoB,GACxBc,EAAcd,EAAoB,GAClCwd,EAAaxd,EAAoB,KACjCgN,EAAYhN,EAAoB,IAChCqB,EAAWrB,EAAoB,IAC/BoB,EAAWpB,EAAoB,IAC/Boe,EAAape,EAAoB,KACjC0F,EAAiB1F,EAAoB,IAAI6D,EACzC3B,EAA8BlC,EAAoB,IAClDme,EAAcne,EAAoB,KAClC2vC,EAAc3vC,EAAoB,KAClCyoB,EAAUzoB,EAAoB,KAC9Bu0B,EAAmBv0B,EAAoB,KACvCwC,EAAkBxC,EAAoB,IACtC4C,EAAsB5C,EAAoB,IAE1Cg0C,EAAaxxC,EAAgB,cAC7Ba,EAAmBT,EAAoB8B,IACvCvB,EAAmBP,EAAoBQ,IAEvC6wC,EAAY,SAAUppC,GACxB,OAAa,MAANA,EAAa9K,GAAYiN,EAAUnC,IAGxCqpC,EAAsB,SAAUC,GAClC,IAAIC,EAAUD,EAAkBC,QAChC,GAAIA,EAAS,CACXD,EAAkBC,QAAUr0C,GAC5B,IACEq0C,IACA,MAAOpqC,GACPuqB,EAAiBvqB,MAKnBqqC,EAAqB,SAAUF,GACjC,OAAOA,EAAkBG,WAAav0C,IAGpCmQ,EAAQ,SAAUqkC,EAAcJ,GAClC,IAAKrzC,EAAa,CAChByzC,EAAaC,QAAS,EACtB,IAAIC,EAAuBN,EAAkBM,qBACzCA,IAAsBA,EAAqBD,QAAS,GACxDL,EAAkBG,SAAWv0C,IAG7B20C,EAAe,SAAUJ,EAAUK,GACrC,IAKI3/B,EALAm/B,EAAoBhxC,EAAiBwB,KAAM,CAC7CyvC,QAASr0C,GACTu0C,SAAUjzC,EAASizC,GACnBG,qBAAsB10C,KAGnBe,IAAa6D,KAAK6vC,QAAS,GAChC,KACMx/B,EAAQi/B,EAAUK,EAASt/B,SAAQA,EAAMxU,KAAK8zC,EAAU3vC,MAC5D,MAAOqF,GACPuqB,EAAiBvqB,GAEnB,IAAIqqC,EAAmBF,GAAvB,CACA,IAAIM,EAAuBN,EAAkBM,qBAAuB,IAAIG,EAAqBjwC,MAC7F,IACE,IAAIyvC,EAAUO,EAAWF,GACrBF,EAAeH,EACJ,MAAXA,IAAiBD,EAAkBC,QAAyC,mBAAxBA,EAAQS,YAC5D,WAAcN,EAAaM,eAC3B7nC,EAAUonC,IACd,MAAOpqC,GAEP,YADAyqC,EAAqBzqC,MAAMA,GAEvBqqC,EAAmBF,IAAoBD,EAAoBC,KAGnEO,EAAanrC,UAAY4U,EAAY,GAAI,CACvC02B,YAAa,SAASA,cACpB,IAAIV,EAAoB9wC,EAAiBsB,MACpC0vC,EAAmBF,KACtBjkC,EAAMvL,KAAMwvC,GACZD,EAAoBC,OAKtBrzC,GAAa4E,EAAegvC,EAAanrC,UAAW,SAAU,CAChEjC,cAAc,EACd5C,IAAK,WACH,OAAO2vC,EAAmBhxC,EAAiBsB,UAI/C,IAAIiwC,EAAuB,SAAUL,GACnCpxC,EAAiBwB,KAAM,CAAE4vC,aAAcA,IAClCzzC,IAAa6D,KAAK6vC,QAAS,IAGlCI,EAAqBrrC,UAAY4U,EAAY,GAAI,CAC/CnG,KAAM,SAASA,KAAKpT,GAClB,IAAIuvC,EAAoB9wC,EAAiBA,EAAiBsB,MAAM4vC,cAChE,IAAKF,EAAmBF,GAAoB,CAC1C,IAAIG,EAAWH,EAAkBG,SACjC,IACE,IAAIQ,EAAab,EAAUK,EAASt8B,MAChC88B,GAAYA,EAAWt0C,KAAK8zC,EAAU1vC,GAC1C,MAAOoF,GACPuqB,EAAiBvqB,MAIvBA,MAAO,SAASA,MAAMpF,GACpB,IAAI2vC,EAAelxC,EAAiBsB,MAAM4vC,aACtCJ,EAAoB9wC,EAAiBkxC,GACzC,IAAKF,EAAmBF,GAAoB,CAC1C,IAAIG,EAAWH,EAAkBG,SACjCpkC,EAAMqkC,EAAcJ,GACpB,IACE,IAAIY,EAAcd,EAAUK,EAAStqC,OACjC+qC,EAAaA,EAAYv0C,KAAK8zC,EAAU1vC,GACvC2vB,EAAiB3vB,GACtB,MAAOsoC,GACP3Y,EAAiB2Y,GACjBgH,EAAoBC,KAG1Ba,SAAU,SAASA,WACjB,IAAIT,EAAelxC,EAAiBsB,MAAM4vC,aACtCJ,EAAoB9wC,EAAiBkxC,GACzC,IAAKF,EAAmBF,GAAoB,CAC1C,IAAIG,EAAWH,EAAkBG,SACjCpkC,EAAMqkC,EAAcJ,GACpB,IACE,IAAIc,EAAiBhB,EAAUK,EAASU,UACpCC,GAAgBA,EAAez0C,KAAK8zC,GACxC,MAAOtqC,OACPuqB,EAAiBvqB,OACjBkqC,EAAoBC,OAKxBrzC,GAAa4E,EAAekvC,EAAqBrrC,UAAW,SAAU,CACxEjC,cAAc,EACd5C,IAAK,WACH,OAAO2vC,EAAmBhxC,EAAiBA,EAAiBsB,MAAM4vC,kBAItE,IAAIW,EAAc,SAASC,WAAWR,GACpCv2B,EAAWzZ,KAAMuwC,EAAa,cAC9B/xC,EAAiBwB,KAAM,CAAEgwC,WAAY3nC,EAAU2nC,MAGjDx2B,EAAY+2B,EAAY3rC,UAAW,CACjC6rC,UAAW,SAASA,UAAUd,GAC5B,IAAIntC,EAASD,UAAUC,OACvB,OAAO,IAAIutC,EAAiC,mBAAbJ,EAA0B,CACvDt8B,KAAMs8B,EACNtqC,MAAgB,EAAT7C,EAAaD,UAAU,GAAKnH,GACnCi1C,SAAmB,EAAT7tC,EAAaD,UAAU,GAAKnH,IACpCqB,EAASkzC,GAAYA,EAAW,GAAIjxC,EAAiBsB,MAAMgwC,eAInEx2B,EAAY+2B,EAAa,CACvBhgC,KAAM,SAASA,KAAKoX,GAClB,IAAI5Z,EAAoB,mBAAT/N,KAAsBA,KAAOuwC,EACxCG,EAAmBpB,EAAU5yC,EAASirB,GAAG0nB,IAC7C,GAAIqB,EAAkB,CACpB,IAAIC,EAAaj0C,EAASg0C,EAAiB70C,KAAK8rB,IAChD,OAAOgpB,EAAW3iC,cAAgBD,EAAI4iC,EAAa,IAAI5iC,EAAE,SAAU4hC,GACjE,OAAOgB,EAAWF,UAAUd,KAGhC,IAAIvlC,EAAW4gC,EAAYrjB,GAC3B,OAAO,IAAI5Z,EAAE,SAAU4hC,GACrB7rB,EAAQ1Z,EAAU,SAAUvJ,GAE1B,GADA8uC,EAASt8B,KAAKxS,GACV8uC,EAASE,OAAQ,OAAO/rB,EAAQuC,QACnCjrB,IAAW,GAAO,GACrBu0C,EAASU,cAGb74B,GAAI,SAASA,KAKX,IAJA,IAAIzJ,EAAoB,mBAAT/N,KAAsBA,KAAOuwC,EACxC/tC,EAASD,UAAUC,OACnBouC,EAAQ,IAAIvmC,MAAM7H,GAClBuB,EAAQ,EACLA,EAAQvB,GAAQouC,EAAM7sC,GAASxB,UAAUwB,KAChD,OAAO,IAAIgK,EAAE,SAAU4hC,GACrB,IAAK,IAAIj0C,EAAI,EAAGA,EAAI8G,EAAQ9G,IAE1B,GADAi0C,EAASt8B,KAAKu9B,EAAMl1C,IAChBi0C,EAASE,OAAQ,OACrBF,EAASU,gBAKjB9yC,EAA4BgzC,EAAY3rC,UAAWyqC,EAAY,WAAc,OAAOrvC,OAEpFjE,EAAE,CAAEC,QAAQ,GAAQ,CAClBw0C,WAAYD,IAGd13B,EAAW,eAKL,SAAUpd,EAAQD,EAASH,GAGjCA,EAAoB,MAKd,SAAUI,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBgN,EAAYhN,EAAoB,IAChCY,EAAaZ,EAAoB,IACjCw0B,EAA6Bx0B,EAAoB,KACjDy0B,EAAUz0B,EAAoB,KAC9ByoB,EAAUzoB,EAAoB,KAE9Bw1C,EAAoB,0BAIxB90C,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnC4tC,IAAK,SAASA,IAAI/9B,GAChB,IAAIhF,EAAI/N,KACJkzB,EAAarD,EAA2B3wB,EAAE6O,GAC1C6iB,EAAUsC,EAAWtC,QACrBgB,EAASsB,EAAWtB,OACpB1vB,EAAS4tB,EAAQ,WACnB,IAAIH,EAAiBtnB,EAAU0F,EAAE6iB,SAC7BoW,EAAS,GACT5T,EAAU,EACVC,EAAY,EACZ0d,GAAkB,EACtBjtB,EAAQ/Q,EAAU,SAAU4d,GAC1B,IAAI5sB,EAAQqvB,IACR4d,GAAkB,EACtBhK,EAAO7kC,KAAK/G,IACZi4B,IACA1D,EAAe9zB,KAAKkS,EAAG4iB,GAASG,KAAK,SAAU7wB,GACzC+wC,GAAmBD,IACvBA,GAAkB,EAClBngB,EAAQ3wB,KACP,SAAUqsB,GACP0kB,GAAmBD,IACvBC,GAAkB,EAClBhK,EAAOjjC,GAASuoB,IACd+G,GAAazB,EAAO,IAAK31B,EAAW,kBAAhB,CAAmC+qC,EAAQ6J,WAGnExd,GAAazB,EAAO,IAAK31B,EAAW,kBAAhB,CAAmC+qC,EAAQ6J,MAGnE,OADI3uC,EAAOmD,OAAOusB,EAAO1vB,EAAOjC,OACzBizB,EAAWvC,YAOhB,SAAUl1B,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBw0B,EAA6Bx0B,EAAoB,KACjDy0B,EAAUz0B,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnC+tC,MAAO,SAAUhkC,GACf,IAAI6oB,EAAoBjG,EAA2B3wB,EAAEc,MACjDkC,EAAS4tB,EAAQ7iB,GAErB,OADC/K,EAAOmD,MAAQywB,EAAkBlE,OAASkE,EAAkBlF,SAAS1uB,EAAOjC,OACtE61B,EAAkBnF,YAOvB,SAAUl1B,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB61C,EAAwB71C,EAAoB,KAC5CqB,EAAWrB,EAAoB,IAE/B81C,EAAgBD,EAAsBE,MACtCC,EAA4BH,EAAsBzyC,IAItD1C,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnCouC,eAAgB,SAASA,eAAeC,EAAaC,EAAevuC,GAClE,IAAIwuC,EAAYlvC,UAAUC,OAAS,EAAIpH,GAAY+1C,EAAc5uC,UAAU,IAC3E8uC,EAA0BE,EAAaC,EAAe90C,EAASuG,GAASwuC,OAOtE,SAAUh2C,EAAQD,EAASH,GAGjC,IAAIuoB,EAAMvoB,EAAoB,KAC1B+L,EAAU/L,EAAoB,KAG9BmM,EAFSnM,EAAoB,GAElBoC,CAAO,YAClBsJ,EAAQS,EAAST,QAAUS,EAAST,MAAQ,IAAIK,GAEhDsqC,EAAyB,SAAUzuC,EAAQwuC,EAAWhuC,GACxD,IAAIkuC,EAAiB5qC,EAAMhH,IAAIkD,GAC/B,IAAK0uC,EAAgB,CACnB,IAAKluC,EAAQ,OACbsD,EAAMtI,IAAIwE,EAAQ0uC,EAAiB,IAAI/tB,GAEzC,IAAIguB,EAAcD,EAAe5xC,IAAI0xC,GACrC,IAAKG,EAAa,CAChB,IAAKnuC,EAAQ,OACbkuC,EAAelzC,IAAIgzC,EAAWG,EAAc,IAAIhuB,GAChD,OAAOguB,GA4BXn2C,EAAOD,QAAU,CACfuL,MAAOA,EACP8qC,OAAQH,EACRn1C,IA5B2B,SAAUu1C,EAAa3xC,EAAGC,GACrD,IAAI2xC,EAAcL,EAAuBvxC,EAAGC,GAAG,GAC/C,OAAO2xC,IAAgB32C,IAAoB22C,EAAYx1C,IAAIu1C,IA2B3D/xC,IAxB2B,SAAU+xC,EAAa3xC,EAAGC,GACrD,IAAI2xC,EAAcL,EAAuBvxC,EAAGC,GAAG,GAC/C,OAAO2xC,IAAgB32C,GAAYA,GAAY22C,EAAYhyC,IAAI+xC,IAuB/DrzC,IApB8B,SAAUqzC,EAAaE,EAAe7xC,EAAGC,GACvEsxC,EAAuBvxC,EAAGC,GAAG,GAAM3B,IAAIqzC,EAAaE,IAoBpD1wC,KAjB4B,SAAU2B,EAAQwuC,GAC9C,IAAIM,EAAcL,EAAuBzuC,EAAQwuC,GAAW,GACxDnwC,EAAO,GAEX,OADIywC,GAAaA,EAAY5zC,QAAQ,SAAU8zC,EAAGjxC,GAAOM,EAAKa,KAAKnB,KAC5DM,GAcP8vC,MAXkB,SAAUvwC,GAC5B,OAAOA,IAAOzF,IAA0B,iBAANyF,EAAiBA,EAAK4B,OAAO5B,MAgB3D,SAAUpF,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB61C,EAAwB71C,EAAoB,KAC5CqB,EAAWrB,EAAoB,IAE/B81C,EAAgBD,EAAsBE,MACtCM,EAAyBR,EAAsBW,OAC/C9qC,EAAQmqC,EAAsBnqC,MAIlChL,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnCgvC,eAAgB,SAASA,eAAeX,EAAatuC,GACnD,IAAIwuC,EAAYlvC,UAAUC,OAAS,EAAIpH,GAAY+1C,EAAc5uC,UAAU,IACvEwvC,EAAcL,EAAuBh1C,EAASuG,GAASwuC,GAAW,GACtE,GAAIM,IAAgB32C,KAAc22C,EAAoB,UAAER,GAAc,OAAO;CAC7E,GAAIQ,EAAYprB,KAAM,OAAO,EAC7B,IAAIgrB,EAAiB5qC,EAAMhH,IAAIkD,GAE/B,OADA0uC,EAAuB,UAAEF,KAChBE,EAAehrB,MAAQ5f,EAAc,UAAE9D,OAO9C,SAAUxH,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB61C,EAAwB71C,EAAoB,KAC5CqB,EAAWrB,EAAoB,IAC/B+Z,EAAiB/Z,EAAoB,KAErC82C,EAAyBjB,EAAsB30C,IAC/C61C,EAAyBlB,EAAsBnxC,IAC/CoxC,EAAgBD,EAAsBE,MAEtCiB,EAAsB,SAAUP,EAAa3xC,EAAGC,GAElD,GADa+xC,EAAuBL,EAAa3xC,EAAGC,GACxC,OAAOgyC,EAAuBN,EAAa3xC,EAAGC,GAC1D,IAAImyB,EAASnd,EAAejV,GAC5B,OAAkB,OAAXoyB,EAAkB8f,EAAoBP,EAAavf,EAAQnyB,GAAKhF,IAKzEW,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnCovC,YAAa,SAASA,YAAYf,EAAatuC,GAC7C,IAAIwuC,EAAYlvC,UAAUC,OAAS,EAAIpH,GAAY+1C,EAAc5uC,UAAU,IAC3E,OAAO8vC,EAAoBd,EAAa70C,EAASuG,GAASwuC,OAOxD,SAAUh2C,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GAExBo/B,EAAMp/B,EAAoB,KAC1B61C,EAAwB71C,EAAoB,KAC5CqB,EAAWrB,EAAoB,IAC/B+Z,EAAiB/Z,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAE9Bk3C,EAA0BrB,EAAsB5vC,KAChD6vC,EAAgBD,EAAsBE,MAQtCoB,EAAuB,SAAUryC,EAAGC,GACtC,IAAIqyC,EAAQF,EAAwBpyC,EAAGC,GACnCmyB,EAASnd,EAAejV,GAC5B,GAAe,OAAXoyB,EAAiB,OAAOkgB,EAC5B,IAVmBC,EACfxwC,EASAywC,EAAQH,EAAqBjgB,EAAQnyB,GACzC,OAAOuyC,EAAMnwC,OAASiwC,EAAMjwC,QAXTkwC,EAWuB,IAAIjY,EAAIgY,EAAMlxC,OAAOoxC,IAT/D7uB,EAAQ4uB,GADJxwC,EAAS,IACQC,KAAMD,GACpBA,GAQmEywC,EAAQF,GAKpF12C,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnC0vC,gBAAiB,SAASA,gBAAgB3vC,GACxC,IAAIwuC,EAAYlvC,UAAUC,OAAS,EAAIpH,GAAY+1C,EAAc5uC,UAAU,IAC3E,OAAOiwC,EAAqB91C,EAASuG,GAASwuC,OAO5C,SAAUh2C,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB61C,EAAwB71C,EAAoB,KAC5CqB,EAAWrB,EAAoB,IAE/B+2C,EAAyBlB,EAAsBnxC,IAC/CoxC,EAAgBD,EAAsBE,MAI1Cr1C,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnC2vC,eAAgB,SAASA,eAAetB,EAAatuC,GACnD,IAAIwuC,EAAYlvC,UAAUC,OAAS,EAAIpH,GAAY+1C,EAAc5uC,UAAU,IAC3E,OAAO6vC,EAAuBb,EAAa70C,EAASuG,GAASwuC,OAO3D,SAAUh2C,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB61C,EAAwB71C,EAAoB,KAC5CqB,EAAWrB,EAAoB,IAE/Bk3C,EAA0BrB,EAAsB5vC,KAChD6vC,EAAgBD,EAAsBE,MAI1Cr1C,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnC4vC,mBAAoB,SAASA,mBAAmB7vC,GAC9C,IAAIwuC,EAAYlvC,UAAUC,OAAS,EAAIpH,GAAY+1C,EAAc5uC,UAAU,IAC3E,OAAOgwC,EAAwB71C,EAASuG,GAASwuC,OAO/C,SAAUh2C,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB61C,EAAwB71C,EAAoB,KAC5CqB,EAAWrB,EAAoB,IAC/B+Z,EAAiB/Z,EAAoB,KAErC82C,EAAyBjB,EAAsB30C,IAC/C40C,EAAgBD,EAAsBE,MAEtC2B,EAAsB,SAAUjB,EAAa3xC,EAAGC,GAElD,GADa+xC,EAAuBL,EAAa3xC,EAAGC,GACxC,OAAO,EACnB,IAAImyB,EAASnd,EAAejV,GAC5B,OAAkB,OAAXoyB,GAAkBwgB,EAAoBjB,EAAavf,EAAQnyB,IAKpErE,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnC8vC,YAAa,SAASA,YAAYzB,EAAatuC,GAC7C,IAAIwuC,EAAYlvC,UAAUC,OAAS,EAAIpH,GAAY+1C,EAAc5uC,UAAU,IAC3E,OAAOwwC,EAAoBxB,EAAa70C,EAASuG,GAASwuC,OAOxD,SAAUh2C,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB61C,EAAwB71C,EAAoB,KAC5CqB,EAAWrB,EAAoB,IAE/B82C,EAAyBjB,EAAsB30C,IAC/C40C,EAAgBD,EAAsBE,MAI1Cr1C,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnC+vC,eAAgB,SAASA,eAAe1B,EAAatuC,GACnD,IAAIwuC,EAAYlvC,UAAUC,OAAS,EAAIpH,GAAY+1C,EAAc5uC,UAAU,IAC3E,OAAO4vC,EAAuBZ,EAAa70C,EAASuG,GAASwuC,OAO3D,SAAUh2C,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxB61C,EAAwB71C,EAAoB,KAC5CqB,EAAWrB,EAAoB,IAE/B81C,EAAgBD,EAAsBE,MACtCC,EAA4BH,EAAsBzyC,IAItD1C,EAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnCsE,SAAU,SAASA,SAAS+pC,EAAaC,GACvC,OAAO,SAAS0B,UAAUjwC,EAAQjC,GAChCqwC,EAA0BE,EAAaC,EAAe90C,EAASuG,GAASkuC,EAAcnwC,SAQtF,SAAUvF,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9B83C,EAAmB93C,EAAoB,KAI3CU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7Dk3C,OAAQ,SAASA,SACf,OAAOD,EAAiBnvC,MAAMhE,KAAMuC,eAOlC,SAAU9G,EAAQD,EAASH,GAIjC,IAAIqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAGpCI,EAAOD,QAAU,WAGf,IAFA,IAAIiD,EAAM/B,EAASsD,MACfqzC,EAAQhrC,EAAU5J,EAAIgmB,KACjBpV,EAAI,EAAGC,EAAM/M,UAAUC,OAAQ6M,EAAIC,EAAKD,IAC/CgkC,EAAMx3C,KAAK4C,EAAK8D,UAAU8M,IAE5B,OAAO5Q,IAMH,SAAUhD,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqvC,EAAsBrvC,EAAoB,KAI9CU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DyuC,UAAW,SAASA,YAClB,OAAOD,EAAoB1mC,MAAMhE,KAAMuC,eAOrC,SAAU9G,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BY,EAAaZ,EAAoB,IACjCqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCukB,EAAqBvkB,EAAoB,KACzCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7Do3C,WAAY,SAASA,WAAWvgC,GAC9B,IAAItU,EAAM/B,EAASsD,MACfuzC,EAAS,IAAK3zB,EAAmBnhB,EAAKxC,EAAW,QAAxC,CAAiDwC,GAC1DosC,EAAUxiC,EAAUkrC,EAAe,WAIvC,OAHAzvB,EAAQ/Q,EAAU,SAAU9S,GAC1B4qC,EAAQhvC,KAAK03C,EAAQtzC,KAEhBszC,MAOL,SAAU93C,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/BoR,EAAOpR,EAAoB,IAC3Bm4C,EAAiBn4C,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DsR,MAAO,SAASA,MAAMP,GACpB,IAAIxO,EAAM/B,EAASsD,MACfoK,EAAWopC,EAAe/0C,GAC1B2O,EAAgBX,EAAKQ,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GACtF,OAAQ0oB,EAAQ1Z,EAAU,SAAUnK,GAClC,IAAKmN,EAAcnN,EAAOA,EAAOxB,GAAM,OAAOqlB,EAAQuC,QACrDjrB,IAAW,GAAO,GAAM6qB,YAOzB,SAAUxqB,EAAQD,EAASH,GAEjC,IAAIa,EAAUb,EAAoB,IAC9B2vC,EAAc3vC,EAAoB,KAEtCI,EAAOD,QAAUU,EAAU8uC,EAAc,SAAUnqC,GAEjD,OAAO45B,IAAI71B,UAAU2R,OAAO1a,KAAKgF,KAM7B,SAAUpF,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BY,EAAaZ,EAAoB,IACjCqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCoR,EAAOpR,EAAoB,IAC3BukB,EAAqBvkB,EAAoB,KACzCm4C,EAAiBn4C,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DoR,OAAQ,SAASA,OAAOL,GACtB,IAAIxO,EAAM/B,EAASsD,MACfoK,EAAWopC,EAAe/0C,GAC1B2O,EAAgBX,EAAKQ,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GAClFm4C,EAAS,IAAK3zB,EAAmBnhB,EAAKxC,EAAW,SACjDo3C,EAAQhrC,EAAUkrC,EAAO9uB,KAI7B,OAHAX,EAAQ1Z,EAAU,SAAUnK,GACtBmN,EAAcnN,EAAOA,EAAOxB,IAAM40C,EAAMx3C,KAAK03C,EAAQtzC,IACxD7E,IAAW,GAAO,GACdm4C,MAOL,SAAU93C,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/BoR,EAAOpR,EAAoB,IAC3Bm4C,EAAiBn4C,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DuR,KAAM,SAASA,KAAKR,GAClB,IAAIxO,EAAM/B,EAASsD,MACfoK,EAAWopC,EAAe/0C,GAC1B2O,EAAgBX,EAAKQ,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GACtF,OAAO0oB,EAAQ1Z,EAAU,SAAUnK,GACjC,GAAImN,EAAcnN,EAAOA,EAAOxB,GAAM,OAAOqlB,EAAQuC,KAAKpmB,IACzD7E,IAAW,GAAO,GAAM8G,WAOzB,SAAUzG,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,MAAOC,MAAM,GAAQ,CAC/BqN,KALSlV,EAAoB,QAWzB,SAAUI,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BY,EAAaZ,EAAoB,IACjCqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCukB,EAAqBvkB,EAAoB,KACzCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7Du3C,aAAc,SAASA,aAAa1gC,GAClC,IAAItU,EAAM/B,EAASsD,MACfuzC,EAAS,IAAK3zB,EAAmBnhB,EAAKxC,EAAW,SACjDy3C,EAAWrrC,EAAU5J,EAAIlC,KACzB82C,EAAQhrC,EAAUkrC,EAAO9uB,KAI7B,OAHAX,EAAQ/Q,EAAU,SAAU9S,GACtByzC,EAAS73C,KAAK4C,EAAKwB,IAAQozC,EAAMx3C,KAAK03C,EAAQtzC,KAE7CszC,MAOL,SAAU93C,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7Dy3C,eAAgB,SAASA,eAAe5gC,GACtC,IAAItU,EAAM/B,EAASsD,MACf0zC,EAAWrrC,EAAU5J,EAAIlC,KAC7B,OAAQunB,EAAQ/Q,EAAU,SAAU9S,GAClC,IAAkC,IAA9ByzC,EAAS73C,KAAK4C,EAAKwB,GAAiB,OAAO6jB,EAAQuC,SACtDJ,YAOD,SAAUxqB,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BY,EAAaZ,EAAoB,IACjCqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChC2vC,EAAc3vC,EAAoB,KAClCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7D03C,WAAY,SAASA,WAAW7gC,GAC9B,IAAI3I,EAAW4gC,EAAYhrC,MACvB6zC,EAAWn3C,EAASqW,GACpB2gC,EAAWG,EAASt3C,IAKxB,MAJuB,mBAAZm3C,IACTG,EAAW,IAAK53C,EAAW,OAAhB,CAAwB8W,GACnC2gC,EAAWrrC,EAAUwrC,EAASt3C,OAExBunB,EAAQ1Z,EAAU,SAAUnK,GAClC,IAAuC,IAAnCyzC,EAAS73C,KAAKg4C,EAAU5zC,GAAkB,OAAO6jB,EAAQuC,QAC5DjrB,IAAW,GAAO,GAAM6qB,YAOzB,SAAUxqB,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7D43C,aAAc,SAASA,aAAa/gC,GAClC,IAAItU,EAAM/B,EAASsD,MACf0zC,EAAWrrC,EAAU5J,EAAIlC,KAC7B,OAAQunB,EAAQ/Q,EAAU,SAAU9S,GAClC,IAAkC,IAA9ByzC,EAAS73C,KAAK4C,EAAKwB,GAAkB,OAAO6jB,EAAQuC,SACvDJ,YAOD,SAAUxqB,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/Bm4C,EAAiBn4C,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7D4K,KAAM,SAASA,KAAKsQ,GAClB,IAAI3Y,EAAM/B,EAASsD,MACfoK,EAAWopC,EAAe/0C,GAC1Bs1C,EAAM38B,IAAchc,GAAY,IAAMqH,OAAO2U,GAC7ClV,EAAS,GAEb,OADA4hB,EAAQ1Z,EAAUlI,EAAOC,KAAMD,GAAQ,GAAO,GACvCA,EAAO4E,KAAKitC,OAOjB,SAAUt4C,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BY,EAAaZ,EAAoB,IACjCqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCoR,EAAOpR,EAAoB,IAC3BukB,EAAqBvkB,EAAoB,KACzCm4C,EAAiBn4C,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DmR,IAAK,SAASA,IAAIJ,GAChB,IAAIxO,EAAM/B,EAASsD,MACfoK,EAAWopC,EAAe/0C,GAC1B2O,EAAgBX,EAAKQ,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GAClFm4C,EAAS,IAAK3zB,EAAmBnhB,EAAKxC,EAAW,SACjDo3C,EAAQhrC,EAAUkrC,EAAO9uB,KAI7B,OAHAX,EAAQ1Z,EAAU,SAAUnK,GAC1BozC,EAAMx3C,KAAK03C,EAAQnmC,EAAcnN,EAAOA,EAAOxB,KAC9CrD,IAAW,GAAO,GACdm4C,MAOL,SAAU93C,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,MAAOC,MAAM,GAAQ,CAC/BsU,GALOnc,EAAoB,QAWvB,SAAUI,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCm4C,EAAiBn4C,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7Dyb,OAAQ,SAASA,OAAO1K,GACtB,IAAIxO,EAAM/B,EAASsD,MACfoK,EAAWopC,EAAe/0C,GAC1B+qC,EAAYjnC,UAAUC,OAAS,EAC/BinC,EAAcD,EAAYpuC,GAAYmH,UAAU,GAUpD,GATA8F,EAAU4E,GACV6W,EAAQ1Z,EAAU,SAAUnK,GAGxBwpC,EAFED,GACFA,GAAY,EACEvpC,GAEAgN,EAAWw8B,EAAaxpC,EAAOA,EAAOxB,IAErDrD,IAAW,GAAO,GACjBouC,EAAW,MAAMlnC,UAAU,6CAC/B,OAAOmnC,MAOL,SAAUhuC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqB,EAAWrB,EAAoB,IAC/BoR,EAAOpR,EAAoB,IAC3Bm4C,EAAiBn4C,EAAoB,KACrCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7DqR,KAAM,SAASA,KAAKN,GAClB,IAAIxO,EAAM/B,EAASsD,MACfoK,EAAWopC,EAAe/0C,GAC1B2O,EAAgBX,EAAKQ,EAA+B,EAAnB1K,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GACtF,OAAO0oB,EAAQ1Z,EAAU,SAAUnK,GACjC,GAAImN,EAAcnN,EAAOA,EAAOxB,GAAM,OAAOqlB,EAAQuC,QACpDjrB,IAAW,GAAO,GAAM6qB,YAOzB,SAAUxqB,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BY,EAAaZ,EAAoB,IACjCqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCukB,EAAqBvkB,EAAoB,KACzCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7D83C,oBAAqB,SAASA,oBAAoBjhC,GAChD,IAAItU,EAAM/B,EAASsD,MACfuzC,EAAS,IAAK3zB,EAAmBnhB,EAAKxC,EAAW,QAAxC,CAAiDwC,GAC1DosC,EAAUxiC,EAAUkrC,EAAe,WACnCF,EAAQhrC,EAAUkrC,EAAO9uB,KAI7B,OAHAX,EAAQ/Q,EAAU,SAAU9S,GAC1B4qC,EAAQhvC,KAAK03C,EAAQtzC,IAAUozC,EAAMx3C,KAAK03C,EAAQtzC,KAE7CszC,MAOL,SAAU93C,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BY,EAAaZ,EAAoB,IACjCqB,EAAWrB,EAAoB,IAC/BgN,EAAYhN,EAAoB,IAChCukB,EAAqBvkB,EAAoB,KACzCyoB,EAAUzoB,EAAoB,KAIlCU,EAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CAC7D+3C,MAAO,SAASA,MAAMlhC,GACpB,IAAItU,EAAM/B,EAASsD,MACfuzC,EAAS,IAAK3zB,EAAmBnhB,EAAKxC,EAAW,QAAxC,CAAiDwC,GAE9D,OADAqlB,EAAQ/Q,EAAU1K,EAAUkrC,EAAO9uB,KAAM8uB,GAClCA,MAOL,SAAU93C,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBioB,EAASjoB,EAAoB,KAAKioB,OAItCvnB,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,GAAQ,CACnC8kC,GAAI,SAASA,GAAGtZ,GACd,OAAOtX,EAAOtjB,KAAM46B,OAOlB,SAAUn/B,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxB8Z,EAA4B9Z,EAAoB,KAChDuK,EAAyBvK,EAAoB,IAC7C4C,EAAsB5C,EAAoB,IAC1C84C,EAAwB94C,EAAoB,KAE5Cq/B,EAASyZ,EAAsBzZ,OAC/BpX,EAAS6wB,EAAsB7wB,OAC/BsY,EAAkB,kBAClBp9B,EAAmBP,EAAoBQ,IACvCC,EAAmBT,EAAoBU,UAAUi9B,GAGjDwY,EAAkBj/B,EAA0B,SAASk/B,eAAejxC,GACtE5E,EAAiBwB,KAAM,CACrBW,KAAMi7B,EACNx4B,OAAQA,EACRW,MAAO,KAER,SAAU,SAASsP,OACpB,IAGIwoB,EAHAl0B,EAAQjJ,EAAiBsB,MACzBoD,EAASuE,EAAMvE,OACfW,EAAQ4D,EAAM5D,MAElB,OAAaX,EAAOZ,QAAhBuB,EAA+B,CAAE9D,MAAO7E,GAAWqY,MAAM,IAC7DooB,EAAQvY,EAAOlgB,EAAQW,GACvB4D,EAAM5D,OAAS83B,EAAMr5B,OACd,CAAEvC,MAAO,CAAEq0C,UAAW5Z,EAAOmB,EAAO,GAAId,SAAUh3B,GAAS0P,MAAM,MAK1E1X,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,GAAQ,CACnCmlC,WAAY,SAASA,aACnB,OAAO,IAAIH,EAAgB3xC,OAAOmD,EAAuB5F,YAOvD,SAAUvE,EAAQD,EAASH,GAGjCA,EAAoB,MAKd,SAAUI,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBuK,EAAyBvK,EAAoB,IAC7Cw8B,EAAWx8B,EAAoB,KAC/BgiC,EAAiBhiC,EAAoB,KACrCwC,EAAkBxC,EAAoB,IACtCa,EAAUb,EAAoB,IAE9BuhC,EAAU/+B,EAAgB,WAC1Bq6B,EAAkB7M,OAAOzmB,UAI7B7I,EAAE,CAAEkH,OAAQ,SAAUmM,OAAO,GAAQ,CACnColC,WAAY,SAASA,WAAW7V,EAAaC,GAC3C,IACI6V,EAAmB9wC,EAAUP,EAAQi4B,EAAcgD,EAAUn8B,EAAQ64B,EAAUh3B,EAD/E5D,EAAIyF,EAAuB5F,MAE/B,GAAmB,MAAf2+B,EAAqB,CAEvB,IADA8V,EAAa5c,EAAS8G,OAEZl8B,OAAOmD,EAAuB,UAAWsyB,EAC7CyG,EAAYlG,MACZ4E,EAAexhC,KAAK8iC,KAEZj2B,QAAQ,KAAM,MAAMpG,UAAU,mDAG5C,IADAqB,EAAWg7B,EAAY/B,MACNxhC,GACf,OAAOuI,EAAS9H,KAAK8iC,EAAax+B,EAAGy+B,GAChC,GAAI1iC,GAAWu4C,EACpB,OAAOhyC,OAAOtC,GAAG+J,QAAQy0B,EAAaC,GAK1C,GAFAx7B,EAASX,OAAOtC,GAEK,MADrBk7B,EAAe54B,OAAOk8B,IACG,OAAO6V,WAAW34C,KAAKuH,EAAQ,QAASw7B,GAEjE,GADAP,EAAWj7B,EAAO0C,MAAMu1B,GACI,mBAAjBuD,EACT,OAAOP,EAASv3B,KAAKrE,OAAOm8B,IAI9B,IADA7D,GADA74B,EAASm8B,EAAS,IACA77B,OACbuB,EAAQ,EAAGA,EAAQs6B,EAAS77B,OAAQuB,IACvC7B,GAAUO,OAAOm8B,EAAavD,EAAcN,EAAU33B,IACtD23B,GAAYM,EAAa74B,OAAS67B,EAASt6B,GAAOvB,OAClDN,GAAUm8B,EAASt6B,GAErB,OAAO7B,MAOL,SAAUzG,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,iBAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,YAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,eAKhB,SAAUtC,EAAQD,EAASH,GAELA,EAAoB,GAIhD0C,CAAsB,iBAKhB,SAAUtC,EAAQD,EAASH,GAGLA,EAAoB,GAEhD0C,CAAsB,eAKhB,SAAUtC,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqvC,EAAsBrvC,EAAoB,KAI9CU,EAAE,CAAEkH,OAAQ,UAAWmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CACjEyuC,UAAW,SAASA,YAClB,OAAOD,EAAoB1mC,MAAMhE,KAAMuC,eAOrC,SAAU9G,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnCqN,KALSlV,EAAoB,QAWzB,SAAUI,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnCsU,GALOnc,EAAoB,QAWvB,SAAUI,EAAQD,EAASH,GAIzBA,EAAoB,EAM5BU,CAAE,CAAEkH,OAAQ,UAAWmM,OAAO,EAAMinB,MAAM,EAAMtzB,OALlC1H,EAAoB,KAKiC,CACjE4wC,OALY5wC,EAAoB,QAW5B,SAAUI,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9B83C,EAAmB93C,EAAoB,KAI3CU,EAAE,CAAEkH,OAAQ,UAAWmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CACjEk3C,OAAQ,SAASA,SACf,OAAOD,EAAiBnvC,MAAMhE,KAAMuC,eAOlC,SAAU9G,EAAQD,EAASH,GAIjC,IAAIU,EAAIV,EAAoB,GACxBa,EAAUb,EAAoB,IAC9BqvC,EAAsBrvC,EAAoB,KAI9CU,EAAE,CAAEkH,OAAQ,UAAWmM,OAAO,EAAMinB,MAAM,EAAMtzB,OAAQ7G,GAAW,CACjEyuC,UAAW,SAASA,YAClB,OAAOD,EAAoB1mC,MAAMhE,KAAMuC,eAOrC,SAAU9G,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnCqN,KALSlV,EAAoB,QAWzB,SAAUI,EAAQD,EAASH,GAEzBA,EAAoB,EAK5BU,CAAE,CAAEkH,OAAQ,UAAWC,MAAM,GAAQ,CACnCsU,GALOnc,EAAoB,QAWvB,SAAUI,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GAC7Bq5C,EAAer5C,EAAoB,KACnC8C,EAAU9C,EAAoB,IAC9BkC,EAA8BlC,EAAoB,IAEtD,IAAK,IAAIs5C,KAAmBD,EAAc,CACxC,IAAIE,EAAa54C,EAAO24C,GACpBE,EAAsBD,GAAcA,EAAWhwC,UAEnD,GAAIiwC,GAAuBA,EAAoB12C,UAAYA,EAAS,IAClEZ,EAA4Bs3C,EAAqB,UAAW12C,GAC5D,MAAOkH,GACPwvC,EAAoB12C,QAAUA,KAO5B,SAAU1C,EAAQD,GAIxBC,EAAOD,QAAU,CACfs5C,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACdC,eAAgB,EAChBC,YAAa,EACbC,cAAe,EACfC,aAAc,EACdC,qBAAsB,EACtBC,SAAU,EACVC,kBAAmB,EACnBC,eAAgB,EAChBC,gBAAiB,EACjBC,kBAAmB,EACnBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,SAAU,EACVC,iBAAkB,EAClBC,OAAQ,EACRC,YAAa,EACbC,cAAe,EACfC,cAAe,EACfC,eAAgB,EAChBC,aAAc,EACdC,cAAe,EACfC,iBAAkB,EAClBC,iBAAkB,EAClBC,eAAgB,EAChBC,iBAAkB,EAClBC,cAAe,EACfC,UAAW,IAMP,SAAUn7C,EAAQD,EAASH,GAEjC,IAAIW,EAASX,EAAoB,GAC7Bq5C,EAAer5C,EAAoB,KACnCw7C,EAAuBx7C,EAAoB,KAC3CkC,EAA8BlC,EAAoB,IAClDwC,EAAkBxC,EAAoB,IAEtCwY,EAAWhW,EAAgB,YAC3B0O,EAAgB1O,EAAgB,eAChCi5C,EAAcD,EAAqBtgC,OAEvC,IAAK,IAAIo+B,KAAmBD,EAAc,CACxC,IAAIE,EAAa54C,EAAO24C,GACpBE,EAAsBD,GAAcA,EAAWhwC,UACnD,GAAIiwC,EAAqB,CAEvB,GAAIA,EAAoBhhC,KAAcijC,EAAa,IACjDv5C,EAA4Bs3C,EAAqBhhC,EAAUijC,GAC3D,MAAOzxC,GACPwvC,EAAoBhhC,GAAYijC,EAKlC,GAHKjC,EAAoBtoC,IACvBhP,EAA4Bs3C,EAAqBtoC,EAAeooC,GAE9DD,EAAaC,GAAkB,IAAK,IAAIhlC,KAAeknC,EAEzD,GAAIhC,EAAoBllC,KAAiBknC,EAAqBlnC,GAAc,IAC1EpS,EAA4Bs3C,EAAqBllC,EAAaknC,EAAqBlnC,IACnF,MAAOtK,GACPwvC,EAAoBllC,GAAeknC,EAAqBlnC,OAS1D,SAAUlU,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBW,EAASX,EAAoB,GAC7Bo0B,EAAOp0B,EAAoB,KAK/BU,EAAE,CAAEC,QAAQ,EAAMyQ,MAAM,EAAMxL,YAAY,EAAM8B,QAHlC/G,EAAO63B,eAAiB73B,EAAO83B,gBAGqB,CAGhED,aAAcpE,EAAKhxB,IAGnBq1B,eAAgBrE,EAAKtK,SAMjB,SAAU1pB,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBW,EAASX,EAAoB,GAC7Bq0B,EAAYr0B,EAAoB,KAChCwK,EAAUxK,EAAoB,IAE9B2U,EAAUhU,EAAOgU,QACjB+mC,EAA6B,WAApBlxC,EAAQmK,GAIrBjU,EAAE,CAAEC,QAAQ,EAAMiF,YAAY,EAAM4D,aAAa,GAAQ,CACvD6wB,eAAgB,SAASA,eAAexvB,GACtC,IAAIgF,EAAS6rC,GAAU/mC,EAAQ9E,OAC/BwkB,EAAUxkB,EAASA,EAAOuB,KAAKvG,GAAMA,OAOnC,SAAUzK,EAAQD,EAASH,GAEjC,IAAIU,EAAIV,EAAoB,GACxBW,EAASX,EAAoB,GAC7B0U,EAAY1U,EAAoB,IAEhC0K,EAAQ,GAAGA,MAGXxF,EAAO,SAAUy2C,GACnB,OAAO,SAAUtlB,EAASulB,GACxB,IAAIC,EAA+B,EAAnB30C,UAAUC,OACtBsB,EAAOozC,EAAYnxC,EAAMlK,KAAK0G,UAAW,GAAKnH,GAClD,OAAO47C,EAAUE,EAAY,YAER,mBAAXxlB,EAAwBA,EAAUvsB,SAASusB,IAAU1tB,MAAMhE,KAAM8D,IACvE4tB,EAASulB,KAMjBl7C,EAAE,CAAEC,QAAQ,EAAMyQ,MAAM,EAAM1J,OAfnB,WAAW6E,KAAKmI,IAemB,CAG5CklB,WAAY10B,EAAKvE,EAAOi5B,YAGxBkiB,YAAa52C,EAAKvE,EAAOm7C,gBAMrB,SAAU17C,EAAQD,EAASH,GAKjCA,EAAoB,KACpB,IA4CI+7C,EA5CAr7C,EAAIV,EAAoB,GACxBc,EAAcd,EAAoB,GAClCg8C,EAAiBh8C,EAAoB,KACrCW,EAASX,EAAoB,GAC7B8F,EAAmB9F,EAAoB,IACvCmC,EAAWnC,EAAoB,IAC/Boe,EAAape,EAAoB,KACjCkB,EAAMlB,EAAoB,IAC1B6xB,EAAS7xB,EAAoB,KAC7Bi8C,EAAYj8C,EAAoB,IAChCq/B,EAASr/B,EAAoB,KAAKq/B,OAClC6c,EAAUl8C,EAAoB,KAC9B2C,EAAiB3C,EAAoB,IACrCm8C,EAAwBn8C,EAAoB,KAC5C4C,EAAsB5C,EAAoB,IAE1Co8C,EAAYz7C,EAAO07C,IACnBC,EAAkBH,EAAsBG,gBACxCC,EAA+BJ,EAAsBK,SACrDr5C,EAAmBP,EAAoBQ,IACvCq5C,EAAsB75C,EAAoBU,UAAU,OACpD4K,EAAQxE,KAAKwE,MACb0T,EAAMlY,KAAKkY,IAGX86B,EAAiB,iBACjBC,EAAe,eACfC,EAAe,eAEfC,EAAQ,WACRC,EAAe,gBACfC,EAAQ,KACRC,EAAY,WACZC,EAAM,WACNC,EAAM,QACNC,EAAM,gBAENC,EAA4B,wCAE5BC,EAA8C,uCAE9CC,EAA2C,yCAE3CC,EAAmB,wBAGnBC,EAAY,SAAUrW,EAAKx8B,GAC7B,IAAI9D,EAAQqyC,EAAYxwC,EACxB,GAAuB,KAAnBiC,EAAMsd,OAAO,GAAW,CAC1B,GAAsC,KAAlCtd,EAAMsd,OAAOtd,EAAMxD,OAAS,GAAW,OAAOw1C,EAElD,KADA91C,EAAS42C,EAAU9yC,EAAMD,MAAM,GAAI,KACtB,OAAOiyC,EACpBxV,EAAI/N,KAAOvyB,OAEN,GAAK62C,EAAUvW,GAQf,CAEL,GADAx8B,EAAQuxC,EAAQvxC,GACZyyC,EAA0B7wC,KAAK5B,GAAQ,OAAOgyC,EAElD,GAAe,QADf91C,EAAS82C,EAAUhzC,IACE,OAAOgyC,EAC5BxV,EAAI/N,KAAOvyB,MAbe,CAC1B,GAAIw2C,EAA4C9wC,KAAK5B,GAAQ,OAAOgyC,EAGpE,IAFA91C,EAAS,GACTqyC,EAAa+C,EAAUtxC,GAClBjC,EAAQ,EAAGA,EAAQwwC,EAAW/xC,OAAQuB,IACzC7B,GAAU+2C,EAAc1E,EAAWxwC,GAAQm1C,GAE7C1W,EAAI/N,KAAOvyB,IAUX82C,EAAY,SAAUhzC,GACxB,IACImzC,EAAaC,EAASr1C,EAAOs1C,EAAMxuB,EAAOpQ,EAAQ6+B,EADlDC,EAAQvzC,EAAMF,MAAM,KAMxB,GAJIyzC,EAAM/2C,QAAqC,IAA3B+2C,EAAMA,EAAM/2C,OAAS,IACvC+2C,EAAMC,MAGU,GADlBL,EAAcI,EAAM/2C,QACC,OAAOwD,EAE5B,IADAozC,EAAU,GACLr1C,EAAQ,EAAGA,EAAQo1C,EAAap1C,IAAS,CAE5C,GAAY,KADZs1C,EAAOE,EAAMx1C,IACG,OAAOiC,EAMvB,GALA6kB,EAAQ,GACU,EAAdwuB,EAAK72C,QAAgC,KAAlB62C,EAAK/1B,OAAO,KACjCuH,EAAQwtB,EAAUzwC,KAAKyxC,GAAQ,GAAK,EACpCA,EAAOA,EAAKtzC,MAAe,GAAT8kB,EAAa,EAAI,IAExB,KAATwuB,EACF5+B,EAAS,MACJ,CACL,KAAe,IAAToQ,EAAc0tB,EAAe,GAAT1tB,EAAaytB,EAAME,GAAK5wC,KAAKyxC,GAAO,OAAOrzC,EACrEyU,EAASwQ,SAASouB,EAAMxuB,GAE1BuuB,EAAQj3C,KAAKsY,GAEf,IAAK1W,EAAQ,EAAGA,EAAQo1C,EAAap1C,IAEnC,GADA0W,EAAS2+B,EAAQr1C,GACbA,GAASo1C,EAAc,GACzB,GAAI1+B,GAAUwC,EAAI,IAAK,EAAIk8B,GAAc,OAAO,UAC3C,GAAa,IAAT1+B,EAAc,OAAO,KAGlC,IADA6+B,EAAOF,EAAQI,MACVz1C,EAAQ,EAAGA,EAAQq1C,EAAQ52C,OAAQuB,IACtCu1C,GAAQF,EAAQr1C,GAASkZ,EAAI,IAAK,EAAIlZ,GAExC,OAAOu1C,GAILR,EAAY,SAAU9yC,GACxB,IAII/F,EAAOuC,EAAQi3C,EAAaC,EAAWj/B,EAAQk/B,EAAOC,EAJtDC,EAAU,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAChCC,EAAa,EACbC,EAAW,KACXC,EAAU,EAGVC,EAAO,WACT,OAAOj0C,EAAMsd,OAAO02B,IAGtB,GAAc,KAAVC,IAAe,CACjB,GAAuB,KAAnBj0C,EAAMsd,OAAO,GAAW,OAC5B02B,GAAW,EAEXD,IADAD,EAGF,KAAOG,KAAQ,CACb,GAAkB,GAAdH,EAAiB,OACrB,GAAc,KAAVG,IAAJ,CAQA,IADAh6C,EAAQuC,EAAS,EACVA,EAAS,GAAKg2C,EAAI5wC,KAAKqyC,MAC5Bh6C,EAAgB,GAARA,EAAagrB,SAASgvB,IAAQ,IACtCD,IACAx3C,IAEF,GAAc,KAAVy3C,IAAe,CACjB,GAAc,GAAVz3C,EAAa,OAEjB,GADAw3C,GAAWx3C,EACM,EAAbs3C,EAAgB,OAEpB,IADAL,EAAc,EACPQ,KAAQ,CAEb,GADAP,EAAY,KACM,EAAdD,EAAiB,CACnB,KAAc,KAAVQ,KAAiBR,EAAc,GAC9B,OADiCO,IAGxC,IAAK5B,EAAMxwC,KAAKqyC,KAAS,OACzB,KAAO7B,EAAMxwC,KAAKqyC,MAAS,CAEzB,GADAx/B,EAASwQ,SAASgvB,IAAQ,IACR,OAAdP,EAAoBA,EAAYj/B,MAC/B,CAAA,GAAiB,GAAbi/B,EAAgB,OACpBA,EAAwB,GAAZA,EAAiBj/B,EAClC,GAAgB,IAAZi/B,EAAiB,OACrBM,IAEFH,EAAQC,GAAoC,IAAtBD,EAAQC,GAAoBJ,EAE/B,KADnBD,GACuC,GAAfA,GAAkBK,IAE5C,GAAmB,GAAfL,EAAkB,OACtB,MACK,GAAc,KAAVQ,KAET,GADAD,KACKC,IAAQ,YACR,GAAIA,IAAQ,OACnBJ,EAAQC,KAAgB75C,MA3CxB,CACE,GAAiB,OAAb85C,EAAmB,OACvBC,IAEAD,IADAD,GA0CJ,GAAiB,OAAbC,EAGF,IAFAJ,EAAQG,EAAaC,EACrBD,EAAa,EACQ,GAAdA,GAA2B,EAARH,GACxBC,EAAOC,EAAQC,GACfD,EAAQC,KAAgBD,EAAQE,EAAWJ,EAAQ,GACnDE,EAAQE,IAAaJ,GAASC,OAE3B,GAAkB,GAAdE,EAAiB,OAC5B,OAAOD,GA6BLK,EAAgB,SAAUzlB,GAC5B,IAAIvyB,EAAQ6B,EAAOg2C,EAAUI,EAE7B,GAAmB,iBAAR1lB,EAAkB,CAE3B,IADAvyB,EAAS,GACJ6B,EAAQ,EAAGA,EAAQ,EAAGA,IACzB7B,EAAOk4C,QAAQ3lB,EAAO,KACtBA,EAAOlrB,EAAMkrB,EAAO,KACpB,OAAOvyB,EAAO4E,KAAK,KAEhB,GAAmB,iBAAR2tB,EAehB,OAAOA,EAZP,IAFAvyB,EAAS,GACT63C,EAtC0B,SAAUM,GAMtC,IALA,IAAIC,EAAW,KACX/4B,EAAY,EACZg5B,EAAY,KACZC,EAAa,EACbz2C,EAAQ,EACLA,EAAQ,EAAGA,IACI,IAAhBs2C,EAAKt2C,IACUwd,EAAbi5B,IACFF,EAAWC,EACXh5B,EAAYi5B,GAEdD,EAAY,KACZC,EAAa,IAEK,OAAdD,IAAoBA,EAAYx2C,KAClCy2C,GAON,OAJiBj5B,EAAbi5B,IACFF,EAAWC,EACXh5B,EAAYi5B,GAEPF,EAeMG,CAAwBhmB,GAC9B1wB,EAAQ,EAAGA,EAAQ,EAAGA,IACrBo2C,GAA2B,IAAhB1lB,EAAK1wB,KACPo2C,EAATA,IAAmB,EACnBJ,IAAah2C,GACf7B,GAAU6B,EAAQ,IAAM,KACxBo2C,GAAU,IAEVj4C,GAAUuyB,EAAK1wB,GAAOnB,SAAS,IAC3BmB,EAAQ,IAAG7B,GAAU,OAG7B,MAAO,IAAMA,EAAS,KAItBg3C,EAA4B,GAC5BwB,EAA2BxtB,EAAO,GAAIgsB,EAA2B,CACnEyB,IAAK,EAAGC,IAAK,EAAGC,IAAK,EAAGC,IAAK,EAAGC,IAAK,IAEnCC,EAAuB9tB,EAAO,GAAIwtB,EAA0B,CAC9DO,IAAK,EAAGC,IAAK,EAAGC,IAAK,EAAGC,IAAK,IAE3BC,EAA2BnuB,EAAO,GAAI8tB,EAAsB,CAC9DM,IAAK,EAAGC,IAAK,EAAGC,IAAK,EAAGC,IAAK,EAAGC,IAAK,EAAGC,IAAK,EAAGC,KAAM,EAAGC,IAAK,EAAGC,IAAK,EAAGC,IAAK,IAG5E9C,EAAgB,SAAUgB,EAAMx7C,GAClC,IAAIusB,EAAO0P,EAAOuf,EAAM,GACxB,OAAc,GAAPjvB,GAAeA,EAAO,MAASzuB,EAAIkC,EAAKw7C,GAAQA,EAAO+B,mBAAmB/B,IAG/EgC,EAAiB,CACnBC,IAAK,GACLC,KAAM,KACNC,KAAM,GACNC,MAAO,IACPC,GAAI,GACJC,IAAK,KAGHxD,EAAY,SAAUvW,GACxB,OAAOjmC,EAAI0/C,EAAgBzZ,EAAIga,SAG7BC,EAAsB,SAAUja,GAClC,MAAuB,IAAhBA,EAAIka,UAAkC,IAAhBla,EAAIma,UAG/BC,EAAiC,SAAUpa,GAC7C,OAAQA,EAAI/N,MAAQ+N,EAAIqa,kBAAkC,QAAdra,EAAIga,QAG9CM,EAAuB,SAAU15C,EAAQ25C,GAC3C,IAAIjiB,EACJ,OAAwB,GAAjB13B,EAAOZ,QAAe01C,EAAMtwC,KAAKxE,EAAOkgB,OAAO,MACjB,MAA9BwX,EAAS13B,EAAOkgB,OAAO,MAAgBy5B,GAAwB,KAAVjiB,IAG1DkiB,GAA+B,SAAU55C,GAC3C,IAAIwnB,EACJ,OAAuB,EAAhBxnB,EAAOZ,QAAcs6C,EAAqB15C,EAAO2C,MAAM,EAAG,MAC9C,GAAjB3C,EAAOZ,QACyB,OAA9BooB,EAAQxnB,EAAOkgB,OAAO,KAAyB,OAAVsH,GAA4B,MAAVA,GAA2B,MAAVA,IAI1EqyB,GAAkB,SAAUza,GAC9B,IAAIp6B,EAAOo6B,EAAIp6B,KACX80C,EAAW90C,EAAK5F,QAChB06C,GAA2B,QAAd1a,EAAIga,QAAgC,GAAZU,GAAkBJ,EAAqB10C,EAAK,IAAI,IACvFA,EAAKoxC,OAcL2D,GAAe,GACfC,GAAS,GACTC,GAAY,GACZC,GAAgC,GAChCC,GAAoB,GACpBC,GAAW,GACXC,GAAiB,GACjBC,GAA4B,GAC5BC,GAAmC,GACnCC,GAAY,GACZC,GAAO,GACPC,GAAW,GACXC,GAAO,GACPC,GAAO,GACPC,GAAa,GACbC,GAAY,GACZC,GAAa,GACbC,GAAO,GACPC,GAA4B,GAC5BC,GAAQ,GACRC,GAAW,GAGXC,GAAW,SAAUhc,EAAKx8B,EAAOy4C,EAAeC,GAClD,IAMInK,EAAY0F,EAAM0E,EAAkBC,EAxCdC,EAIAA,EA8BtBl3C,EAAQ82C,GAAiBtB,GACzBnD,EAAU,EACVn/B,EAAS,GACTikC,GAAS,EACTC,GAAc,EACdC,GAAoB,EAoBxB,IAjBKP,IACHjc,EAAIga,OAAS,GACbha,EAAIka,SAAW,GACfla,EAAIma,SAAW,GACfna,EAAI/N,KAAO,KACX+N,EAAI9O,KAAO,KACX8O,EAAIp6B,KAAO,GACXo6B,EAAIyc,MAAQ,KACZzc,EAAI0c,SAAW,KACf1c,EAAIqa,kBAAmB,EACvB72C,EAAQA,EAAMkE,QAAQyuC,EAA0C,KAGlE3yC,EAAQA,EAAMkE,QAAQ0uC,EAAkB,IAExCrE,EAAa+C,EAAUtxC,GAEhBg0C,GAAWzF,EAAW/xC,QAAQ,CAEnC,OADAy3C,EAAO1F,EAAWyF,GACVryC,GACN,KAAKw1C,GACH,IAAIlD,IAAQ/B,EAAMtwC,KAAKqyC,GAGhB,CAAA,GAAKwE,EAGL,OAAO1G,EAFZpwC,EAAQ01C,GACR,SAJAxiC,GAAUo/B,EAAK9vC,cACfxC,EAAQy1C,GAKV,MAEF,KAAKA,GACH,GAAInD,IAAS9B,EAAavwC,KAAKqyC,IAAiB,KAARA,GAAuB,KAARA,GAAuB,KAARA,GACpEp/B,GAAUo/B,EAAK9vC,kBACV,CAAA,GAAY,KAAR8vC,EA0BJ,CAAA,GAAKwE,EAKL,OAAO1G,EAJZl9B,EAAS,GACTlT,EAAQ01C,GACRrD,EAAU,EACV,SA7BA,GAAIyE,IACD1F,EAAUvW,IAAQjmC,EAAI0/C,EAAgBphC,IAC5B,QAAVA,IAAqB4hC,EAAoBja,IAAqB,OAAbA,EAAI9O,OACvC,QAAd8O,EAAIga,SAAqBha,EAAI/N,MAC7B,OAEH,GADA+N,EAAIga,OAAS3hC,EACT4jC,EAEF,YADI1F,EAAUvW,IAAQyZ,EAAezZ,EAAIga,SAAWha,EAAI9O,OAAM8O,EAAI9O,KAAO,OAG3E7Y,EAAS,GACS,QAAd2nB,EAAIga,OACN70C,EAAQq2C,GACCjF,EAAUvW,IAAQkc,GAAQA,EAAKlC,QAAUha,EAAIga,OACtD70C,EAAQ21C,GACCvE,EAAUvW,GACnB76B,EAAQ+1C,GAC4B,KAA3BnJ,EAAWyF,EAAU,IAC9BryC,EAAQ41C,GACRvD,MAEAxX,EAAIqa,kBAAmB,EACvBra,EAAIp6B,KAAKjG,KAAK,IACdwF,EAAQ02C,IAQZ,MAEF,KAAKhB,GACH,IAAKqB,GAASA,EAAK7B,kBAA4B,KAAR5C,EAAc,OAAOlC,EAC5D,GAAI2G,EAAK7B,kBAA4B,KAAR5C,EAAa,CACxCzX,EAAIga,OAASkC,EAAKlC,OAClBha,EAAIp6B,KAAOs2C,EAAKt2C,KAAKrC,QACrBy8B,EAAIyc,MAAQP,EAAKO,MACjBzc,EAAI0c,SAAW,GACf1c,EAAIqa,kBAAmB,EACvBl1C,EAAQ42C,GACR,MAEF52C,EAAuB,QAAf+2C,EAAKlC,OAAmBwB,GAAOR,GACvC,SAEF,KAAKF,GACH,GAAY,KAARrD,GAA0C,KAA3B1F,EAAWyF,EAAU,GAGjC,CACLryC,EAAQ61C,GACR,SAJA71C,EAAQg2C,GACR3D,IAIA,MAEJ,KAAKuD,GACH,GAAY,KAARtD,EAAa,CACftyC,EAAQi2C,GACR,MAEAj2C,EAAQy2C,GACR,SAGJ,KAAKZ,GAEH,GADAhb,EAAIga,OAASkC,EAAKlC,OACdvC,GAAQ7C,EACV5U,EAAIka,SAAWgC,EAAKhC,SACpBla,EAAIma,SAAW+B,EAAK/B,SACpBna,EAAI/N,KAAOiqB,EAAKjqB,KAChB+N,EAAI9O,KAAOgrB,EAAKhrB,KAChB8O,EAAIp6B,KAAOs2C,EAAKt2C,KAAKrC,QACrBy8B,EAAIyc,MAAQP,EAAKO,WACZ,GAAY,KAARhF,GAAwB,MAARA,GAAgBlB,EAAUvW,GACnD76B,EAAQ81C,QACH,GAAY,KAARxD,EACTzX,EAAIka,SAAWgC,EAAKhC,SACpBla,EAAIma,SAAW+B,EAAK/B,SACpBna,EAAI/N,KAAOiqB,EAAKjqB,KAChB+N,EAAI9O,KAAOgrB,EAAKhrB,KAChB8O,EAAIp6B,KAAOs2C,EAAKt2C,KAAKrC,QACrBy8B,EAAIyc,MAAQ,GACZt3C,EAAQ22C,OACH,CAAA,GAAY,KAARrE,EASJ,CACLzX,EAAIka,SAAWgC,EAAKhC,SACpBla,EAAIma,SAAW+B,EAAK/B,SACpBna,EAAI/N,KAAOiqB,EAAKjqB,KAChB+N,EAAI9O,KAAOgrB,EAAKhrB,KAChB8O,EAAIp6B,KAAOs2C,EAAKt2C,KAAKrC,QACrBy8B,EAAIp6B,KAAKoxC,MACT7xC,EAAQy2C,GACR,SAhBA5b,EAAIka,SAAWgC,EAAKhC,SACpBla,EAAIma,SAAW+B,EAAK/B,SACpBna,EAAI/N,KAAOiqB,EAAKjqB,KAChB+N,EAAI9O,KAAOgrB,EAAKhrB,KAChB8O,EAAIp6B,KAAOs2C,EAAKt2C,KAAKrC,QACrBy8B,EAAIyc,MAAQP,EAAKO,MACjBzc,EAAI0c,SAAW,GACfv3C,EAAQ42C,GAUR,MAEJ,KAAKd,GACH,IAAI1E,EAAUvW,IAAiB,KAARyX,GAAuB,MAARA,EAE/B,CAAA,GAAY,KAARA,EAEJ,CACLzX,EAAIka,SAAWgC,EAAKhC,SACpBla,EAAIma,SAAW+B,EAAK/B,SACpBna,EAAI/N,KAAOiqB,EAAKjqB,KAChB+N,EAAI9O,KAAOgrB,EAAKhrB,KAChB/rB,EAAQy2C,GACR,SAPAz2C,EAAQi2C,QAFRj2C,EAAQg2C,GAUR,MAEJ,KAAKD,GAEH,GADA/1C,EAAQg2C,GACI,KAAR1D,GAA6C,KAA9Bp/B,EAAOyI,OAAO02B,EAAU,GAAW,SACtDA,IACA,MAEF,KAAK2D,GACH,GAAY,KAAR1D,GAAuB,MAARA,EAGjB,MAFAtyC,EAAQi2C,GACR,SAGJ,KAAKA,GACH,GAAY,KAAR3D,EAAa,CACX6E,IAAQjkC,EAAS,MAAQA,GAC7BikC,GAAS,EACTH,EAAmBrH,EAAUz8B,GAC7B,IAAK,IAAInf,EAAI,EAAGA,EAAIijD,EAAiBn8C,OAAQ9G,IAAK,CAChD,IAAI44C,EAAYqK,EAAiBjjD,GACjC,GAAiB,KAAb44C,GAAqB0K,EAAzB,CAIA,IAAIG,EAAoBlG,EAAc3E,EAAW+G,GAC7C2D,EAAmBxc,EAAIma,UAAYwC,EAClC3c,EAAIka,UAAYyC,OALnBH,GAAoB,EAOxBnkC,EAAS,QACJ,GACLo/B,GAAQ7C,GAAe,KAAR6C,GAAuB,KAARA,GAAuB,KAARA,GACpC,MAARA,GAAgBlB,EAAUvW,GAC3B,CACA,GAAIsc,GAAoB,IAAVjkC,EAAc,MArfd,oBAsfdm/B,GAAW1C,EAAUz8B,GAAQrY,OAAS,EACtCqY,EAAS,GACTlT,EAAQk2C,QACHhjC,GAAUo/B,EACjB,MAEF,KAAK4D,GACL,KAAKC,GACH,GAAIW,GAA+B,QAAdjc,EAAIga,OAAkB,CACzC70C,EAAQu2C,GACR,SACK,GAAY,KAARjE,GAAgB8E,EAOpB,CAAA,GACL9E,GAAQ7C,GAAe,KAAR6C,GAAuB,KAARA,GAAuB,KAARA,GACpC,MAARA,GAAgBlB,EAAUvW,GAC3B,CACA,GAAIuW,EAAUvW,IAAkB,IAAV3nB,EAAc,OAAOm9B,EAC3C,GAAIyG,GAA2B,IAAV5jC,IAAiB4hC,EAAoBja,IAAqB,OAAbA,EAAI9O,MAAgB,OAEtF,GADAkrB,EAAU/F,EAAUrW,EAAK3nB,GACZ,OAAO+jC,EAGpB,GAFA/jC,EAAS,GACTlT,EAAQw2C,GACJM,EAAe,OACnB,SAEY,KAARxE,EAAa8E,GAAc,EACd,KAAR9E,IAAa8E,GAAc,GACpClkC,GAAUo/B,MAtB4B,CACtC,GAAc,IAAVp/B,EAAc,OAAOm9B,EAEzB,GADA4G,EAAU/F,EAAUrW,EAAK3nB,GACZ,OAAO+jC,EAGpB,GAFA/jC,EAAS,GACTlT,EAAQo2C,GACJU,GAAiBX,GAAU,OAiB/B,MAEJ,KAAKC,GACH,IAAI3F,EAAMxwC,KAAKqyC,GAER,CAAA,GACLA,GAAQ7C,GAAe,KAAR6C,GAAuB,KAARA,GAAuB,KAARA,GACpC,MAARA,GAAgBlB,EAAUvW,IAC3Bic,EACA,CACA,GAAc,IAAV5jC,EAAc,CAChB,IAAI6Y,EAAOzI,SAASpQ,EAAQ,IAC5B,GAAW,MAAP6Y,EAAe,OAAOukB,EAC1BzV,EAAI9O,KAAQqlB,EAAUvW,IAAQ9O,IAASuoB,EAAezZ,EAAIga,QAAW,KAAO9oB,EAC5E7Y,EAAS,GAEX,GAAI4jC,EAAe,OACnB92C,EAAQw2C,GACR,SACK,OAAOlG,EAfZp9B,GAAUo/B,EAgBZ,MAEF,KAAK+D,GAEH,GADAxb,EAAIga,OAAS,OACD,KAARvC,GAAuB,MAARA,EAActyC,EAAQs2C,OACpC,CAAA,IAAIS,GAAuB,QAAfA,EAAKlC,OAyBf,CACL70C,EAAQy2C,GACR,SA1BA,GAAInE,GAAQ7C,EACV5U,EAAI/N,KAAOiqB,EAAKjqB,KAChB+N,EAAIp6B,KAAOs2C,EAAKt2C,KAAKrC,QACrBy8B,EAAIyc,MAAQP,EAAKO,WACZ,GAAY,KAARhF,EACTzX,EAAI/N,KAAOiqB,EAAKjqB,KAChB+N,EAAIp6B,KAAOs2C,EAAKt2C,KAAKrC,QACrBy8B,EAAIyc,MAAQ,GACZt3C,EAAQ22C,OACH,CAAA,GAAY,KAARrE,EAMJ,CACA+C,GAA6BzI,EAAWxuC,MAAMi0C,GAASlzC,KAAK,OAC/D07B,EAAI/N,KAAOiqB,EAAKjqB,KAChB+N,EAAIp6B,KAAOs2C,EAAKt2C,KAAKrC,QACrBk3C,GAAgBza,IAElB76B,EAAQy2C,GACR,SAZA5b,EAAI/N,KAAOiqB,EAAKjqB,KAChB+N,EAAIp6B,KAAOs2C,EAAKt2C,KAAKrC,QACrBy8B,EAAIyc,MAAQP,EAAKO,MACjBzc,EAAI0c,SAAW,GACfv3C,EAAQ42C,IAaV,MAEJ,KAAKN,GACH,GAAY,KAARhE,GAAuB,MAARA,EAAc,CAC/BtyC,EAAQu2C,GACR,MAEEQ,GAAuB,QAAfA,EAAKlC,SAAqBQ,GAA6BzI,EAAWxuC,MAAMi0C,GAASlzC,KAAK,OAC5Fg2C,EAAqB4B,EAAKt2C,KAAK,IAAI,GAAOo6B,EAAIp6B,KAAKjG,KAAKu8C,EAAKt2C,KAAK,IACjEo6B,EAAI/N,KAAOiqB,EAAKjqB,MAEvB9sB,EAAQy2C,GACR,SAEF,KAAKF,GACH,GAAIjE,GAAQ7C,GAAe,KAAR6C,GAAuB,MAARA,GAAwB,KAARA,GAAuB,KAARA,EAAa,CAC5E,IAAKwE,GAAiB3B,EAAqBjiC,GACzClT,EAAQy2C,QACH,GAAc,IAAVvjC,EAAc,CAEvB,GADA2nB,EAAI/N,KAAO,GACPgqB,EAAe,OACnB92C,EAAQw2C,OACH,CAEL,GADAS,EAAU/F,EAAUrW,EAAK3nB,GACZ,OAAO+jC,EAEpB,GADgB,aAAZpc,EAAI/N,OAAqB+N,EAAI/N,KAAO,IACpCgqB,EAAe,OACnB5jC,EAAS,GACTlT,EAAQw2C,GACR,SACGtjC,GAAUo/B,EACjB,MAEF,KAAKkE,GACH,GAAIpF,EAAUvW,IAEZ,GADA76B,EAAQy2C,GACI,KAARnE,GAAuB,MAARA,EAAc,cAC5B,GAAKwE,GAAyB,KAARxE,EAGtB,GAAKwE,GAAyB,KAARxE,GAGtB,GAAIA,GAAQ7C,IACjBzvC,EAAQy2C,GACI,KAARnE,GAAa,cAJjBzX,EAAI0c,SAAW,GACfv3C,EAAQ42C,QAJR/b,EAAIyc,MAAQ,GACZt3C,EAAQ22C,GAOR,MAEJ,KAAKF,GACH,GACEnE,GAAQ7C,GAAe,KAAR6C,GACN,MAARA,GAAgBlB,EAAUvW,KACzBic,IAA0B,KAARxE,GAAuB,KAARA,GACnC,CAkBA,GA3XW,QADnB4E,GAD0BA,EA4WFhkC,GA3WN1Q,gBACqB,SAAZ00C,GAAkC,SAAZA,GAAkC,WAAZA,GA2W7D5B,GAAgBza,GACJ,KAARyX,GAAyB,MAARA,GAAgBlB,EAAUvW,IAC7CA,EAAIp6B,KAAKjG,KAAK,KAlXP,OADO08C,EAqXKhkC,IApXqB,QAA1BgkC,EAAQ10C,cAqXZ,KAAR8vC,GAAyB,MAARA,GAAgBlB,EAAUvW,IAC7CA,EAAIp6B,KAAKjG,KAAK,KAGE,QAAdqgC,EAAIga,SAAqBha,EAAIp6B,KAAK5F,QAAUs6C,EAAqBjiC,KAC/D2nB,EAAI/N,OAAM+N,EAAI/N,KAAO,IACzB5Z,EAASA,EAAOyI,OAAO,GAAK,KAE9Bkf,EAAIp6B,KAAKjG,KAAK0Y,IAEhBA,EAAS,GACS,QAAd2nB,EAAIga,SAAqBvC,GAAQ7C,GAAe,KAAR6C,GAAuB,KAARA,GACzD,KAAyB,EAAlBzX,EAAIp6B,KAAK5F,QAA8B,KAAhBggC,EAAIp6B,KAAK,IACrCo6B,EAAIp6B,KAAKg3C,QAGD,KAARnF,GACFzX,EAAIyc,MAAQ,GACZt3C,EAAQ22C,IACS,KAARrE,IACTzX,EAAI0c,SAAW,GACfv3C,EAAQ42C,SAGV1jC,GAAUo+B,EAAcgB,EAAMe,GAC9B,MAEJ,KAAKqD,GACS,KAARpE,GACFzX,EAAIyc,MAAQ,GACZt3C,EAAQ22C,IACS,KAARrE,GACTzX,EAAI0c,SAAW,GACfv3C,EAAQ42C,IACCtE,GAAQ7C,IACjB5U,EAAIp6B,KAAK,IAAM6wC,EAAcgB,EAAMf,IACnC,MAEJ,KAAKoF,GACEG,GAAyB,KAARxE,EAGXA,GAAQ7C,IACL,KAAR6C,GAAelB,EAAUvW,GAAMA,EAAIyc,OAAS,MAC1Bzc,EAAIyc,OAAT,KAARhF,EAA0B,MACjBhB,EAAcgB,EAAMf,KALtC1W,EAAI0c,SAAW,GACfv3C,EAAQ42C,IAKR,MAEJ,KAAKA,GACCtE,GAAQ7C,IAAK5U,EAAI0c,UAAYjG,EAAcgB,EAAMS,IAIzDV,MAMAqF,GAAiB,SAAS3H,IAAIlV,GAChC,IAII8c,EAAWV,EAJX1xC,EAAOuM,EAAWzZ,KAAMq/C,GAAgB,OACxCX,EAA0B,EAAnBn8C,UAAUC,OAAaD,UAAU,GAAKnH,GAC7CmkD,EAAY98C,OAAO+/B,GACnB76B,EAAQnJ,EAAiB0O,EAAM,CAAEvM,KAAM,QAE3C,GAAI+9C,IAAStjD,GACX,GAAIsjD,aAAgBW,GAAgBC,EAAYxH,EAAoB4G,QAGlE,GADAE,EAAUJ,GAASc,EAAY,GAAI78C,OAAOi8C,IAC7B,MAAMp8C,UAAUs8C,GAIjC,GADAA,EAAUJ,GAAS72C,EAAO43C,EAAW,KAAMD,GAC9B,MAAMh9C,UAAUs8C,GAC7B,IAAIY,EAAe73C,EAAM63C,aAAe,IAAI7H,EACxC8H,EAAoB7H,EAA6B4H,GACrDC,EAAkBC,mBAAmB/3C,EAAMs3C,OAC3CQ,EAAkBE,UAAY,WAC5Bh4C,EAAMs3C,MAAQx8C,OAAO+8C,IAAiB,MAEnCrjD,IACH+Q,EAAK0yC,KAAOC,GAAahkD,KAAKqR,GAC9BA,EAAK4yC,OAASC,GAAUlkD,KAAKqR,GAC7BA,EAAKsnB,SAAWwrB,GAAYnkD,KAAKqR,GACjCA,EAAKwvC,SAAWuD,GAAYpkD,KAAKqR,GACjCA,EAAKyvC,SAAWuD,GAAYrkD,KAAKqR,GACjCA,EAAKunB,KAAO0rB,GAAQtkD,KAAKqR,GACzBA,EAAKkzC,SAAWC,GAAYxkD,KAAKqR,GACjCA,EAAKwmB,KAAO4sB,GAAQzkD,KAAKqR,GACzBA,EAAKqzC,SAAWC,GAAY3kD,KAAKqR,GACjCA,EAAKquB,OAASklB,GAAU5kD,KAAKqR,GAC7BA,EAAKsyC,aAAekB,GAAgB7kD,KAAKqR,GACzCA,EAAKyzC,KAAOC,GAAQ/kD,KAAKqR,KAIzB2zC,GAAexB,GAAez6C,UAE9Bi7C,GAAe,WACjB,IAAIrd,EAAMsV,EAAoB93C,MAC1Bw8C,EAASha,EAAIga,OAEbG,EAAWna,EAAIma,SACfloB,EAAO+N,EAAI/N,KACXf,EAAO8O,EAAI9O,KACXtrB,EAAOo6B,EAAIp6B,KACX62C,EAAQzc,EAAIyc,MACZC,EAAW1c,EAAI0c,SACfze,EAAS+b,EAAS,IAYtB,OAXa,OAAT/nB,GACFgM,GAAU,KACNgc,EAAoBja,KACtB/B,GAXW+B,EAAIka,UAWOC,EAAW,IAAMA,EAAW,IAAM,KAE1Dlc,GAAUyZ,EAAczlB,GACX,OAATf,IAAe+M,GAAU,IAAM/M,IAChB,QAAV8oB,IAAkB/b,GAAU,MACvCA,GAAU+B,EAAIqa,iBAAmBz0C,EAAK,GAAKA,EAAK5F,OAAS,IAAM4F,EAAKtB,KAAK,KAAO,GAClE,OAAVm4C,IAAgBxe,GAAU,IAAMwe,GACnB,OAAbC,IAAmBze,GAAU,IAAMye,GAChCze,GAGLsf,GAAY,WACd,IAAIvd,EAAMsV,EAAoB93C,MAC1Bw8C,EAASha,EAAIga,OACb9oB,EAAO8O,EAAI9O,KACf,GAAc,QAAV8oB,EAAkB,IACpB,OAAO,IAAI9E,IAAI8E,EAAOp0C,KAAK,IAAI03C,OAC/B,MAAOz6C,GACP,MAAO,OAET,MAAc,QAAVm3C,GAAqBzD,EAAUvW,GAC5Bga,EAAS,MAAQtC,EAAc1X,EAAI/N,OAAkB,OAATf,EAAgB,IAAMA,EAAO,IADhC,QAI9CssB,GAAc,WAChB,OAAOlI,EAAoB93C,MAAMw8C,OAAS,KAGxCyD,GAAc,WAChB,OAAOnI,EAAoB93C,MAAM08C,UAG/BwD,GAAc,WAChB,OAAOpI,EAAoB93C,MAAM28C,UAG/BwD,GAAU,WACZ,IAAI3d,EAAMsV,EAAoB93C,MAC1By0B,EAAO+N,EAAI/N,KACXf,EAAO8O,EAAI9O,KACf,OAAgB,OAATe,EAAgB,GACV,OAATf,EAAgBwmB,EAAczlB,GAC9BylB,EAAczlB,GAAQ,IAAMf,GAG9B2sB,GAAc,WAChB,IAAI5rB,EAAOqjB,EAAoB93C,MAAMy0B,KACrC,OAAgB,OAATA,EAAgB,GAAKylB,EAAczlB,IAGxC6rB,GAAU,WACZ,IAAI5sB,EAAOokB,EAAoB93C,MAAM0zB,KACrC,OAAgB,OAATA,EAAgB,GAAKjxB,OAAOixB,IAGjC8sB,GAAc,WAChB,IAAIhe,EAAMsV,EAAoB93C,MAC1BoI,EAAOo6B,EAAIp6B,KACf,OAAOo6B,EAAIqa,iBAAmBz0C,EAAK,GAAKA,EAAK5F,OAAS,IAAM4F,EAAKtB,KAAK,KAAO,IAG3E25C,GAAY,WACd,IAAIxB,EAAQnH,EAAoB93C,MAAMi/C,MACtC,OAAOA,EAAQ,IAAMA,EAAQ,IAG3ByB,GAAkB,WACpB,OAAO5I,EAAoB93C,MAAMw/C,cAG/BoB,GAAU,WACZ,IAAI1B,EAAWpH,EAAoB93C,MAAMk/C,SACzC,OAAOA,EAAW,IAAMA,EAAW,IAGjC4B,GAAqB,SAAUrzB,EAAQ/qB,GACzC,MAAO,CAAE3C,IAAK0tB,EAAQhvB,IAAKiE,EAAQC,cAAc,EAAM1B,YAAY,IAyHrE,GAtHI9E,GACFgF,EAAiB0/C,GAAc,CAG7BjB,KAAMkB,GAAmBjB,GAAc,SAAUD,GAC/C,IAAIpd,EAAMsV,EAAoB93C,MAC1Bu/C,EAAY98C,OAAOm9C,GACnBhB,EAAUJ,GAAShc,EAAK+c,GAC5B,GAAIX,EAAS,MAAMt8C,UAAUs8C,GAC7BhH,EAA6BpV,EAAIgd,cAAcE,mBAAmBld,EAAIyc,SAIxEa,OAAQgB,GAAmBf,IAG3BvrB,SAAUssB,GAAmBd,GAAa,SAAUxrB,GAClD,IAAIgO,EAAMsV,EAAoB93C,MAC9Bw+C,GAAShc,EAAK//B,OAAO+xB,GAAY,IAAK2oB,MAIxCT,SAAUoE,GAAmBb,GAAa,SAAUvD,GAClD,IAAIla,EAAMsV,EAAoB93C,MAC1Bu0C,EAAa+C,EAAU70C,OAAOi6C,IAClC,IAAIE,EAA+Bpa,GAAnC,CACAA,EAAIka,SAAW,GACf,IAAK,IAAIhhD,EAAI,EAAGA,EAAI64C,EAAW/xC,OAAQ9G,IACrC8mC,EAAIka,UAAYzD,EAAc1E,EAAW74C,GAAI2/C,MAKjDsB,SAAUmE,GAAmBZ,GAAa,SAAUvD,GAClD,IAAIna,EAAMsV,EAAoB93C,MAC1Bu0C,EAAa+C,EAAU70C,OAAOk6C,IAClC,IAAIC,EAA+Bpa,GAAnC,CACAA,EAAIma,SAAW,GACf,IAAK,IAAIjhD,EAAI,EAAGA,EAAI64C,EAAW/xC,OAAQ9G,IACrC8mC,EAAIma,UAAY1D,EAAc1E,EAAW74C,GAAI2/C,MAKjD5mB,KAAMqsB,GAAmBX,GAAS,SAAU1rB,GAC1C,IAAI+N,EAAMsV,EAAoB93C,MAC1BwiC,EAAIqa,kBACR2B,GAAShc,EAAK//B,OAAOgyB,GAAOopB,MAI9BuC,SAAUU,GAAmBT,GAAa,SAAUD,GAClD,IAAI5d,EAAMsV,EAAoB93C,MAC1BwiC,EAAIqa,kBACR2B,GAAShc,EAAK//B,OAAO29C,GAAWtC,MAIlCpqB,KAAMotB,GAAmBR,GAAS,SAAU5sB,GAC1C,IAAI8O,EAAMsV,EAAoB93C,MAC1B48C,EAA+Bpa,KAEvB,KADZ9O,EAAOjxB,OAAOixB,IACE8O,EAAI9O,KAAO,KACtB8qB,GAAShc,EAAK9O,EAAMqqB,OAI3BwC,SAAUO,GAAmBN,GAAa,SAAUD,GAClD,IAAI/d,EAAMsV,EAAoB93C,MAC1BwiC,EAAIqa,mBACRra,EAAIp6B,KAAO,GACXo2C,GAAShc,EAAK+d,EAAW,GAAIpC,OAI/B5iB,OAAQulB,GAAmBL,GAAW,SAAUllB,GAC9C,IAAIiH,EAAMsV,EAAoB93C,MAEhB,KADdu7B,EAAS94B,OAAO84B,IAEdiH,EAAIyc,MAAQ,MAER,KAAO1jB,EAAOjY,OAAO,KAAIiY,EAASA,EAAOx1B,MAAM,IACnDy8B,EAAIyc,MAAQ,GACZT,GAAShc,EAAKjH,EAAQ+iB,KAExB1G,EAA6BpV,EAAIgd,cAAcE,mBAAmBld,EAAIyc,SAIxEO,aAAcsB,GAAmBJ,IAGjCC,KAAMG,GAAmBF,GAAS,SAAUD,GAC1C,IAAIne,EAAMsV,EAAoB93C,MAElB,KADZ2gD,EAAOl+C,OAAOk+C,KAKV,KAAOA,EAAKr9B,OAAO,KAAIq9B,EAAOA,EAAK56C,MAAM,IAC7Cy8B,EAAI0c,SAAW,GACfV,GAAShc,EAAKme,EAAMpC,KALlB/b,EAAI0c,SAAW,SAYvB1hD,EAASqjD,GAAc,SAAU,SAAS7+B,SACxC,OAAO69B,GAAahkD,KAAKmE,OACxB,CAAEiB,YAAY,IAIjBzD,EAASqjD,GAAc,WAAY,SAASj+C,WAC1C,OAAOi9C,GAAahkD,KAAKmE,OACxB,CAAEiB,YAAY,IAEbw2C,EAAW,CACb,IAAIsJ,GAAwBtJ,EAAUuJ,gBAClCC,GAAwBxJ,EAAUyJ,gBAIlCH,IAAuBvjD,EAAS6hD,GAAgB,kBAAmB,SAAS2B,gBAAgBG,GAC9F,OAAOJ,GAAsB/8C,MAAMyzC,EAAWl1C,aAK5C0+C,IAAuBzjD,EAAS6hD,GAAgB,kBAAmB,SAAS6B,gBAAgB1e,GAC9F,OAAOye,GAAsBj9C,MAAMyzC,EAAWl1C,aAIlDvE,EAAeqhD,GAAgB,OAE/BtjD,EAAE,CAAEC,QAAQ,EAAM+G,QAASs0C,EAAgBr0C,MAAO7G,GAAe,CAC/Du7C,IAAK2H,MAMD,SAAU5jD,EAAQD,EAASH,GAEjC,IAAIiB,EAAQjB,EAAoB,GAC5BwC,EAAkBxC,EAAoB,IACtCa,EAAUb,EAAoB,IAE9BwY,EAAWhW,EAAgB,YAE/BpC,EAAOD,SAAWc,EAAM,WACtB,IAAIkmC,EAAM,IAAIkV,IAAI,gBAAiB,YAC/B8H,EAAehd,EAAIgd,aACnBt9C,EAAS,GAMb,OALAsgC,EAAI+d,SAAW,QACff,EAAarhD,QAAQ,SAAU8B,EAAOe,GACpCw+C,EAAqB,UAAE,KACvBt9C,GAAUlB,EAAMf,IAEV/D,IAAYsmC,EAAIxgB,SAClBw9B,EAAa/mC,MACD,2BAAb+pB,EAAIod,MACsB,MAA1BJ,EAAaz/C,IAAI,MACuB,QAAxC0C,OAAO,IAAIk1C,gBAAgB,WAC1B6H,EAAa3rC,IAEsB,MAApC,IAAI6jC,IAAI,eAAegF,UACsC,MAA7D,IAAI/E,gBAAgB,IAAIA,gBAAgB,QAAQ53C,IAAI,MAEpB,eAAhC,IAAI23C,IAAI,eAAejjB,MAEQ,YAA/B,IAAIijB,IAAI,cAAciJ,MAEX,SAAXz+C,GAEwC,MAAxC,IAAIw1C,IAAI,WAAYt8C,IAAWq5B,QAMhC,SAAUh5B,EAAQD,EAASH,GAKjC,IAAI+lD,EAAS,WASTC,EAAgB,eAChBC,EAAkB,yBAClBC,EAAiB,kDAEjBh4C,EAAQxE,KAAKwE,MACbi4C,EAAqB/+C,OAAO+4B,aAoC5BimB,EAAe,SAAUC,GAG3B,OAAOA,EAAQ,GAAK,IAAMA,EAAQ,KAOhCC,EAAQ,SAAUC,EAAOC,EAAWC,GACtC,IAAIzyC,EAAI,EAGR,IAFAuyC,EAAQE,EAAYv4C,EAAMq4C,EAzDjB,KAyDiCA,GAAS,EACnDA,GAASr4C,EAAMq4C,EAAQC,GACRE,IAARH,EAAmCvyC,GA/DjC,GAgEPuyC,EAAQr4C,EAAMq4C,EArDElD,IAuDlB,OAAOn1C,EAAM8F,EAAI,GAAsBuyC,GAASA,EA/DvC,MAuEPI,EAAS,SAAUh8C,GACrB,IAYItK,EAAGumD,EAZHxhB,EAAS,GAMTyhB,GAHJl8C,EAxDe,SAAU5C,GAIzB,IAHA,IAAIq9B,EAAS,GACTrN,EAAU,EACV5wB,EAASY,EAAOZ,OACb4wB,EAAU5wB,GAAQ,CACvB,IAAIvC,EAAQmD,EAAOmgB,WAAW6P,KAC9B,GAAa,OAATnzB,GAAmBA,GAAS,OAAUmzB,EAAU5wB,EAAQ,CAE1D,IAAI2/C,EAAQ/+C,EAAOmgB,WAAW6P,KACN,QAAX,MAAR+uB,GACH1hB,EAAOt+B,OAAe,KAARlC,IAAkB,KAAe,KAARkiD,GAAiB,QAIxD1hB,EAAOt+B,KAAKlC,GACZmzB,UAGFqN,EAAOt+B,KAAKlC,GAGhB,OAAOwgC,EAmCC2hB,CAAWp8C,IAGKxD,OAGpBiN,EA9ES,IA+ETmyC,EAAQ,EACRS,EAjFY,GAqFhB,IAAK3mD,EAAI,EAAGA,EAAIsK,EAAMxD,OAAQ9G,KAC5BumD,EAAej8C,EAAMtK,IACF,KACjB+kC,EAAOt+B,KAAKq/C,EAAmBS,IAInC,IAAIK,EAAc7hB,EAAOj+B,OACrB+/C,EAAiBD,EAQrB,IALIA,GACF7hB,EAAOt+B,KA/FK,KAmGPogD,EAAiBL,GAAa,CAEnC,IAAIpmD,EAAIslD,EACR,IAAK1lD,EAAI,EAAGA,EAAIsK,EAAMxD,OAAQ9G,IAER+T,IADpBwyC,EAAej8C,EAAMtK,KACIumD,EAAenmD,IACtCA,EAAImmD,GAKR,IAAIO,EAAwBD,EAAiB,EAC7C,GAAIzmD,EAAI2T,EAAIlG,GAAO63C,EAASQ,GAASY,GACnC,MAAMroC,WAAWonC,GAMnB,IAHAK,IAAU9lD,EAAI2T,GAAK+yC,EACnB/yC,EAAI3T,EAECJ,EAAI,EAAGA,EAAIsK,EAAMxD,OAAQ9G,IAAK,CAEjC,IADAumD,EAAej8C,EAAMtK,IACF+T,KAAOmyC,EAAQR,EAChC,MAAMjnC,WAAWonC,GAEnB,GAAIU,GAAgBxyC,EAAG,CAGrB,IADA,IAAIqxB,EAAI8gB,EACCvyC,EArIN,IAqIoCA,GArIpC,GAqI+C,CAChD,IAAIiZ,EAAIjZ,GAAKgzC,EArIZ,EAqIgCA,EApIhC,IAoI2BhzC,EApI3B,GAoIqDA,EAAIgzC,EAC1D,GAAIvhB,EAAIxY,EAAG,MACX,IAAIm6B,EAAU3hB,EAAIxY,EACdo6B,EAzIH,GAyIuBp6B,EACxBmY,EAAOt+B,KAAKq/C,EAAmBC,EAAan5B,EAAIm6B,EAAUC,KAC1D5hB,EAAIv3B,EAAMk5C,EAAUC,GAGtBjiB,EAAOt+B,KAAKq/C,EAAmBC,EAAa3gB,KAC5CuhB,EAAOV,EAAMC,EAAOY,EAAuBD,GAAkBD,GAC7DV,EAAQ,IACNW,KAIJX,IACAnyC,EAEJ,OAAOgxB,EAAO35B,KAAK,KAGrBrL,EAAOD,QAAU,SAAUwK,GACzB,IAEItK,EAAGinD,EAFHC,EAAU,GACVC,EAAS78C,EAAMmE,cAAcD,QAAQo3C,EAAiB,KAAUx7C,MAAM,KAE1E,IAAKpK,EAAI,EAAGA,EAAImnD,EAAOrgD,OAAQ9G,IAE7BknD,EAAQzgD,KAAKk/C,EAAcz5C,KAD3B+6C,EAAQE,EAAOnnD,IAC0B,OAASsmD,EAAOW,GAASA,GAEpE,OAAOC,EAAQ97C,KAAK,OAMhB,SAAUrL,EAAQD,EAASH,GAKjCA,EAAoB,KACpB,IAAIU,EAAIV,EAAoB,GACxBY,EAAaZ,EAAoB,IACjCg8C,EAAiBh8C,EAAoB,KACrCmC,EAAWnC,EAAoB,IAC/Bme,EAAcne,EAAoB,KAClC2C,EAAiB3C,EAAoB,IACrC8Z,EAA4B9Z,EAAoB,KAChD4C,EAAsB5C,EAAoB,IAC1Coe,EAAape,EAAoB,KACjCynD,EAASznD,EAAoB,IAC7BoR,EAAOpR,EAAoB,IAC3BwK,EAAUxK,EAAoB,KAC9BqB,EAAWrB,EAAoB,IAC/BoB,EAAWpB,EAAoB,IAC/BoI,EAASpI,EAAoB,IAC7ByB,EAA2BzB,EAAoB,GAC/C2vC,EAAc3vC,EAAoB,KAClC6X,EAAoB7X,EAAoB,KACxCwC,EAAkBxC,EAAoB,IAEtC60B,EAASj0B,EAAW,SACpB8mD,EAAU9mD,EAAW,WACrB4X,EAAWhW,EAAgB,YAC3BmlD,EAAoB,kBACpBC,EAA6BD,EAAoB,WACjDxkD,EAAmBP,EAAoBQ,IACvCykD,EAAyBjlD,EAAoBU,UAAUqkD,GACvD57B,EAA2BnpB,EAAoBU,UAAUskD,GAEzDE,EAAO,MACPC,EAAY/4C,MAAM,GAElBg5C,EAAkB,SAAUhoC,GAC9B,OAAO+nC,EAAU/nC,EAAQ,KAAO+nC,EAAU/nC,EAAQ,GAAKgQ,OAAO,qBAAuBhQ,EAAQ,KAAM,QAGjGioC,EAAgB,SAAUC,GAC5B,IACE,OAAOC,mBAAmBD,GAC1B,MAAOl+C,GACP,OAAOk+C,IAIPE,EAAc,SAAU5iD,GAC1B,IAAIqB,EAASrB,EAAGqJ,QAAQi5C,EAAM,KAC1B9nC,EAAQ,EACZ,IACE,OAAOmoC,mBAAmBthD,GAC1B,MAAOmD,GACP,KAAOgW,GACLnZ,EAASA,EAAOgI,QAAQm5C,EAAgBhoC,KAAUioC,GAEpD,OAAOphD,IAIPuL,EAAO,eAEPvD,EAAU,CACZw5C,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,MAAO,KAGLpgD,EAAW,SAAUmM,GACvB,OAAO5F,EAAQ4F,IAGbk0C,EAAY,SAAUnjD,GACxB,OAAOm7C,mBAAmBn7C,GAAIqJ,QAAQuD,EAAM9J,IAG1CsgD,EAAoB,SAAU/hD,EAAQ+8C,GACxC,GAAIA,EAIF,IAHA,IAEIpd,EAAW/a,EAFXsQ,EAAa6nB,EAAMn5C,MAAM,KACzB/B,EAAQ,EAELA,EAAQqzB,EAAW50B,SACxBq/B,EAAYzK,EAAWrzB,MACTvB,SACZskB,EAAQ+a,EAAU/7B,MAAM,KACxB5D,EAAOC,KAAK,CACVnB,IAAKyiD,EAAY38B,EAAMs4B,SACvBn/C,MAAOwjD,EAAY38B,EAAMhgB,KAAK,UAOpC44C,EAAqB,SAAUT,GACjCj/C,KAAKwW,QAAQhU,OAAS,EACtByhD,EAAkBjkD,KAAKwW,QAASyoC,IAG9BiF,EAA0B,SAAUC,EAAQC,GAC9C,GAAID,EAASC,EAAU,MAAM9hD,UAAU,yBAGrC+hD,EAA0BlvC,EAA0B,SAASo1B,SAAS+Z,EAAQrvC,GAChFzW,EAAiBwB,KAAM,CACrBW,KAAMsiD,EACN74C,SAAU4gC,EAAYkY,EAAuBoB,GAAQ9tC,SACrDvB,KAAMA,KAEP,WAAY,SAAS5B,OACtB,IAAI1L,EAAQyf,EAAyBpnB,MACjCiV,EAAOtN,EAAMsN,KACb7B,EAAOzL,EAAMyC,SAASiJ,OACtByT,EAAQ1T,EAAKnT,MAGf,OAFGmT,EAAKK,OACRL,EAAKnT,MAAiB,SAATgV,EAAkB6R,EAAM9lB,IAAe,WAATiU,EAAoB6R,EAAM7mB,MAAQ,CAAC6mB,EAAM9lB,IAAK8lB,EAAM7mB,QACxFmT,IAKPmxC,EAA6B,SAAS5M,kBACxCl+B,EAAWzZ,KAAMukD,EAA4BvB,GAC7C,IAGIxvC,EAAgBpJ,EAAUiJ,EAAMD,EAAMoxC,EAAeC,EAAW3kC,EAAOgb,EAAQ95B,EAH/E2iB,EAA0B,EAAnBphB,UAAUC,OAAaD,UAAU,GAAKnH,GAE7Cob,EAAU,GAUd,GAPAhY,EAJWwB,KAIY,CACrBW,KAAMqiD,EACNxsC,QAASA,EACTmpC,UAAW,aACXD,mBAAoBA,IAGlB/7B,IAASvoB,GACX,GAAIqB,EAASknB,GAEX,GAA8B,mBAD9BnQ,EAAiBN,EAAkByQ,IAIjC,IADAtQ,GADAjJ,EAAWoJ,EAAe3X,KAAK8nB,IACftQ,OACPD,EAAOC,EAAKxX,KAAKuO,IAAWqJ,MAAM,CAGzC,IACGqM,GAFH2kC,GADAD,EAAgBxZ,EAAYtuC,EAAS0W,EAAKnT,SAChBoT,MAELxX,KAAK2oD,IAAgB/wC,OACvCqnB,EAAS2pB,EAAU5oD,KAAK2oD,IAAgB/wC,OACxCgxC,EAAU5oD,KAAK2oD,GAAe/wC,KAC/B,MAAMnR,UAAU,mCAClBkU,EAAQrU,KAAK,CAAEnB,IAAK8e,EAAM7f,MAAQ,GAAIA,MAAO66B,EAAO76B,MAAQ,UAEzD,IAAKe,KAAO2iB,EAAUm/B,EAAOn/B,EAAM3iB,IAAMwV,EAAQrU,KAAK,CAAEnB,IAAKA,EAAKf,MAAO0jB,EAAK3iB,GAAO,UAE5FijD,EAAkBztC,EAAyB,iBAATmN,EAAuC,MAAnBA,EAAKL,OAAO,GAAaK,EAAK5d,MAAM,GAAK4d,EAAOA,EAAO,KAK/G+gC,EAA2BH,EAA2B3/C,UAE1D4U,EAAYkrC,EAA0B,CAGpCC,OAAQ,SAASA,OAAO9hD,EAAM5C,GAC5BikD,EAAwB3hD,UAAUC,OAAQ,GAC1C,IAAImF,EAAQu7C,EAAuBljD,MACnC2H,EAAM6O,QAAQrU,KAAK,CAAEnB,IAAK6B,EAAO,GAAI5C,MAAOA,EAAQ,KACpD0H,EAAMg4C,aAIR14B,SAAU,SAAUpkB,GAClBqhD,EAAwB3hD,UAAUC,OAAQ,GAK1C,IAJA,IAAImF,EAAQu7C,EAAuBljD,MAC/BwW,EAAU7O,EAAM6O,QAChBxV,EAAM6B,EAAO,GACbkB,EAAQ,EACLA,EAAQyS,EAAQhU,QACjBgU,EAAQzS,GAAO/C,MAAQA,EAAKwV,EAAQuC,OAAOhV,EAAO,GACjDA,IAEP4D,EAAMg4C,aAIR5/C,IAAK,SAASA,IAAI8C,GAChBqhD,EAAwB3hD,UAAUC,OAAQ,GAI1C,IAHA,IAAIgU,EAAU0sC,EAAuBljD,MAAMwW,QACvCxV,EAAM6B,EAAO,GACbkB,EAAQ,EACLA,EAAQyS,EAAQhU,OAAQuB,IAC7B,GAAIyS,EAAQzS,GAAO/C,MAAQA,EAAK,OAAOwV,EAAQzS,GAAO9D,MAExD,OAAO,MAIT2kD,OAAQ,SAASA,OAAO/hD,GACtBqhD,EAAwB3hD,UAAUC,OAAQ,GAK1C,IAJA,IAAIgU,EAAU0sC,EAAuBljD,MAAMwW,QACvCxV,EAAM6B,EAAO,GACbX,EAAS,GACT6B,EAAQ,EACLA,EAAQyS,EAAQhU,OAAQuB,IACzByS,EAAQzS,GAAO/C,MAAQA,GAAKkB,EAAOC,KAAKqU,EAAQzS,GAAO9D,OAE7D,OAAOiC,GAIT3F,IAAK,SAASA,IAAIsG,GAChBqhD,EAAwB3hD,UAAUC,OAAQ,GAI1C,IAHA,IAAIgU,EAAU0sC,EAAuBljD,MAAMwW,QACvCxV,EAAM6B,EAAO,GACbkB,EAAQ,EACLA,EAAQyS,EAAQhU,QACrB,GAAIgU,EAAQzS,KAAS/C,MAAQA,EAAK,OAAO,EAE3C,OAAO,GAITvC,IAAK,SAASA,IAAIoE,EAAM5C,GACtBikD,EAAwB3hD,UAAUC,OAAQ,GAQ1C,IAPA,IAMIskB,EANAnf,EAAQu7C,EAAuBljD,MAC/BwW,EAAU7O,EAAM6O,QAChBquC,GAAQ,EACR7jD,EAAM6B,EAAO,GACbsD,EAAMlG,EAAQ,GACd8D,EAAQ,EAELA,EAAQyS,EAAQhU,OAAQuB,KAC7B+iB,EAAQtQ,EAAQzS,IACN/C,MAAQA,IACZ6jD,EAAOruC,EAAQuC,OAAOhV,IAAS,IAEjC8gD,GAAQ,EACR/9B,EAAM7mB,MAAQkG,IAIf0+C,GAAOruC,EAAQrU,KAAK,CAAEnB,IAAKA,EAAKf,MAAOkG,IAC5CwB,EAAMg4C,aAIRlnC,KAAM,SAASA,OACb,IAIIqO,EAAOg+B,EAAcC,EAJrBp9C,EAAQu7C,EAAuBljD,MAC/BwW,EAAU7O,EAAM6O,QAEhBzQ,EAAQyQ,EAAQzQ,QAGpB,IAAKg/C,EADLvuC,EAAQhU,OAAS,EACIuiD,EAAah/C,EAAMvD,OAAQuiD,IAAc,CAE5D,IADAj+B,EAAQ/gB,EAAMg/C,GACTD,EAAe,EAAGA,EAAeC,EAAYD,IAChD,GAAgCh+B,EAAM9lB,IAAlCwV,EAAQsuC,GAAc9jD,IAAiB,CACzCwV,EAAQuC,OAAO+rC,EAAc,EAAGh+B,GAChC,MAGAg+B,IAAiBC,GAAYvuC,EAAQrU,KAAK2kB,GAEhDnf,EAAMg4C,aAGRxhD,QAAS,SAASA,QAAQ2tC,GAKxB,IAJA,IAGIhlB,EAHAtQ,EAAU0sC,EAAuBljD,MAAMwW,QACvCpJ,EAAgBX,EAAKq/B,EAA6B,EAAnBvpC,UAAUC,OAAaD,UAAU,GAAKnH,GAAW,GAChF2I,EAAQ,EAELA,EAAQyS,EAAQhU,QAErB4K,GADA0Z,EAAQtQ,EAAQzS,MACI9D,MAAO6mB,EAAM9lB,IAAKhB,OAI1CsB,KAAM,SAASA,OACb,OAAO,IAAI+iD,EAAwBrkD,KAAM,SAG3CuW,OAAQ,SAASA,SACf,OAAO,IAAI8tC,EAAwBrkD,KAAM,WAG3CwW,QAAS,SAASA,UAChB,OAAO,IAAI6tC,EAAwBrkD,KAAM,aAE1C,CAAEiB,YAAY,IAGjBzD,EAASknD,EAA0B7wC,EAAU6wC,EAAyBluC,SAItEhZ,EAASknD,EAA0B,WAAY,SAAS9hD,WAKtD,IAJA,IAGIkkB,EAHAtQ,EAAU0sC,EAAuBljD,MAAMwW,QACvCtU,EAAS,GACT6B,EAAQ,EAELA,EAAQyS,EAAQhU,QACrBskB,EAAQtQ,EAAQzS,KAChB7B,EAAOC,KAAK6hD,EAAUl9B,EAAM9lB,KAAO,IAAMgjD,EAAUl9B,EAAM7mB,QACzD,OAAOiC,EAAO4E,KAAK,MACpB,CAAE7F,YAAY,IAEjBjD,EAAeumD,EAA4BvB,GAE3CjnD,EAAE,CAAEC,QAAQ,EAAM+G,QAASs0C,GAAkB,CAC3CM,gBAAiB4M,IAKdlN,GAAmC,mBAAVnnB,GAA0C,mBAAX6yB,GAC3DhnD,EAAE,CAAEC,QAAQ,EAAMiF,YAAY,EAAM8B,QAAQ,GAAQ,CAClDiwB,MAAO,SAASA,MAAMhtB,GACpB,IACI2d,EAAMqhC,EAAMC,EADZnhD,EAAO,CAACkC,GAkBV,OAhBqB,EAAnBzD,UAAUC,SAER/F,EADJknB,EAAOphB,UAAU,KAGXsD,EADJm/C,EAAOrhC,EAAKqhC,QACUhC,KACpBiC,EAAUthC,EAAKshC,QAAU,IAAIlC,EAAQp/B,EAAKshC,SAAW,IAAIlC,GAC5CxmD,IAAI,iBACf0oD,EAAQxmD,IAAI,eAAgB,mDAE9BklB,EAAOlgB,EAAOkgB,EAAM,CAClBqhC,KAAMloD,EAAyB,EAAG2F,OAAOuiD,IACzCC,QAASnoD,EAAyB,EAAGmoD,MAI3CnhD,EAAK3B,KAAKwhB,IACHuM,EAAOlsB,MAAMhE,KAAM8D,MAKlCrI,EAAOD,QAAU,CACfm8C,gBAAiB4M,EACjB1M,SAAUqL,IAMN,SAAUznD,EAAQD,EAASH,GAIzBA,EAAoB,EAI5BU,CAAE,CAAEkH,OAAQ,MAAOmM,OAAO,EAAMnO,YAAY,GAAQ,CAClD+gB,OAAQ,SAASA,SACf,OAAO01B,IAAI9yC,UAAUhC,SAAS/G,KAAKmE,WAvygB7B3E,oBAAoBuS,EAAIrS,EAGxBF,oBAAoB6pD,EAAI,SAAS1pD,EAASqH,EAAM4qB,GAC3CpyB,oBAAoB8pD,EAAE3pD,EAASqH,IAClChE,OAAOkC,eAAevF,EAASqH,EAAM,CAAE5B,YAAY,EAAMlB,IAAK0tB,KAKhEpyB,oBAAoB43B,EAAI,SAASz3B,GACX,oBAAXuD,QAA0BA,OAAOqmD,aAC1CvmD,OAAOkC,eAAevF,EAASuD,OAAOqmD,YAAa,CAAEnlD,MAAO,WAE7DpB,OAAOkC,eAAevF,EAAS,aAAc,CAAEyE,OAAO,KAQvD5E,oBAAoBitB,EAAI,SAASroB,EAAO6H,GAEvC,GADU,EAAPA,IAAU7H,EAAQ5E,oBAAoB4E,IAC/B,EAAP6H,EAAU,OAAO7H,EACpB,GAAW,EAAP6H,GAA8B,iBAAV7H,GAAsBA,GAASA,EAAMolD,WAAY,OAAOplD,EAChF,IAAIqlD,EAAKzmD,OAAO4E,OAAO,MAGvB,GAFApI,oBAAoB43B,EAAEqyB,GACtBzmD,OAAOkC,eAAeukD,EAAI,UAAW,CAAErkD,YAAY,EAAMhB,MAAOA,IACtD,EAAP6H,GAA4B,iBAAT7H,EAAmB,IAAI,IAAIe,KAAOf,EAAO5E,oBAAoB6pD,EAAEI,EAAItkD,EAAK,SAASA,GAAO,OAAOf,EAAMe,IAAQyL,KAAK,KAAMzL,IAC9I,OAAOskD,GAIRjqD,oBAAoBoU,EAAI,SAAShU,GAChC,IAAIgyB,EAAShyB,GAAUA,EAAO4pD,WAC7B,SAASE,aAAe,OAAO9pD,EAAgB,YAC/C,SAAS+pD,mBAAqB,OAAO/pD,GAEtC,OADAJ,oBAAoB6pD,EAAEz3B,EAAQ,IAAKA,GAC5BA,GAIRpyB,oBAAoB8pD,EAAI,SAAS3+C,EAAQiZ,GAAY,OAAO5gB,OAAO+F,UAAUwB,eAAevK,KAAK2K,EAAQiZ,IAGzGpkB,oBAAoBk/B,EAAI,GAIjBl/B,oBAAoBA,oBAAoBwxB,EAAI,GAnF5D","file":"minified.js"} \ No newline at end of file diff --git a/editor/external/deparam/deparam.esm.js b/editor/external/deparam/deparam.esm.js new file mode 100644 index 00000000..4846b7d4 --- /dev/null +++ b/editor/external/deparam/deparam.esm.js @@ -0,0 +1,102 @@ +/** + * Created by alexey2baranov on 28.01.17. + */ +/* + An extraction of the deparam method from Ben Alman's jQuery BBQ + http://benalman.com/projects/jquery-bbq-plugin/ + */ + +const coerce_types = {'true': !0, 'false': !1, 'null': null}; + +function deparam (params, coerce) { + // console.log(params) + const obj = {}; + + // Iterate over all name=value pairs. + params.replace(/\+/g, ' ').split('&').forEach(function (v) { + const param = v.split('='); + + let + key = decodeURIComponent(param[0]), + // If key is more complex than 'foo', like 'a[]' or 'a[b][c]', split it + // into its component parts. + keys = key.split(']['), + keys_last = keys.length - 1; + + // If the first keys part contains [ and the last ends with ], then [] + // are correctly balanced. + if (/\[/.test(keys[0]) && /\]$/.test(keys[keys_last])) { + // Remove the trailing ] from the last keys part. + keys[keys_last] = keys[keys_last].replace(/\]$/, ''); + + // Split first keys part into two parts on the [ and add them back onto + // the beginning of the keys array. + keys = keys.shift().split('[').concat(keys); + + keys_last = keys.length - 1; + } else { + // Basic 'foo' style key. + keys_last = 0; + } + + // Are we dealing with a name=value pair, or just a name? + if (param.length >= 2) { + let val = decodeURIComponent(param.slice(1).join('=')); + + // Coerce values. + if (coerce) { + val = val && !isNaN(val) ? +val // number + : val === 'undefined' ? undefined // undefined + : coerce_types[val] !== undefined ? coerce_types[val] // true, false, null + : val; // string + } + + if (keys_last) { + let cur = obj; + // Complex key, build deep object structure based on a few rules: + // * The 'cur' pointer starts at the object top-level. + // * [] = array push (n is set to array length), [n] = array if n is + // numeric, otherwise object. + // * If at the last keys part, set the value. + // * For each keys part, if the current level is undefined create an + // object or array based on the type of the next keys part. + // * Move the 'cur' pointer to the next level. + // * Rinse & repeat. + for (let i = 0; i <= keys_last; i++) { + key = keys[i] === '' ? cur.length : keys[i]; + cur = cur[key] = i < keys_last + ? cur[key] || (keys[i + 1] && isNaN(keys[i + 1]) ? {} : []) + : val; + } + + } else { + // Simple key, even simpler rules, since only scalars and shallow + // arrays are allowed. + + if (Array.isArray(obj[key])) { + // val is already an array, so push on the next value. + obj[key].push(val); + + } else if (obj[key] !== undefined) { + // val isn't an array, but since a second value has been specified, + // convert val into an array. + obj[key] = [obj[key], val]; + + } else { + // val is a scalar. + obj[key] = val; + } + } + + } else if (key) { + // No value was defined, so set something meaningful. + obj[key] = coerce + ? undefined + : ''; + } + }); + + return obj; +} + +export default deparam; diff --git a/editor/external/dom-polyfill/dom-polyfill.js b/editor/external/dom-polyfill/dom-polyfill.js index 8fb355ae..839e4968 100644 --- a/editor/external/dom-polyfill/dom-polyfill.js +++ b/editor/external/dom-polyfill/dom-polyfill.js @@ -89,6 +89,7 @@ const ChildNode = { viableNextSibling = viableNextSibling.nextSibling; } const node = convertNodesIntoANode(nodes); + // eslint-disable-next-line unicorn/prefer-modern-dom-apis parent.insertBefore(node, viableNextSibling); }, replaceWith (...nodes) { @@ -103,6 +104,7 @@ const ChildNode = { if (this.parentNode === parent) { parent.replaceChild(node, this); } else { + // eslint-disable-next-line unicorn/prefer-modern-dom-apis parent.insertBefore(node, viableNextSibling); } }, diff --git a/editor/external/dynamic-import-polyfill/importModule.js b/editor/external/dynamic-import-polyfill/importModule.js index 3b453ecf..cc7fd1bb 100644 --- a/editor/external/dynamic-import-polyfill/importModule.js +++ b/editor/external/dynamic-import-polyfill/importModule.js @@ -1,8 +1,8 @@ -// MIT License -// From: https://github.com/uupaa/dynamic-import-polyfill/blob/master/importModule.js - +/* eslint-disable jsdoc/require-file-overview */ /** + * Adapted from {@link https://github.com/uupaa/dynamic-import-polyfill/blob/master/importModule.js}. * @module importModule + * @license MIT */ /** @@ -64,6 +64,7 @@ export async function importSetGlobal (url, {global: glob, returnDefault}) { await importScript(url); return window[glob]; } + /** * * @author Brett Zamir (other items are from `dynamic-import-polyfill`) diff --git a/editor/external/jamilih/jml-es.js b/editor/external/jamilih/jml-es.js index 5d738c61..484285ec 100644 --- a/editor/external/jamilih/jml-es.js +++ b/editor/external/jamilih/jml-es.js @@ -1,295 +1,3 @@ -function _typeof(obj) { - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function (obj) { - return typeof obj; - }; - } else { - _typeof = function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - } - - return _typeof(obj); -} - -function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} - -function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } -} - -function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; -} - -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -} - -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys.push.apply(keys, symbols); - } - - return keys; -} - -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - - if (i % 2) { - ownKeys(source, true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(source).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - - return target; -} - -function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - if (superClass) _setPrototypeOf(subClass, superClass); -} - -function _getPrototypeOf(o) { - _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return _getPrototypeOf(o); -} - -function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - - return _setPrototypeOf(o, p); -} - -function isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); - return true; - } catch (e) { - return false; - } -} - -function _construct(Parent, args, Class) { - if (isNativeReflectConstruct()) { - _construct = Reflect.construct; - } else { - _construct = function _construct(Parent, args, Class) { - var a = [null]; - a.push.apply(a, args); - var Constructor = Function.bind.apply(Parent, a); - var instance = new Constructor(); - if (Class) _setPrototypeOf(instance, Class.prototype); - return instance; - }; - } - - return _construct.apply(null, arguments); -} - -function _isNativeFunction(fn) { - return Function.toString.call(fn).indexOf("[native code]") !== -1; -} - -function _wrapNativeSuper(Class) { - var _cache = typeof Map === "function" ? new Map() : undefined; - - _wrapNativeSuper = function _wrapNativeSuper(Class) { - if (Class === null || !_isNativeFunction(Class)) return Class; - - if (typeof Class !== "function") { - throw new TypeError("Super expression must either be null or a function"); - } - - if (typeof _cache !== "undefined") { - if (_cache.has(Class)) return _cache.get(Class); - - _cache.set(Class, Wrapper); - } - - function Wrapper() { - return _construct(Class, arguments, _getPrototypeOf(this).constructor); - } - - Wrapper.prototype = Object.create(Class.prototype, { - constructor: { - value: Wrapper, - enumerable: false, - writable: true, - configurable: true - } - }); - return _setPrototypeOf(Wrapper, Class); - }; - - return _wrapNativeSuper(Class); -} - -function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return self; -} - -function _possibleConstructorReturn(self, call) { - if (call && (typeof call === "object" || typeof call === "function")) { - return call; - } - - return _assertThisInitialized(self); -} - -function _superPropBase(object, property) { - while (!Object.prototype.hasOwnProperty.call(object, property)) { - object = _getPrototypeOf(object); - if (object === null) break; - } - - return object; -} - -function _get(target, property, receiver) { - if (typeof Reflect !== "undefined" && Reflect.get) { - _get = Reflect.get; - } else { - _get = function _get(target, property, receiver) { - var base = _superPropBase(target, property); - - if (!base) return; - var desc = Object.getOwnPropertyDescriptor(base, property); - - if (desc.get) { - return desc.get.call(receiver); - } - - return desc.value; - }; - } - - return _get(target, property, receiver || target); -} - -function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); -} - -function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); -} - -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - - return arr2; - } -} - -function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; -} - -function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); -} - -function _iterableToArrayLimit(arr, i) { - if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { - return; - } - - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; -} - -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); -} - -function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); -} - /* Possible todos: 0. Add XSLT to JML-string stylesheet (or even vice versa) @@ -319,26 +27,29 @@ Other Todos: 0. Support JsonML empty string element name to represent fragments? 0. Redo browser testing of jml (including ensuring IE7 can work even if test framework can't work) */ -var win = typeof window !== 'undefined' && window; -var doc = typeof document !== 'undefined' && document; -var XmlSerializer = typeof XMLSerializer !== 'undefined' && XMLSerializer; // STATIC PROPERTIES +// istanbul ignore next +let win = typeof window !== 'undefined' && window; // istanbul ignore next -var possibleOptions = ['$plugins', // '$mode', // Todo (SVG/XML) -// 'state', // Used internally +let doc = typeof document !== 'undefined' && document || win && win.document; // STATIC PROPERTIES + +const possibleOptions = ['$plugins', // '$mode', // Todo (SVG/XML) +// '$state', // Used internally '$map' // Add any other options here ]; -var NS_HTML = 'http://www.w3.org/1999/xhtml', - hyphenForCamelCase = /\x2D([a-z])/g; -var ATTR_MAP = { +const NS_HTML = 'http://www.w3.org/1999/xhtml', + hyphenForCamelCase = /-([a-z])/gu; +const ATTR_MAP = { + maxlength: 'maxLength', + minlength: 'minLength', readonly: 'readOnly' }; // We define separately from ATTR_DOM for clarity (and parity with JsonML) but no current need // We don't set attribute esp. for boolean atts as we want to allow setting of `undefined` // (e.g., from an empty variable) on templates to have no effect -var BOOL_ATTS = ['checked', 'defaultChecked', 'defaultSelected', 'disabled', 'indeterminate', 'open', // Dialog elements +const BOOL_ATTS = ['checked', 'defaultChecked', 'defaultSelected', 'disabled', 'indeterminate', 'open', // Dialog elements 'readOnly', 'selected']; // From JsonML -var ATTR_DOM = BOOL_ATTS.concat(['accessKey', // HTMLElement +const ATTR_DOM = BOOL_ATTS.concat(['accessKey', // HTMLElement 'async', 'autocapitalize', // HTMLElement 'autofocus', 'contentEditable', // HTMLElement through ElementContentEditable 'defaultValue', 'defer', 'draggable', // HTMLElement @@ -350,18 +61,15 @@ var ATTR_DOM = BOOL_ATTS.concat(['accessKey', // HTMLElement 'value', 'willvalidate']); // Todo: Add more to this as useful for templating // to avoid setting through nullish value -var NULLABLES = ['dir', // HTMLElement +const NULLABLES = ['autocomplete', 'dir', // HTMLElement +'integrity', // script, link 'lang', // HTMLElement -'max', 'min', 'title' // HTMLElement +'max', 'min', 'minLength', 'maxLength', 'title' // HTMLElement ]; -var $ = function $(sel) { - return doc.querySelector(sel); -}; +const $ = sel => doc.querySelector(sel); -var $$ = function $$(sel) { - return _toConsumableArray(doc.querySelectorAll(sel)); -}; +const $$ = sel => [...doc.querySelectorAll(sel)]; /** * Retrieve the (lower-cased) HTML name of a node. * @static @@ -382,13 +90,16 @@ function _getHTMLNodeName(node) { function _applyAnyStylesheet(node) { + // Only used in IE + // istanbul ignore else if (!doc.createStyleSheet) { return; - } + } // istanbul ignore next + if (_getHTMLNodeName(node) === 'style') { // IE - var ss = doc.createStyleSheet(); // Create a stylesheet to actually do something useful + const ss = doc.createStyleSheet(); // Create a stylesheet to actually do something useful ss.cssText = node.cssText; // We continue to add the style tag, however } @@ -404,9 +115,9 @@ function _applyAnyStylesheet(node) { function _appendNode(parent, child) { - var parentName = _getHTMLNodeName(parent); + const parentName = _getHTMLNodeName(parent); // IE only + // istanbul ignore if - var childName = _getHTMLNodeName(child); if (doc.createStyleSheet) { if (parentName === 'script') { @@ -429,6 +140,10 @@ function _appendNode(parent, child) { try { parent.append(child); // IE9 is now ok with this } catch (e) { + // istanbul ignore next + const childName = _getHTMLNodeName(child); // istanbul ignore next + + if (parentName === 'select' && childName === 'option') { try { // Since this is now DOM Level 4 standard behavior (and what IE7+ can handle), we try it first @@ -439,7 +154,8 @@ function _appendNode(parent, child) { } return; - } + } // istanbul ignore next + throw e; } @@ -469,12 +185,14 @@ function _addEvent(el, type, handler, capturing) { function _createSafeReference(type, prefix, arg) { - // For security reasons related to innerHTML, we ensure this string only contains potential entity characters - if (!arg.match(/^[0-9A-Z_a-z]+$/)) { - throw new TypeError('Bad ' + type); + // For security reasons related to innerHTML, we ensure this string only + // contains potential entity characters + if (!arg.match(/^\w+$/u)) { + throw new TypeError(`Bad ${type} reference; with prefix "${prefix}" and arg "${arg}"`); } - var elContainer = doc.createElement('div'); // Todo: No workaround for XML? + const elContainer = doc.createElement('div'); // Todo: No workaround for XML? + // eslint-disable-next-line no-unsanitized/property elContainer.innerHTML = '&' + prefix + arg + ';'; return doc.createTextNode(elContainer.innerHTML); @@ -504,38 +222,44 @@ function _isNullish(o) { * @private * @static * @param {string|JamilihAttributes|JamilihArray|Element|DocumentFragment} item -* @returns {"string"|"null"|"array"|"element"|"fragment"|"object"} +* @returns {"string"|"null"|"array"|"element"|"fragment"|"object"|"symbol"|"function"|"number"|"boolean"} */ function _getType(item) { - if (typeof item === 'string') { - return 'string'; - } + const type = typeof item; - if (_typeof(item) === 'object') { - if (item === null) { - return 'null'; - } - - if (Array.isArray(item)) { - return 'array'; - } - - if ('nodeType' in item) { - if (item.nodeType === 1) { - return 'element'; + switch (type) { + case 'object': + if (item === null) { + return 'null'; } - if (item.nodeType === 11) { - return 'fragment'; + if (Array.isArray(item)) { + return 'array'; } - } - return 'object'; + if ('nodeType' in item) { + switch (item.nodeType) { + case 1: + return 'element'; + + case 9: + return 'document'; + + case 11: + return 'fragment'; + + default: + return 'non-container node'; + } + } + + // Fallthrough + + default: + return type; } - - return undefined; } /** * @private @@ -560,70 +284,28 @@ function _fragReducer(frag, node) { function _replaceDefiner(xmlnsObj) { return function (n0) { - var retStr = xmlnsObj[''] ? ' xmlns="' + xmlnsObj[''] + '"' : n0 || ''; // Preserve XHTML + let retStr = xmlnsObj[''] ? ' xmlns="' + xmlnsObj[''] + '"' : n0; // Preserve XHTML - for (var ns in xmlnsObj) { - if ({}.hasOwnProperty.call(xmlnsObj, ns)) { - if (ns !== '') { - retStr += ' xmlns:' + ns + '="' + xmlnsObj[ns] + '"'; - } + for (const [ns, xmlnsVal] of Object.entries(xmlnsObj)) { + if (ns !== '') { + retStr += ' xmlns:' + ns + '="' + xmlnsVal + '"'; } } return retStr; }; } -/** - * - * @param {JamilihArray} args - * @returns {Element} - */ - - -function _optsOrUndefinedJML() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return jml.apply(void 0, _toConsumableArray(args[0] === undefined ? args.slice(1) : args)); -} -/** -* @private -* @static -* @param {string} arg -* @returns {Element} -*/ - - -function _jmlSingleArg(arg) { - return jml(arg); -} /** * @typedef {JamilihAttributes} AttributeArray * @property {string} 0 The key * @property {string} 1 The value */ -/** -* @private -* @static -* @todo Deprecate as now there is predictable iteration order? -* @param {AttributeArray} attArr -* @returns {PlainObject} -*/ - - -function _copyOrderedAtts(attArr) { - var obj = {}; // Todo: Fix if allow prefixed attributes - - obj[attArr[0]] = attArr[1]; // array of ordered attribute-value arrays - - return obj; -} /** * @callback ChildrenToJMLCallback * @param {JamilihArray|Jamilih} childNodeJML * @param {Integer} i +* @returns {void} */ /** @@ -636,9 +318,9 @@ function _copyOrderedAtts(attArr) { function _childrenToJML(node) { return function (childNodeJML, i) { - var cn = node.childNodes[i]; - var j = Array.isArray(childNodeJML) ? jml.apply(void 0, _toConsumableArray(childNodeJML)) : jml(childNodeJML); - cn.parentNode.replaceChild(j, cn); + const cn = node.childNodes[i]; + const j = Array.isArray(childNodeJML) ? jml(...childNodeJML) : jml(childNodeJML); + cn.replaceWith(j); }; } /** @@ -657,7 +339,11 @@ function _childrenToJML(node) { function _appendJML(node) { return function (childJML) { - node.append(jml.apply(void 0, _toConsumableArray(childJML))); + if (Array.isArray(childJML)) { + node.append(jml(...childJML)); + } else { + node.append(jml(childJML)); + } }; } /** @@ -678,14 +364,19 @@ function _appendJMLOrText(node) { return function (childJML) { if (typeof childJML === 'string') { node.append(childJML); + } else if (Array.isArray(childJML)) { + node.append(jml(...childJML)); } else { - node.append(jml.apply(void 0, _toConsumableArray(childJML))); + node.append(jml(childJML)); } }; } /** * @private * @static +*/ + +/* function _DOMfromJMLOrString (childNodeJML) { if (typeof childNodeJML === 'string') { return doc.createTextNode(childNodeJML); @@ -699,7 +390,7 @@ function _DOMfromJMLOrString (childNodeJML) { */ /** -* @typedef {PlainObject} JamilihAttributes +* @typedef {PlainObject<string, string>} JamilihAttributes */ /** @@ -718,22 +409,64 @@ function _DOMfromJMLOrString (childNodeJML) { * should be returned */ +/** +* @typedef {PlainObject} JamilihOptions +* @property {"root"|"attributeValue"|"fragment"|"children"|"fragmentChildren"} $state +*/ + +/** + * @param {Element} elem + * @param {string} att + * @param {string} attVal + * @param {JamilihOptions} opts + * @returns {void} + */ + + +function checkPluginValue(elem, att, attVal, opts) { + opts.$state = 'attributeValue'; + + if (attVal && typeof attVal === 'object') { + const matchingPlugin = getMatchingPlugin(opts, Object.keys(attVal)[0]); + + if (matchingPlugin) { + return matchingPlugin.set({ + opts, + element: elem, + attribute: { + name: att, + value: attVal + } + }); + } + } + + return attVal; +} +/** + * @param {JamilihOptions} opts + * @param {string} item + * @returns {JamilihPlugin} + */ + + +function getMatchingPlugin(opts, item) { + return opts.$plugins && opts.$plugins.find(p => { + return p.name === item; + }); +} /** * Creates an XHTML or HTML element (XHTML is preferred, but only in browsers * that support); any element after element can be omitted, and any subsequent * type or types added afterwards. - * @param {JamilihArray} args + * @param {...JamilihArray} args * @returns {JamilihReturn} The newly created (and possibly already appended) * element or array of elements */ -var jml = function jml() { - for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - - var elem = doc.createDocumentFragment(); +const jml = function jml(...args) { + let elem = doc.createDocumentFragment(); /** * * @param {Object<{string: string}>} atts @@ -741,23 +474,19 @@ var jml = function jml() { */ function _checkAtts(atts) { - var att; - - for (att in atts) { - if (!{}.hasOwnProperty.call(atts, att)) { - continue; - } - - var attVal = atts[att]; + for (let [att, attVal] of Object.entries(atts)) { att = att in ATTR_MAP ? ATTR_MAP[att] : att; if (NULLABLES.includes(att)) { + attVal = checkPluginValue(elem, att, attVal, opts); + if (!_isNullish(attVal)) { elem[att] = attVal; } continue; } else if (ATTR_DOM.includes(att)) { + attVal = checkPluginValue(elem, att, attVal, opts); elem[att] = attVal; continue; } @@ -776,17 +505,22 @@ var jml = function jml() { case '#': { // Document fragment - nodes[nodes.length] = _optsOrUndefinedJML(opts, attVal); + opts.$state = 'fragmentChilden'; + nodes[nodes.length] = jml(opts, attVal); break; } case '$shadow': { - var open = attVal.open, - closed = attVal.closed; - var content = attVal.content, - template = attVal.template; - var shadowRoot = elem.attachShadow({ + const { + open, + closed + } = attVal; + let { + content, + template + } = attVal; + const shadowRoot = elem.attachShadow({ mode: closed || open === false ? 'closed' : 'open' }); @@ -794,7 +528,7 @@ var jml = function jml() { if (Array.isArray(template)) { if (_getType(template[0]) === 'object') { // Has attributes - template = jml.apply(void 0, ['template'].concat(_toConsumableArray(template), [doc.body])); + template = jml('template', ...template, doc.body); } else { // Array is for the children template = jml('template', template, doc.body); @@ -823,9 +557,15 @@ var jml = function jml() { break; } + case '$state': + { + // Handled internally + break; + } + case 'is': { - // Not yet supported in browsers + // Currently only in Chrome // Handled during element creation break; } @@ -836,135 +576,133 @@ var jml = function jml() { break; } + /* istanbul ignore next */ + case '$define': { - var _ret = function () { - var localName = elem.localName.toLowerCase(); // Note: customized built-ins sadly not working yet + const localName = elem.localName.toLowerCase(); // Note: customized built-ins sadly not working yet - var customizedBuiltIn = !localName.includes('-'); - var def = customizedBuiltIn ? elem.getAttribute('is') : localName; + const customizedBuiltIn = !localName.includes('-'); // We check attribute in case this is a preexisting DOM element + // const {is} = atts; - if (customElements.get(def)) { - return "break"; - } + let is; - var getConstructor = function getConstructor(cnstrct) { - var baseClass = options && options["extends"] ? doc.createElement(options["extends"]).constructor : customizedBuiltIn ? doc.createElement(localName).constructor : HTMLElement; - return cnstrct ? - /*#__PURE__*/ - function (_baseClass) { - _inherits(_class, _baseClass); + if (customizedBuiltIn) { + is = elem.getAttribute('is'); - function _class() { - var _this; - - _classCallCheck(this, _class); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this)); - cnstrct.call(_assertThisInitialized(_this)); - return _this; - } - - return _class; - }(baseClass) : - /*#__PURE__*/ - function (_baseClass2) { - _inherits(_class2, _baseClass2); - - function _class2() { - _classCallCheck(this, _class2); - - return _possibleConstructorReturn(this, _getPrototypeOf(_class2).apply(this, arguments)); - } - - return _class2; - }(baseClass); - }; - - var cnstrctr = void 0, - options = void 0, - prototype = void 0; - - if (Array.isArray(attVal)) { - if (attVal.length <= 2) { - var _attVal = _slicedToArray(attVal, 2); - - cnstrctr = _attVal[0]; - options = _attVal[1]; - - if (typeof options === 'string') { - options = { - "extends": options - }; - } else if (!{}.hasOwnProperty.call(options, 'extends')) { - prototype = options; - } - - if (_typeof(cnstrctr) === 'object') { - prototype = cnstrctr; - cnstrctr = getConstructor(); - } - } else { - var _attVal2 = _slicedToArray(attVal, 3); - - cnstrctr = _attVal2[0]; - prototype = _attVal2[1]; - options = _attVal2[2]; - - if (typeof options === 'string') { - options = { - "extends": options - }; - } + if (!is) { + if (!{}.hasOwnProperty.call(atts, 'is')) { + throw new TypeError(`Expected \`is\` with \`$define\` on built-in; args: ${JSON.stringify(args)}`); + } + + atts.is = checkPluginValue(elem, 'is', atts.is, opts); + elem.setAttribute('is', atts.is); + ({ + is + } = atts); + } + } + + const def = customizedBuiltIn ? is : localName; + + if (window.customElements.get(def)) { + break; + } + + const getConstructor = cnstrct => { + const baseClass = options && options.extends ? doc.createElement(options.extends).constructor : customizedBuiltIn ? doc.createElement(localName).constructor : window.HTMLElement; + /** + * Class wrapping base class. + */ + + return cnstrct ? class extends baseClass { + /** + * Calls user constructor. + */ + constructor() { + super(); + cnstrct.call(this); + } + + } : class extends baseClass {}; + }; + + let cnstrctr, options, mixin; + + if (Array.isArray(attVal)) { + if (attVal.length <= 2) { + [cnstrctr, options] = attVal; + + if (typeof options === 'string') { + // Todo: Allow creating a definition without using it; + // that may be the only reason to have a string here which + // differs from the `localName` anyways + options = { + extends: options + }; + } else if (options && !{}.hasOwnProperty.call(options, 'extends')) { + mixin = options; + } + + if (typeof cnstrctr === 'object') { + mixin = cnstrctr; + cnstrctr = getConstructor(); } - } else if (typeof attVal === 'function') { - cnstrctr = attVal; } else { - prototype = attVal; - cnstrctr = getConstructor(); + [cnstrctr, mixin, options] = attVal; + + if (typeof options === 'string') { + options = { + extends: options + }; + } } + } else if (typeof attVal === 'function') { + cnstrctr = attVal; + } else { + mixin = attVal; + cnstrctr = getConstructor(); + } - if (!cnstrctr.toString().startsWith('class')) { - cnstrctr = getConstructor(cnstrctr); - } + if (!cnstrctr.toString().startsWith('class')) { + cnstrctr = getConstructor(cnstrctr); + } - if (!options && customizedBuiltIn) { - options = { - "extends": localName - }; - } + if (!options && customizedBuiltIn) { + options = { + extends: localName + }; + } - if (prototype) { - Object.assign(cnstrctr.prototype, prototype); - } + if (mixin) { + Object.entries(mixin).forEach(([methodName, method]) => { + cnstrctr.prototype[methodName] = method; + }); + } // console.log('def', def, '::', typeof options === 'object' ? options : undefined); - customElements.define(def, cnstrctr, customizedBuiltIn ? options : undefined); - return "break"; - }(); - if (_ret === "break") break; + window.customElements.define(def, cnstrctr, typeof options === 'object' ? options : undefined); + break; } case '$symbol': { - var _attVal3 = _slicedToArray(attVal, 2), - symbol = _attVal3[0], - func = _attVal3[1]; + const [symbol, func] = attVal; if (typeof func === 'function') { - var funcBound = func.bind(elem); + const funcBound = func.bind(elem); if (typeof symbol === 'string') { - elem[Symbol["for"](symbol)] = funcBound; + elem[Symbol.for(symbol)] = funcBound; } else { elem[symbol] = funcBound; } } else { - var obj = func; + const obj = func; obj.elem = elem; if (typeof symbol === 'string') { - elem[Symbol["for"](symbol)] = obj; + elem[Symbol.for(symbol)] = obj; } else { elem[symbol] = obj; } @@ -982,7 +720,7 @@ var jml = function jml() { case '$attribute': { // Attribute node - var node = attVal.length === 3 ? doc.createAttributeNS(attVal[0], attVal[1]) : doc.createAttribute(attVal[0]); + const node = attVal.length === 3 ? doc.createAttributeNS(attVal[0], attVal[1]) : doc.createAttribute(attVal[0]); node.value = attVal[attVal.length - 1]; nodes[nodes.length] = node; break; @@ -991,147 +729,87 @@ var jml = function jml() { case '$text': { // Todo: Also allow as jml(['a text node']) (or should that become a fragment)? - var _node = doc.createTextNode(attVal); - - nodes[nodes.length] = _node; + const node = doc.createTextNode(attVal); + nodes[nodes.length] = node; break; } case '$document': { // Todo: Conditionally create XML document - var _node2 = doc.implementation.createHTMLDocument(); + const node = doc.implementation.createHTMLDocument(); if (attVal.childNodes) { - // eslint-disable-next-line unicorn/no-fn-reference-in-iterator - attVal.childNodes.forEach(_childrenToJML(_node2)); // Remove any extra nodes created by createHTMLDocument(). + // Remove any extra nodes created by createHTMLDocument(). + const j = attVal.childNodes.length; - var j = attVal.childNodes.length; + while (node.childNodes[j]) { + const cn = node.childNodes[j]; + cn.remove(); // `j` should stay the same as removing will cause node to be present + } // eslint-disable-next-line unicorn/no-fn-reference-in-iterator - while (_node2.childNodes[j]) { - var cn = _node2.childNodes[j]; - cn.remove(); - j++; - } + + attVal.childNodes.forEach(_childrenToJML(node)); } else { if (attVal.$DOCTYPE) { - var dt = { + const dt = { $DOCTYPE: attVal.$DOCTYPE }; - var doctype = jml(dt); - - _node2.firstChild.replaceWith(doctype); + const doctype = jml(dt); + node.firstChild.replaceWith(doctype); } - var html = _node2.childNodes[1]; - var head = html.childNodes[0]; - var _body = html.childNodes[1]; + const html = node.childNodes[1]; + const head = html.childNodes[0]; + const body = html.childNodes[1]; if (attVal.title || attVal.head) { - var meta = doc.createElement('meta'); + const meta = doc.createElement('meta'); meta.setAttribute('charset', 'utf-8'); head.append(meta); - } - if (attVal.title) { - _node2.title = attVal.title; // Appends after meta - } + if (attVal.title) { + node.title = attVal.title; // Appends after meta + } - if (attVal.head) { - // eslint-disable-next-line unicorn/no-fn-reference-in-iterator - attVal.head.forEach(_appendJML(head)); + if (attVal.head) { + // eslint-disable-next-line unicorn/no-fn-reference-in-iterator + attVal.head.forEach(_appendJML(head)); + } } if (attVal.body) { // eslint-disable-next-line unicorn/no-fn-reference-in-iterator - attVal.body.forEach(_appendJMLOrText(_body)); + attVal.body.forEach(_appendJMLOrText(body)); } } - nodes[nodes.length] = _node2; + nodes[nodes.length] = node; break; } case '$DOCTYPE': { - /* - // Todo: - if (attVal.internalSubset) { - node = {}; - } - else - */ - var _node3 = void 0; - - if (attVal.entities || attVal.notations) { - _node3 = { - name: attVal.name, - nodeName: attVal.name, - nodeValue: null, - nodeType: 10, - // eslint-disable-next-line unicorn/no-fn-reference-in-iterator - entities: attVal.entities.map(_jmlSingleArg), - // eslint-disable-next-line unicorn/no-fn-reference-in-iterator - notations: attVal.notations.map(_jmlSingleArg), - publicId: attVal.publicId, - systemId: attVal.systemId // internalSubset: // Todo - - }; - } else { - _node3 = doc.implementation.createDocumentType(attVal.name, attVal.publicId || '', attVal.systemId || ''); - } - - nodes[nodes.length] = _node3; - break; - } - - case '$ENTITY': - { - /* - // Todo: Should we auto-copy another node's properties/methods (like DocumentType) excluding or changing its non-entity node values? - const node = { - nodeName: attVal.name, - nodeValue: null, - publicId: attVal.publicId, - systemId: attVal.systemId, - notationName: attVal.notationName, - nodeType: 6, - childNodes: attVal.childNodes.map(_DOMfromJMLOrString) - }; - */ - break; - } - - case '$NOTATION': - { - // Todo: We could add further properties/methods, but unlikely to be used as is. - var _node4 = { - nodeName: attVal[0], - publicID: attVal[1], - systemID: attVal[2], - nodeValue: null, - nodeType: 12 - }; - nodes[nodes.length] = _node4; + const node = doc.implementation.createDocumentType(attVal.name, attVal.publicId || '', attVal.systemId || ''); + nodes[nodes.length] = node; break; } case '$on': { // Events - for (var p2 in attVal) { - if ({}.hasOwnProperty.call(attVal, p2)) { - var val = attVal[p2]; - - if (typeof val === 'function') { - val = [val, false]; - } - - if (typeof val[0] === 'function') { - _addEvent(elem, p2, val[0], val[1]); // element, event name, handler, capturing - - } + // Allow for no-op by defaulting to `{}` + for (let [p2, val] of Object.entries(attVal || {})) { + if (typeof val === 'function') { + val = [val, false]; } + + if (typeof val[0] !== 'function') { + throw new TypeError(`Expect a function for \`$on\`; args: ${JSON.stringify(args)}`); + } + + _addEvent(elem, p2, val[0], val[1]); // element, event name, handler, capturing + } break; @@ -1139,6 +817,8 @@ var jml = function jml() { case 'className': case 'class': + attVal = checkPluginValue(elem, att, attVal, opts); + if (!_isNullish(attVal)) { elem.className = attVal; } @@ -1147,44 +827,41 @@ var jml = function jml() { case 'dataset': { - var _ret2 = function () { - // Map can be keyed with hyphenated or camel-cased properties - var recurse = function recurse(atVal, startProp) { - var prop = ''; - var pastInitialProp = startProp !== ''; - Object.keys(atVal).forEach(function (key) { - var value = atVal[key]; + // Map can be keyed with hyphenated or camel-cased properties + const recurse = (atVal, startProp) => { + let prop = ''; + const pastInitialProp = startProp !== ''; + Object.keys(atVal).forEach(key => { + const value = atVal[key]; - if (pastInitialProp) { - prop = startProp + key.replace(hyphenForCamelCase, _upperCase).replace(/^([a-z])/, _upperCase); - } else { - prop = startProp + key.replace(hyphenForCamelCase, _upperCase); + if (pastInitialProp) { + prop = startProp + key.replace(hyphenForCamelCase, _upperCase).replace(/^([a-z])/u, _upperCase); + } else { + prop = startProp + key.replace(hyphenForCamelCase, _upperCase); + } + + if (value === null || typeof value !== 'object') { + if (!_isNullish(value)) { + elem.dataset[prop] = value; } - if (value === null || _typeof(value) !== 'object') { - if (!_isNullish(value)) { - elem.dataset[prop] = value; - } + prop = startProp; + return; + } - prop = startProp; - return; - } + recurse(value, prop); + }); + }; - recurse(value, prop); - }); - }; - - recurse(attVal, ''); - return "break"; // Todo: Disable this by default unless configuration explicitly allows (for security) - }(); - - if (_ret2 === "break") break; + recurse(attVal, ''); + break; // Todo: Disable this by default unless configuration explicitly allows (for security) } // #if IS_REMOVE // Don't remove this `if` block (for sake of no-innerHTML build) case 'innerHTML': if (!_isNullish(attVal)) { + // eslint-disable-next-line no-unsanitized/property elem.innerHTML = attVal; } @@ -1194,6 +871,8 @@ var jml = function jml() { case 'htmlFor': case 'for': if (elStr === 'label') { + attVal = checkPluginValue(elem, att, attVal, opts); + if (!_isNullish(attVal)) { elem.htmlFor = attVal; } @@ -1201,6 +880,7 @@ var jml = function jml() { break; } + attVal = checkPluginValue(elem, att, attVal, opts); elem.setAttribute(att, attVal); break; @@ -1211,25 +891,28 @@ var jml = function jml() { default: { if (att.startsWith('on')) { + attVal = checkPluginValue(elem, att, attVal, opts); elem[att] = attVal; // _addEvent(elem, att.slice(2), attVal, false); // This worked, but perhaps the user wishes only one event break; } if (att === 'style') { + attVal = checkPluginValue(elem, att, attVal, opts); + if (_isNullish(attVal)) { break; } - if (_typeof(attVal) === 'object') { - for (var _p in attVal) { - if ({}.hasOwnProperty.call(attVal, _p) && !_isNullish(attVal[_p])) { + if (typeof attVal === 'object') { + for (const [p2, styleVal] of Object.entries(attVal)) { + if (!_isNullish(styleVal)) { // Todo: Handle aggregate properties like "border" - if (_p === 'float') { - elem.style.cssFloat = attVal[_p]; - elem.style.styleFloat = attVal[_p]; // Harmless though we could make conditional on older IE instead + if (p2 === 'float') { + elem.style.cssFloat = styleVal; + elem.style.styleFloat = styleVal; // Harmless though we could make conditional on older IE instead } else { - elem.style[_p.replace(hyphenForCamelCase, _upperCase)] = attVal[_p]; + elem.style[p2.replace(hyphenForCamelCase, _upperCase)] = styleVal; } } } @@ -1251,12 +934,11 @@ var jml = function jml() { break; } - var matchingPlugin = opts && opts.$plugins && opts.$plugins.find(function (p) { - return p.name === att; - }); + const matchingPlugin = getMatchingPlugin(opts, att); if (matchingPlugin) { matchingPlugin.set({ + opts, element: elem, attribute: { name: att, @@ -1266,6 +948,7 @@ var jml = function jml() { break; } + attVal = checkPluginValue(elem, att, attVal, opts); elem.setAttribute(att, attVal); break; } @@ -1273,19 +956,17 @@ var jml = function jml() { } } - var nodes = []; - var elStr; - var opts; - var isRoot = false; + const nodes = []; + let elStr; + let opts; + let isRoot = false; - if (_getType(args[0]) === 'object' && Object.keys(args[0]).some(function (key) { - return possibleOptions.includes(key); - })) { + if (_getType(args[0]) === 'object' && Object.keys(args[0]).some(key => possibleOptions.includes(key))) { opts = args[0]; - if (opts.state !== 'child') { + if (opts.$state === undefined) { isRoot = true; - opts.state = 'child'; + opts.$state = 'root'; } if (opts.$map && !opts.$map.root && opts.$map.root !== false) { @@ -1296,50 +977,51 @@ var jml = function jml() { if ('$plugins' in opts) { if (!Array.isArray(opts.$plugins)) { - throw new TypeError('$plugins must be an array'); + throw new TypeError(`\`$plugins\` must be an array; args: ${JSON.stringify(args)}`); } - opts.$plugins.forEach(function (pluginObj) { - if (!pluginObj) { - throw new TypeError('Plugin must be an object'); + opts.$plugins.forEach(pluginObj => { + if (!pluginObj || typeof pluginObj !== 'object') { + throw new TypeError(`Plugin must be an object; args: ${JSON.stringify(args)}`); } if (!pluginObj.name || !pluginObj.name.startsWith('$_')) { - throw new TypeError('Plugin object name must be present and begin with `$_`'); + throw new TypeError(`Plugin object name must be present and begin with \`$_\`; args: ${JSON.stringify(args)}`); } if (typeof pluginObj.set !== 'function') { - throw new TypeError('Plugin object must have a `set` method'); + throw new TypeError(`Plugin object must have a \`set\` method; args: ${JSON.stringify(args)}`); } }); } args = args.slice(1); + } else { + opts = { + $state: undefined + }; } - var argc = args.length; - var defaultMap = opts && opts.$map && opts.$map.root; + const argc = args.length; + const defaultMap = opts.$map && opts.$map.root; - var setMap = function setMap(dataVal) { - var map, obj; // Boolean indicating use of default map and object + const setMap = dataVal => { + let map, obj; // Boolean indicating use of default map and object if (dataVal === true) { - var _defaultMap = _slicedToArray(defaultMap, 2); - - map = _defaultMap[0]; - obj = _defaultMap[1]; + [map, obj] = defaultMap; } else if (Array.isArray(dataVal)) { // Array of strings mapping to default if (typeof dataVal[0] === 'string') { - dataVal.forEach(function (dVal) { + dataVal.forEach(dVal => { setMap(opts.$map[dVal]); - }); // Array of Map and non-map data object - } else { - map = dataVal[0] || defaultMap[0]; - obj = dataVal[1] || defaultMap[1]; - } // Map + }); + return; // Array of Map and non-map data object + } - } else if (/^\[object (?:Weak)?Map\]$/.test([].toString.call(dataVal))) { + map = dataVal[0] || defaultMap[0]; + obj = dataVal[1] || defaultMap[1]; // Map + } else if (/^\[object (?:Weak)?Map\]$/u.test([].toString.call(dataVal))) { map = dataVal; obj = defaultMap[1]; // Non-map data object } else { @@ -1350,13 +1032,14 @@ var jml = function jml() { map.set(elem, obj); }; - for (var i = 0; i < argc; i++) { - var arg = args[i]; + for (let i = 0; i < argc; i++) { + let arg = args[i]; - switch (_getType(arg)) { + const type = _getType(arg); + + switch (type) { default: - // Todo: Throw here instead? - break; + throw new TypeError(`Unexpected type: ${type}; arg: ${arg}; index ${i} on args: ${JSON.stringify(args)}`); case 'null': // null always indicates a place-holder (only needed for last argument if want array returned) @@ -1369,10 +1052,10 @@ var jml = function jml() { : nodes.reduce(_fragReducer, doc.createDocumentFragment()); // nodes; } - break; + throw new TypeError(`\`null\` values not allowed except as final Jamilih argument; index ${i} on args: ${JSON.stringify(args)}`); case 'string': - // Strings indicate elements + // Strings normally indicate elements switch (arg) { case '!': nodes[nodes.length] = doc.createComment(args[++i]); @@ -1381,17 +1064,15 @@ var jml = function jml() { case '?': { arg = args[++i]; - var procValue = args[++i]; - var val = procValue; + let procValue = args[++i]; + const val = procValue; - if (_typeof(val) === 'object') { + if (val && typeof val === 'object') { procValue = []; - for (var p in val) { - if ({}.hasOwnProperty.call(val, p)) { - procValue.push(p + '=' + '"' + // https://www.w3.org/TR/xml-stylesheet/#NT-PseudoAttValue - val[p].replace(/"/g, '"') + '"'); - } + for (const [p, procInstVal] of Object.entries(val)) { + procValue.push(p + '=' + '"' + // https://www.w3.org/TR/xml-stylesheet/#NT-PseudoAttValue + procInstVal.replace(/"/gu, '"') + '"'); } procValue = procValue.join(' '); @@ -1440,33 +1121,41 @@ var jml = function jml() { break; case '': - nodes[nodes.length] = doc.createDocumentFragment(); + nodes[nodes.length] = elem = doc.createDocumentFragment(); // Todo: Report to plugins + + opts.$state = 'fragment'; break; default: { // An element elStr = arg; - var atts = args[i + 1]; // Todo: Fix this to depend on XML/config, not availability of methods + const atts = args[i + 1]; if (_getType(atts) === 'object' && atts.is) { - var is = atts.is; + const { + is + } = atts; // istanbul ignore else if (doc.createElementNS) { elem = doc.createElementNS(NS_HTML, elStr, { - is: is + is }); } else { elem = doc.createElement(elStr, { - is: is + is }); } - } else if (doc.createElementNS) { - elem = doc.createElementNS(NS_HTML, elStr); - } else { - elem = doc.createElement(elStr); - } + } else + /* istanbul ignore else */ + if (doc.createElementNS) { + elem = doc.createElementNS(NS_HTML, elStr); + } else { + elem = doc.createElement(elStr); + } // Todo: Report to plugins + + opts.$state = 'element'; nodes[nodes.length] = elem; // Add to parent break; @@ -1478,34 +1167,35 @@ var jml = function jml() { case 'object': { // Non-DOM-element objects indicate attribute-value pairs - var _atts = arg; + const atts = arg; - if (_atts.xmlns !== undefined) { + if (atts.xmlns !== undefined) { // We handle this here, as otherwise may lose events, etc. // As namespace of element already set as XHTML, we need to change the namespace // elem.setAttribute('xmlns', atts.xmlns); // Doesn't work // Can't set namespaceURI dynamically, renameNode() is not supported, and setAttribute() doesn't work to change the namespace, so we resort to this hack - var replacer = void 0; + let replacer; - if (_typeof(_atts.xmlns) === 'object') { - replacer = _replaceDefiner(_atts.xmlns); + if (typeof atts.xmlns === 'object') { + replacer = _replaceDefiner(atts.xmlns); } else { - replacer = ' xmlns="' + _atts.xmlns + '"'; + replacer = ' xmlns="' + atts.xmlns + '"'; } // try { // Also fix DOMParser to work with text/html - elem = nodes[nodes.length - 1] = new DOMParser().parseFromString(new XmlSerializer().serializeToString(elem) // Mozilla adds XHTML namespace - .replace(' xmlns="' + NS_HTML + '"', replacer), 'application/xml').documentElement; // }catch(e) {alert(elem.outerHTML);throw e;} - } // eslint-disable-next-line unicorn/no-fn-reference-in-iterator + elem = nodes[nodes.length - 1] = new win.DOMParser().parseFromString(new win.XMLSerializer().serializeToString(elem) // Mozilla adds XHTML namespace + .replace(' xmlns="' + NS_HTML + '"', replacer), 'application/xml').documentElement; // Todo: Report to plugins + opts.$state = 'element'; // }catch(e) {alert(elem.outerHTML);throw e;} + } - var orderedArr = _atts.$a ? _atts.$a.map(_copyOrderedAtts) : [_atts]; // eslint-disable-next-line unicorn/no-fn-reference-in-iterator + _checkAtts(atts); - orderedArr.forEach(_checkAtts); break; } + case 'document': case 'fragment': case 'element': /* @@ -1513,15 +1203,17 @@ var jml = function jml() { 2) Individual elements (DOM elements or sequences of string[/object/array]) get added to parent first-in, first-added */ if (i === 0) { - // Allow wrapping of element - elem = arg; + // Allow wrapping of element, fragment, or document + elem = arg; // Todo: Report to plugins + + opts.$state = 'element'; } if (i === argc - 1 || i === argc - 2 && args[i + 1] === null) { // parent - var elsl = nodes.length; + const elsl = nodes.length; - for (var k = 0; k < elsl; k++) { + for (let k = 0; k < elsl; k++) { _appendNode(arg, nodes[k]); } // Todo: Apply stylesheets if any style tags were added elsewhere besides the first element? @@ -1537,17 +1229,16 @@ var jml = function jml() { case 'array': { // Arrays or arrays of arrays indicate child nodes - var child = arg; - var cl = child.length; + const child = arg; + const cl = child.length; - for (var j = 0; j < cl; j++) { + for (let j = 0; j < cl; j++) { // Go through children array container to handle elements - var childContent = child[j]; + const childContent = child[j]; + const childContentType = typeof childContent; - var childContentType = _typeof(childContent); - - if (childContent === undefined) { - throw String('Parent array:' + JSON.stringify(args) + '; child: ' + child + '; index:' + j); + if (_isNullish(childContent)) { + throw new TypeError(`Bad children (parent array: ${JSON.stringify(args)}; index ${j} of child: ${JSON.stringify(child)})`); } switch (childContentType) { @@ -1562,13 +1253,19 @@ var jml = function jml() { default: if (Array.isArray(childContent)) { // Arrays representing child elements - _appendNode(elem, _optsOrUndefinedJML.apply(void 0, [opts].concat(_toConsumableArray(childContent)))); + opts.$state = 'children'; + + _appendNode(elem, jml(opts, ...childContent)); } else if (childContent['#']) { // Fragment - _appendNode(elem, _optsOrUndefinedJML(opts, childContent['#'])); + opts.$state = 'fragmentChildren'; + + _appendNode(elem, jml(opts, childContent['#'])); } else { // Single DOM element children - _appendNode(elem, childContent); + const newChildContent = checkPluginValue(elem, null, childContent, opts); + + _appendNode(elem, newChildContent); } break; @@ -1580,9 +1277,9 @@ var jml = function jml() { } } - var ret = nodes[0] || elem; + const ret = nodes[0] || elem; - if (opts && isRoot && opts.$map && opts.$map.root) { + if (isRoot && opts.$map && opts.$map.root) { setMap(true); } @@ -1590,50 +1287,68 @@ var jml = function jml() { }; /** * Converts a DOM object or a string of HTML into a Jamilih object (or string). -* @param {string|HTMLElement} [dom=document.documentElement] Defaults to converting the current document. +* @param {string|HTMLElement} dom If a string, will parse as document * @param {PlainObject} [config] Configuration object * @param {boolean} [config.stringOutput=false] Whether to output the Jamilih object as a string. +* @param {boolean} [config.reportInvalidState=true] If true (the default), will report invalid state errors +* @param {boolean} [config.stripWhitespace=false] Strip whitespace for text nodes * @returns {JamilihArray|string} Array containing the elements which represent * a Jamilih object, or, if `stringOutput` is true, it will be the stringified * version of such an object */ -jml.toJML = function (dom, config) { - config = config || { - stringOutput: false - }; - +jml.toJML = function (dom, { + stringOutput = false, + reportInvalidState = true, + stripWhitespace = false +} = {}) { if (typeof dom === 'string') { - dom = new DOMParser().parseFromString(dom, 'text/html'); // todo: Give option for XML once implemented and change JSDoc to allow for Element + dom = new win.DOMParser().parseFromString(dom, 'text/html'); // todo: Give option for XML once implemented and change JSDoc to allow for Element } - var ret = []; - var parent = ret; - var parentIdx = 0; + + const ret = []; + let parent = ret; + let parentIdx = 0; /** - * + * @param {string} msg * @throws {DOMException} * @returns {void} */ - function invalidStateError() { + function invalidStateError(msg) { // These are probably only necessary if working with text/html - // eslint-disable-next-line no-shadow - var DOMException = function DOMException() { - _classCallCheck(this, DOMException); - }; - { + /* eslint-disable no-shadow, unicorn/custom-error-definition */ + + /** + * Polyfill for `DOMException`. + */ + class DOMException extends Error { + /* eslint-enable no-shadow, unicorn/custom-error-definition */ + + /** + * @param {string} message + * @param {string} name + */ + constructor(message, name) { + super(message); // eslint-disable-next-line unicorn/custom-error-definition + + this.name = name; + } + + } + + if (reportInvalidState) { // INVALID_STATE_ERR per section 9.3 XHTML 5: http://www.w3.org/TR/html5/the-xhtml-syntax.html - // Since we can't instantiate without this (at least in Mozilla), this mimicks at least (good idea?) - var e = new DOMException(); + const e = new DOMException(msg, 'INVALID_STATE_ERR'); e.code = 11; throw e; } } /** * - * @param {DocumentType|Entity|Notation} obj + * @param {DocumentType|Entity} obj * @param {Node} node * @returns {void} */ @@ -1641,11 +1356,13 @@ jml.toJML = function (dom, config) { function addExternalID(obj, node) { if (node.systemId.includes('"') && node.systemId.includes("'")) { - invalidStateError(); + invalidStateError('systemId cannot have both single and double quotes.'); } - var publicId = node.publicId, - systemId = node.systemId; + const { + publicId, + systemId + } = node; if (systemId) { obj.systemId = systemId; @@ -1705,18 +1422,19 @@ jml.toJML = function (dom, config) { /* if ((node.prefix && node.prefix.includes(':')) || (node.localName && node.localName.includes(':'))) { - invalidStateError(); + invalidStateError('Prefix cannot have a colon'); } */ - var type = 'nodeType' in node ? node.nodeType : null; - namespaces = _objectSpread2({}, namespaces); - var xmlChars = /([\t\n\r -\uD7FF\uE000-\uFFFD]|(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF]))(?:(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]))*$/; // eslint-disable-line no-control-regex + const type = 'nodeType' in node ? node.nodeType : null; + namespaces = { ...namespaces + }; + const xmlChars = /^([\u0009\u000A\u000D\u0020-\uD7FF\uE000-\uFFFD]|[\uD800-\uDBFF][\uDC00-\uDFFF])*$/u; // eslint-disable-line no-control-regex if ([2, 3, 4, 7, 8].includes(type) && !xmlChars.test(node.nodeValue)) { - invalidStateError(); + invalidStateError('Node has bad XML character value'); } - var children, start, tmpParent, tmpParentIdx; + let tmpParent, tmpParentIdx; /** * @returns {void} */ @@ -1741,13 +1459,13 @@ jml.toJML = function (dom, config) { { // ELEMENT setTemp(); - var nodeName = node.nodeName.toLowerCase(); // Todo: for XML, should not lower-case + const nodeName = node.nodeName.toLowerCase(); // Todo: for XML, should not lower-case setChildren(); // Build child array since elements are, except at the top level, encapsulated in arrays set(nodeName); - start = {}; - var hasNamespaceDeclaration = false; + const start = {}; + let hasNamespaceDeclaration = false; if (namespaces[node.prefix || ''] !== node.namespaceURI) { namespaces[node.prefix || ''] = node.namespaceURI; @@ -1756,13 +1474,15 @@ jml.toJML = function (dom, config) { start['xmlns:' + node.prefix] = node.namespaceURI; } else if (node.namespaceURI) { start.xmlns = node.namespaceURI; + } else { + start.xmlns = null; } hasNamespaceDeclaration = true; } if (node.attributes.length) { - set(_toConsumableArray(node.attributes).reduce(function (obj, att) { + set([...node.attributes].reduce(function (obj, att) { obj[att.name] = att.value; // Attr.nodeName and Attr.nodeValue are deprecated as of DOM4 as Attr no longer inherits from Node, so we can safely use name and value return obj; @@ -1771,12 +1491,14 @@ jml.toJML = function (dom, config) { set(start); } - children = node.childNodes; + const { + childNodes + } = node; - if (children.length) { + if (childNodes.length) { setChildren(); // Element children array container - _toConsumableArray(children).forEach(function (childNode) { + [...childNodes].forEach(function (childNode) { parseDOM(childNode, namespaces); }); } @@ -1796,7 +1518,8 @@ jml.toJML = function (dom, config) { case 3: // TEXT - if (config.stripWhitespace && /^[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]+$/.test(node.nodeValue)) { + if (stripWhitespace && /^\s+$/u.test(node.nodeValue)) { + set(''); return; } @@ -1806,76 +1529,34 @@ jml.toJML = function (dom, config) { case 4: // CDATA if (node.nodeValue.includes(']]' + '>')) { - invalidStateError(); + invalidStateError('CDATA cannot end with closing ]]>'); } set(['![', node.nodeValue]); break; case 5: - // ENTITY REFERENCE (probably not used in browsers since already resolved) + // ENTITY REFERENCE (though not in browsers (was already resolved + // anyways), ok to keep for parity with our "entity" shorthand) set(['&', node.nodeName]); break; - case 6: - // ENTITY (would need to pass in directly) - setTemp(); - start = {}; - - if (node.xmlEncoding || node.xmlVersion) { - // an external entity file? - start.$ENTITY = { - name: node.nodeName, - version: node.xmlVersion, - encoding: node.xmlEncoding - }; - } else { - start.$ENTITY = { - name: node.nodeName - }; - - if (node.publicId || node.systemId) { - // External Entity? - addExternalID(start.$ENTITY, node); - - if (node.notationName) { - start.$ENTITY.NDATA = node.notationName; - } - } - } - - set(start); - children = node.childNodes; - - if (children.length) { - start.$ENTITY.childNodes = []; // Set position to $ENTITY's childNodes array children - - setObj('$ENTITY', 'childNodes'); - - _toConsumableArray(children).forEach(function (childNode) { - parseDOM(childNode, namespaces); - }); - } - - resetTemp(); - break; - case 7: // PROCESSING INSTRUCTION - if (/^xml$/i.test(node.target)) { - invalidStateError(); + if (/^xml$/iu.test(node.target)) { + invalidStateError('Processing instructions cannot be "xml".'); } if (node.target.includes('?>')) { - invalidStateError(); + invalidStateError('Processing instruction targets cannot include ?>'); } if (node.target.includes(':')) { - invalidStateError(); + invalidStateError('The processing instruction target cannot include ":"'); } if (node.data.includes('?>')) { - invalidStateError(); + invalidStateError('Processing instruction data cannot include ?>'); } set(['?', node.target, node.data]); // Todo: Could give option to attempt to convert value back into object if has pseudo-attributes @@ -1885,7 +1566,7 @@ jml.toJML = function (dom, config) { case 8: // COMMENT if (node.nodeValue.includes('--') || node.nodeValue.length && node.nodeValue.lastIndexOf('-') === node.nodeValue.length - 1) { - invalidStateError(); + invalidStateError('Comments cannot include --'); } set(['!', node.nodeValue]); @@ -1895,37 +1576,29 @@ jml.toJML = function (dom, config) { { // DOCUMENT setTemp(); - var docObj = { + const docObj = { $document: { childNodes: [] } }; - - if (config.xmlDeclaration) { - docObj.$document.xmlDeclaration = { - version: doc.xmlVersion, - encoding: doc.xmlEncoding, - standAlone: doc.xmlStandalone - }; - } - set(docObj); // doc.implementation.createHTMLDocument // Set position to fragment's array children setObj('$document', 'childNodes'); - children = node.childNodes; + const { + childNodes + } = node; - if (!children.length) { - invalidStateError(); + if (!childNodes.length) { + invalidStateError('Documents must have a child node'); } // set({$xmlDocument: []}); // doc.implementation.createDocument // Todo: use this conditionally - _toConsumableArray(children).forEach(function (childNode) { + [...childNodes].forEach(function (childNode) { // Can't just do documentElement as there may be doctype, comments, etc. // No need for setChildren, as we have already built the container array parseDOM(childNode, namespaces); }); - resetTemp(); break; } @@ -1935,84 +1608,44 @@ jml.toJML = function (dom, config) { // DOCUMENT TYPE setTemp(); // Can create directly by doc.implementation.createDocumentType - start = { + const start = { $DOCTYPE: { name: node.name } }; - - if (node.internalSubset) { - start.internalSubset = node.internalSubset; - } - - var pubIdChar = /^( |\r|\n|[0-9A-Za-z]|[!#-%'-\/:;=\?@_])*$/; // eslint-disable-line no-control-regex + const pubIdChar = /^(\u0020|\u000D|\u000A|[a-zA-Z0-9]|[-'()+,./:=?;!*#@$_%])*$/u; // eslint-disable-line no-control-regex if (!pubIdChar.test(node.publicId)) { - invalidStateError(); + invalidStateError('A publicId must have valid characters.'); } addExternalID(start.$DOCTYPE, node); // Fit in internal subset along with entities?: probably don't need as these would only differ if from DTD, and we're not rebuilding the DTD - set(start); // Auto-generate the internalSubset instead? Avoid entities/notations in favor of array to preserve order? - - var entities = node.entities; // Currently deprecated - - if (entities && entities.length) { - start.$DOCTYPE.entities = []; - setObj('$DOCTYPE', 'entities'); - - _toConsumableArray(entities).forEach(function (entity) { - parseDOM(entity, namespaces); - }); // Reset for notations - - - parent = tmpParent; - parentIdx = tmpParentIdx + 1; - } - - var notations = node.notations; // Currently deprecated - - if (notations && notations.length) { - start.$DOCTYPE.notations = []; - setObj('$DOCTYPE', 'notations'); - - _toConsumableArray(notations).forEach(function (notation) { - parseDOM(notation, namespaces); - }); - } + set(start); // Auto-generate the internalSubset instead? resetTemp(); break; } case 11: - // DOCUMENT FRAGMENT - setTemp(); - set({ - '#': [] - }); // Set position to fragment's array children + { + // DOCUMENT FRAGMENT + setTemp(); + set({ + '#': [] + }); // Set position to fragment's array children - setObj('#'); - children = node.childNodes; - - _toConsumableArray(children).forEach(function (childNode) { - // No need for setChildren, as we have already built the container array - parseDOM(childNode, namespaces); - }); - - resetTemp(); - break; - - case 12: - // NOTATION - start = { - $NOTATION: { - name: node.nodeName - } - }; - addExternalID(start.$NOTATION, node); - set(start); - break; + setObj('#'); + const { + childNodes + } = node; + [...childNodes].forEach(function (childNode) { + // No need for setChildren, as we have already built the container array + parseDOM(childNode, namespaces); + }); + resetTemp(); + break; + } default: throw new TypeError('Not an XML type'); @@ -2021,7 +1654,7 @@ jml.toJML = function (dom, config) { parseDOM(dom, {}); - if (config.stringOutput) { + if (stringOutput) { return JSON.stringify(ret[0]); } @@ -2035,238 +1668,246 @@ jml.toJMLString = function (dom, config) { }; /** * - * @param {JamilihArray} args + * @param {...JamilihArray} args * @returns {JamilihReturn} */ -jml.toDOM = function () { +jml.toDOM = function (...args) { // Alias for jml() - return jml.apply(void 0, arguments); + return jml(...args); }; /** * - * @param {JamilihArray} args + * @param {...JamilihArray} args * @returns {string} */ -jml.toHTML = function () { +jml.toHTML = function (...args) { // Todo: Replace this with version of jml() that directly builds a string - var ret = jml.apply(void 0, arguments); // Todo: deal with serialization of properties like 'selected', 'checked', 'value', 'defaultValue', 'for', 'dataset', 'on*', 'style'! (i.e., need to build a string ourselves) + const ret = jml(...args); // Todo: deal with serialization of properties like 'selected', + // 'checked', 'value', 'defaultValue', 'for', 'dataset', 'on*', + // 'style'! (i.e., need to build a string ourselves) return ret.outerHTML; }; /** * - * @param {JamilihArray} args + * @param {...JamilihArray} args * @returns {string} */ -jml.toDOMString = function () { +jml.toDOMString = function (...args) { // Alias for jml.toHTML for parity with jml.toJMLString - return jml.toHTML.apply(jml, arguments); + return jml.toHTML(...args); }; /** * - * @param {JamilihArray} args + * @param {...JamilihArray} args * @returns {string} */ -jml.toXML = function () { - var ret = jml.apply(void 0, arguments); - return new XmlSerializer().serializeToString(ret); +jml.toXML = function (...args) { + const ret = jml(...args); + return new win.XMLSerializer().serializeToString(ret); }; /** * - * @param {JamilihArray} args + * @param {...JamilihArray} args * @returns {string} */ -jml.toXMLDOMString = function () { +jml.toXMLDOMString = function (...args) { // Alias for jml.toXML for parity with jml.toJMLString - return jml.toXML.apply(jml, arguments); + return jml.toXML(...args); }; +/** + * Element-aware wrapper for `Map`. + */ -var JamilihMap = -/*#__PURE__*/ -function (_Map) { - _inherits(JamilihMap, _Map); - function JamilihMap() { - _classCallCheck(this, JamilihMap); +class JamilihMap extends Map { + /** + * @param {string|Element} elem + * @returns {any} + */ + get(elem) { + elem = typeof elem === 'string' ? $(elem) : elem; + return super.get.call(this, elem); + } + /** + * @param {string|Element} elem + * @param {any} value + * @returns {any} + */ - return _possibleConstructorReturn(this, _getPrototypeOf(JamilihMap).apply(this, arguments)); + + set(elem, value) { + elem = typeof elem === 'string' ? $(elem) : elem; + return super.set.call(this, elem, value); + } + /** + * @param {string|Element} elem + * @param {string} methodName + * @param {...any} args + * @returns {any} + */ + + + invoke(elem, methodName, ...args) { + elem = typeof elem === 'string' ? $(elem) : elem; + return this.get(elem)[methodName](elem, ...args); } - _createClass(JamilihMap, [{ - key: "get", - value: function get(elem) { - elem = typeof elem === 'string' ? $(elem) : elem; - return _get(_getPrototypeOf(JamilihMap.prototype), "get", this).call(this, elem); - } - }, { - key: "set", - value: function set(elem, value) { - elem = typeof elem === 'string' ? $(elem) : elem; - return _get(_getPrototypeOf(JamilihMap.prototype), "set", this).call(this, elem, value); - } - }, { - key: "invoke", - value: function invoke(elem, methodName) { - var _this$get; +} +/** + * Element-aware wrapper for `WeakMap`. + */ - elem = typeof elem === 'string' ? $(elem) : elem; - for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) { - args[_key3 - 2] = arguments[_key3]; - } +class JamilihWeakMap extends WeakMap { + /** + * @param {string|Element} elem + * @returns {any} + */ + get(elem) { + elem = typeof elem === 'string' ? $(elem) : elem; + return super.get.call(this, elem); + } + /** + * @param {string|Element} elem + * @param {any} value + * @returns {any} + */ - return (_this$get = this.get(elem))[methodName].apply(_this$get, [elem].concat(args)); - } - }]); - return JamilihMap; -}(_wrapNativeSuper(Map)); + set(elem, value) { + elem = typeof elem === 'string' ? $(elem) : elem; + return super.set.call(this, elem, value); + } + /** + * @param {string|Element} elem + * @param {string} methodName + * @param {...any} args + * @returns {any} + */ -var JamilihWeakMap = -/*#__PURE__*/ -function (_WeakMap) { - _inherits(JamilihWeakMap, _WeakMap); - function JamilihWeakMap() { - _classCallCheck(this, JamilihWeakMap); - - return _possibleConstructorReturn(this, _getPrototypeOf(JamilihWeakMap).apply(this, arguments)); + invoke(elem, methodName, ...args) { + elem = typeof elem === 'string' ? $(elem) : elem; + return this.get(elem)[methodName](elem, ...args); } - _createClass(JamilihWeakMap, [{ - key: "get", - value: function get(elem) { - elem = typeof elem === 'string' ? $(elem) : elem; - return _get(_getPrototypeOf(JamilihWeakMap.prototype), "get", this).call(this, elem); - } - }, { - key: "set", - value: function set(elem, value) { - elem = typeof elem === 'string' ? $(elem) : elem; - return _get(_getPrototypeOf(JamilihWeakMap.prototype), "set", this).call(this, elem, value); - } - }, { - key: "invoke", - value: function invoke(elem, methodName) { - var _this$get2; - - elem = typeof elem === 'string' ? $(elem) : elem; - - for (var _len4 = arguments.length, args = new Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) { - args[_key4 - 2] = arguments[_key4]; - } - - return (_this$get2 = this.get(elem))[methodName].apply(_this$get2, [elem].concat(args)); - } - }]); - - return JamilihWeakMap; -}(_wrapNativeSuper(WeakMap)); +} jml.Map = JamilihMap; jml.WeakMap = JamilihWeakMap; +/** +* @typedef {GenericArray} MapAndElementArray +* @property {JamilihWeakMap|JamilihMap} 0 +* @property {Element} 1 +*/ -jml.weak = function (obj) { - var map = new JamilihWeakMap(); +/** + * @param {GenericObject} obj + * @param {...JamilihArray} args + * @returns {MapAndElementArray} + */ - for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) { - args[_key5 - 1] = arguments[_key5]; - } - - var elem = jml.apply(void 0, [{ +jml.weak = function (obj, ...args) { + const map = new JamilihWeakMap(); + const elem = jml({ $map: [map, obj] - }].concat(args)); + }, ...args); return [map, elem]; }; +/** + * @param {any} obj + * @param {...JamilihArray} args + * @returns {MapAndElementArray} + */ -jml.strong = function (obj) { - var map = new JamilihMap(); - for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) { - args[_key6 - 1] = arguments[_key6]; - } - - var elem = jml.apply(void 0, [{ +jml.strong = function (obj, ...args) { + const map = new JamilihMap(); + const elem = jml({ $map: [map, obj] - }].concat(args)); + }, ...args); return [map, elem]; }; +/** + * @param {string|Element} elem If a string, will be interpreted as a selector + * @param {symbol|string} sym If a string, will be used with `Symbol.for` + * @returns {any} The value associated with the symbol + */ -jml.symbol = jml.sym = jml["for"] = function (elem, sym) { + +jml.symbol = jml.sym = jml.for = function (elem, sym) { elem = typeof elem === 'string' ? $(elem) : elem; - return elem[_typeof(sym) === 'symbol' ? sym : Symbol["for"](sym)]; + return elem[typeof sym === 'symbol' ? sym : Symbol.for(sym)]; }; +/** + * @param {string|Element} elem If a string, will be interpreted as a selector + * @param {symbol|string|Map|WeakMap} symOrMap If a string, will be used with `Symbol.for` + * @param {string|any} methodName Can be `any` if the symbol or map directly + * points to a function (it is then used as the first argument). + * @param {any[]} args + * @returns {any} + */ -jml.command = function (elem, symOrMap, methodName) { - var _func3; +jml.command = function (elem, symOrMap, methodName, ...args) { elem = typeof elem === 'string' ? $(elem) : elem; - var func; - - for (var _len7 = arguments.length, args = new Array(_len7 > 3 ? _len7 - 3 : 0), _key7 = 3; _key7 < _len7; _key7++) { - args[_key7 - 3] = arguments[_key7]; - } - - if (['symbol', 'string'].includes(_typeof(symOrMap))) { - var _func; + let func; + if (['symbol', 'string'].includes(typeof symOrMap)) { func = jml.sym(elem, symOrMap); if (typeof func === 'function') { - return func.apply(void 0, [methodName].concat(args)); // Already has `this` bound to `elem` + return func(methodName, ...args); // Already has `this` bound to `elem` } - return (_func = func)[methodName].apply(_func, args); + return func[methodName](...args); } func = symOrMap.get(elem); if (typeof func === 'function') { - var _func2; - - return (_func2 = func).call.apply(_func2, [elem, methodName].concat(args)); + return func.call(elem, methodName, ...args); } - return (_func3 = func)[methodName].apply(_func3, [elem].concat(args)); // return func[methodName].call(elem, ...args); + return func[methodName](elem, ...args); // return func[methodName].call(elem, ...args); }; +/** + * Expects properties `document`, `XMLSerializer`, and `DOMParser`. + * Also updates `body` with `document.body`. + * @param {Window} wind + * @returns {void} + */ -jml.setWindow = function (wind) { + +jml.setWindow = wind => { win = wind; -}; + doc = win.document; -jml.setDocument = function (docum) { - doc = docum; - - if (docum && docum.body) { - body = docum.body; + if (doc && doc.body) { + ({ + body + } = doc); } }; +/** + * @returns {Window} + */ -jml.setXMLSerializer = function (xmls) { - XmlSerializer = xmls; -}; -jml.getWindow = function () { +jml.getWindow = () => { return win; }; - -jml.getDocument = function () { - return doc; -}; - -jml.getXMLSerializer = function () { - return XmlSerializer; -}; /** * Does not run Jamilih so can be further processed. * @param {JamilihArray} jmlArray @@ -2276,15 +1917,16 @@ jml.getXMLSerializer = function () { function glue(jmlArray, glu) { - return _toConsumableArray(jmlArray).reduce(function (arr, item) { + return [...jmlArray].reduce((arr, item) => { arr.push(item, glu); return arr; }, []).slice(0, -1); -} +} // istanbul ignore next -var body = doc && doc.body; // eslint-disable-line import/no-mutable-exports -var nbsp = "\xA0"; // Very commonly needed in templates +let body = doc && doc.body; // eslint-disable-line import/no-mutable-exports + +const nbsp = '\u00A0'; // Very commonly needed in templates export default jml; export { $, $$, body, glue, jml, nbsp }; diff --git a/editor/external/qr-manipulation/dist/index-es.js b/editor/external/qr-manipulation/dist/index-es.js index 3dcccfff..8d2b23c1 100644 --- a/editor/external/qr-manipulation/dist/index-es.js +++ b/editor/external/qr-manipulation/dist/index-es.js @@ -37,6 +37,10 @@ function _iterableToArray(iter) { } function _iterableToArrayLimit(arr, i) { + if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { + return; + } + var _arr = []; var _n = true; var _d = false; @@ -100,18 +104,18 @@ function convertToString(content, type) { } case undefined: - { - // Array of nodes, QueryResult objects - // if (Array.isArray(content)) { - if (typeof content.reduce === 'function') { - return content.reduce(function (s, node) { - return s + convertToString(node, type); - }, ''); - } + // Array of nodes, QueryResult objects + // if (Array.isArray(content)) { + if (typeof content.reduce === 'function') { + return content.reduce(function (s, node) { + return s + convertToString(node, type); + }, ''); } + + break; } - return; + return undefined; } case 'string': @@ -536,4 +540,4 @@ var manipulation = function manipulation($, jml) { return $; }; -export { after, before, append, prepend, html, text, insertTo, clone, empty, remove, attr, removeAttr, addClass, removeClass, hasClass, toggleClass, manipulation }; +export { addClass, after, append, attr, before, clone, empty, hasClass, html, insertTo, manipulation, prepend, remove, removeAttr, removeClass, text, toggleClass }; diff --git a/editor/external/regenerator-runtime/runtime.js b/editor/external/regenerator-runtime/runtime.js index 92d18150..224bf70e 100644 --- a/editor/external/regenerator-runtime/runtime.js +++ b/editor/external/regenerator-runtime/runtime.js @@ -130,7 +130,7 @@ var runtime = (function (exports) { return { __await: arg }; }; - function AsyncIterator(generator) { + function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if (record.type === "throw") { @@ -141,14 +141,14 @@ var runtime = (function (exports) { if (value && typeof value === "object" && hasOwn.call(value, "__await")) { - return Promise.resolve(value.__await).then(function(value) { + return PromiseImpl.resolve(value.__await).then(function(value) { invoke("next", value, resolve, reject); }, function(err) { invoke("throw", err, resolve, reject); }); } - return Promise.resolve(value).then(function(unwrapped) { + return PromiseImpl.resolve(value).then(function(unwrapped) { // When a yielded Promise is resolved, its final value becomes // the .value of the Promise<{value,done}> result for the // current iteration. @@ -166,7 +166,7 @@ var runtime = (function (exports) { function enqueue(method, arg) { function callInvokeWithMethodAndArg() { - return new Promise(function(resolve, reject) { + return new PromiseImpl(function(resolve, reject) { invoke(method, arg, resolve, reject); }); } @@ -206,9 +206,12 @@ var runtime = (function (exports) { // Note that simple async functions are implemented on top of // AsyncIterator objects; they just return a Promise for the value of // the final result produced by the iterator. - exports.async = function(innerFn, outerFn, self, tryLocsList) { + exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) { + if (PromiseImpl === void 0) PromiseImpl = Promise; + var iter = new AsyncIterator( - wrap(innerFn, outerFn, self, tryLocsList) + wrap(innerFn, outerFn, self, tryLocsList), + PromiseImpl ); return exports.isGeneratorFunction(outerFn) diff --git a/editor/external/stackblur-canvas/dist/stackblur-es.js b/editor/external/stackblur-canvas/dist/stackblur-es.js index 0404b7be..3721f814 100644 --- a/editor/external/stackblur-canvas/dist/stackblur-es.js +++ b/editor/external/stackblur-canvas/dist/stackblur-es.js @@ -1,4 +1,6 @@ function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function (obj) { return typeof obj; @@ -18,6 +20,8 @@ function _classCallCheck(instance, Constructor) { } } +/* eslint-disable no-bitwise, unicorn/prefer-query-selector */ + /** * StackBlur - a fast almost Gaussian Blur For Canvas * @@ -26,9 +30,9 @@ function _classCallCheck(instance, Constructor) { * mario@quasimondo.de * * Or support me on flattr: -* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript} +* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}. +* * @module StackBlur -* @version 0.5 * @author Mario Klingemann * Contact: mario@quasimondo.com * Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html} @@ -57,8 +61,12 @@ function _classCallCheck(instance, Constructor) { * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ + +/* eslint-disable max-len */ var mulTable = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259]; var shgTable = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24]; +/* eslint-enable max-len */ + /** * @param {string|HTMLImageElement} img * @param {string|HTMLCanvasElement} canvas @@ -122,7 +130,7 @@ function getImageDataFromCanvas(canvas, topX, topY, width, height) { } if (!canvas || _typeof(canvas) !== 'object' || !('getContext' in canvas)) { - throw new TypeError('Expecting canvas with `getContext` method in processCanvasRGB(A) calls!'); + throw new TypeError('Expecting canvas with `getContext` method ' + 'in processCanvasRGB(A) calls!'); } var context = canvas.getContext('2d'); @@ -555,7 +563,11 @@ function processImageDataRGB(imageData, topX, topY, width, height, radius) { */ -var BlurStack = function BlurStack() { +var BlurStack = +/** + * Set properties. + */ +function BlurStack() { _classCallCheck(this, BlurStack); this.r = 0; @@ -565,4 +577,4 @@ var BlurStack = function BlurStack() { this.next = null; }; -export { BlurStack, processImage as image, processCanvasRGBA as canvasRGBA, processCanvasRGB as canvasRGB, processImageDataRGBA as imageDataRGBA, processImageDataRGB as imageDataRGB }; +export { BlurStack, processCanvasRGB as canvasRGB, processCanvasRGBA as canvasRGBA, processImage as image, processImageDataRGB as imageDataRGB, processImageDataRGBA as imageDataRGBA }; diff --git a/editor/history.js b/editor/history.js index d56c5267..40f0064a 100644 --- a/editor/history.js +++ b/editor/history.js @@ -1,5 +1,5 @@ /** - * For command history tracking and undo functionality + * For command history tracking and undo functionality. * @module history * @license MIT * @copyright 2010 Jeff Schiller @@ -9,7 +9,7 @@ import {getHref, setHref, getRotationAngle, isNullish} from './utilities.js'; import {removeElementFromListMap} from './svgtransformlist.js'; /** -* Group: Undo/Redo history management +* Group: Undo/Redo history management. */ export const HistoryEventTypes = { BEFORE_APPLY: 'before_apply', @@ -41,38 +41,38 @@ class Command { * @interface module:history.HistoryCommand */ /** - * Applies + * Applies. * * @function module:history.HistoryCommand#apply - * @param {module:history.HistoryEventHandler} + * @param {module:history.HistoryEventHandler} handler * @fires module:history~Command#event:history * @returns {void|true} */ /** * - * Unapplies + * Unapplies. * @function module:history.HistoryCommand#unapply - * @param {module:history.HistoryEventHandler} + * @param {module:history.HistoryEventHandler} handler * @fires module:history~Command#event:history * @returns {void|true} */ /** - * Returns the elements + * Returns the elements. * @function module:history.HistoryCommand#elements * @returns {Element[]} */ /** - * Gets the text + * Gets the text. * @function module:history.HistoryCommand#getText * @returns {string} */ /** - * Gives the type + * Gives the type. * @function module:history.HistoryCommand.type * @returns {string} */ /** - * Gives the type + * Gives the type. * @function module:history.HistoryCommand#type * @returns {string} */ @@ -99,12 +99,14 @@ class Command { /** * History command for an element that had its DOM position changed. * @implements {module:history.HistoryCommand} - * @param {Element} elem - The DOM element that was moved - * @param {Element} oldNextSibling - The element's next sibling before it was moved - * @param {Element} oldParent - The element's parent before it was moved - * @param {string} [text] - An optional string visible to user related to this change */ export class MoveElementCommand extends Command { + /** + * @param {Element} elem - The DOM element that was moved + * @param {Element} oldNextSibling - The element's next sibling before it was moved + * @param {Element} oldParent - The element's parent before it was moved + * @param {string} [text] - An optional string visible to user related to this change + */ constructor (elem, oldNextSibling, oldParent, text) { super(); this.elem = elem; @@ -114,6 +116,9 @@ export class MoveElementCommand extends Command { this.newNextSibling = elem.nextSibling; this.newParent = elem.parentNode; } + /** + * @returns {"svgedit.history.MoveElementCommand"} + */ type () { // eslint-disable-line class-methods-use-this return 'svgedit.history.MoveElementCommand'; } @@ -167,11 +172,12 @@ MoveElementCommand.type = MoveElementCommand.prototype.type; /** * History command for an element that was added to the DOM. * @implements {module:history.HistoryCommand} -* -* @param {Element} elem - The newly added DOM element -* @param {string} text - An optional string visible to user related to this change */ export class InsertElementCommand extends Command { + /** + * @param {Element} elem - The newly added DOM element + * @param {string} text - An optional string visible to user related to this change + */ constructor (elem, text) { super(); this.elem = elem; @@ -180,6 +186,9 @@ export class InsertElementCommand extends Command { this.nextSibling = this.elem.nextSibling; } + /** + * @returns {"svgedit.history.InsertElementCommand"} + */ type () { // eslint-disable-line class-methods-use-this return 'svgedit.history.InsertElementCommand'; } @@ -214,7 +223,7 @@ export class InsertElementCommand extends Command { } this.parent = this.elem.parentNode; - this.elem = this.elem.parentNode.removeChild(this.elem); + this.elem = this.elem.remove(); if (handler) { handler.handleHistoryEvent(HistoryEventTypes.AFTER_UNAPPLY, this); @@ -233,12 +242,14 @@ InsertElementCommand.type = InsertElementCommand.prototype.type; /** * History command for an element removed from the DOM. * @implements {module:history.HistoryCommand} -* @param {Element} elem - The removed DOM element -* @param {Node} oldNextSibling - The DOM element's nextSibling when it was in the DOM -* @param {Element} oldParent - The DOM element's parent -* @param {string} [text] - An optional string visible to user related to this change */ export class RemoveElementCommand extends Command { + /** + * @param {Element} elem - The removed DOM element + * @param {Node} oldNextSibling - The DOM element's nextSibling when it was in the DOM + * @param {Element} oldParent - The DOM element's parent + * @param {string} [text] - An optional string visible to user related to this change + */ constructor (elem, oldNextSibling, oldParent, text) { super(); this.elem = elem; @@ -249,6 +260,9 @@ export class RemoveElementCommand extends Command { // special hack for webkit: remove this element's entry in the svgTransformLists map removeElementFromListMap(elem); } + /** + * @returns {"svgedit.history.RemoveElementCommand"} + */ type () { // eslint-disable-line class-methods-use-this return 'svgedit.history.RemoveElementCommand'; } @@ -266,7 +280,7 @@ export class RemoveElementCommand extends Command { removeElementFromListMap(this.elem); this.parent = this.elem.parentNode; - this.elem = this.parent.removeChild(this.elem); + this.elem = this.elem.remove(); if (handler) { handler.handleHistoryEvent(HistoryEventTypes.AFTER_APPLY, this); @@ -317,11 +331,13 @@ RemoveElementCommand.type = RemoveElementCommand.prototype.type; * History command to make a change to an element. * Usually an attribute change, but can also be textcontent. * @implements {module:history.HistoryCommand} -* @param {Element} elem - The DOM element that was changed -* @param {module:history.CommandAttributes} attrs - Attributes to be changed with the values they had *before* the change -* @param {string} text - An optional string visible to user related to this change */ export class ChangeElementCommand extends Command { + /** + * @param {Element} elem - The DOM element that was changed + * @param {module:history.CommandAttributes} attrs - Attributes to be changed with the values they had *before* the change + * @param {string} text - An optional string visible to user related to this change + */ constructor (elem, attrs, text) { super(); this.elem = elem; @@ -338,6 +354,9 @@ export class ChangeElementCommand extends Command { } } } + /** + * @returns {"svgedit.history.ChangeElementCommand"} + */ type () { // eslint-disable-line class-methods-use-this return 'svgedit.history.ChangeElementCommand'; } @@ -473,6 +492,9 @@ export class BatchCommand extends Command { this.stack = []; } + /** + * @returns {"svgedit.history.BatchCommand"} + */ type () { // eslint-disable-line class-methods-use-this return 'svgedit.history.BatchCommand'; } diff --git a/editor/historyrecording.js b/editor/historyrecording.js index a87af5e2..36debac2 100644 --- a/editor/historyrecording.js +++ b/editor/historyrecording.js @@ -1,5 +1,5 @@ /** - * HistoryRecordingService component of history + * HistoryRecordingService component of history. * @module history * @license MIT * @copyright 2016 Flint O'Brien @@ -24,7 +24,7 @@ import { * * The following will record history: insert, batch, insert. * @example - * hrService = new history.HistoryRecordingService(this.undoMgr); + * hrService = new HistoryRecordingService(this.undoMgr); * hrService.insertElement(elem, text); // add simple command to history. * hrService.startBatchCommand('create two elements'); * hrService.changeElement(elem, attrs, text); // add to batchCommand diff --git a/editor/images/README.txt b/editor/images/README.txt index 184e3e72..7c5b5739 100644 --- a/editor/images/README.txt +++ b/editor/images/README.txt @@ -41,8 +41,8 @@ none.png open.png paste.png path.png -polygon.png http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/tools/draw-polygon.png -polygon.svg http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/tools/draw-polygon.svg +polygon.png https://github.com/SVG-Edit/svgedit/issues/377 +polygon.svg https://github.com/SVG-Edit/svgedit/issues/377 rect.png redo.png rotate.png diff --git a/editor/images/config.png b/editor/images/config.png new file mode 100644 index 00000000..a4fbf6b5 Binary files /dev/null and b/editor/images/config.png differ diff --git a/editor/images/config.svg b/editor/images/config.svg new file mode 100644 index 00000000..a62cae6e --- /dev/null +++ b/editor/images/config.svg @@ -0,0 +1 @@ +<svg width="64" height="64" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M655.872 960a61.952 61.952 0 0 1-45.376-19.136c-14.912-16.192-62.272-58.24-100.992-58.24-38.464 0-86.528 42.304-100.352 57.216a62.144 62.144 0 0 1-68.224 14.144l-1.28-0.576-117.76-65.088-1.088-0.832a55.552 55.552 0 0 1-18.944-67.52c0.064-0.192 10.816-24.768 10.816-47.168 0-67.968-56-123.392-124.8-123.392h-4.16l-0.768 0.064c-19.712 0-35.776-17.344-40.896-44.096C41.6 603.264 32 552.448 32 512.384c0-40 9.6-90.88 10.048-92.992 5.184-27.136 21.568-44.48 41.664-44.096h4.16c68.8 0 124.8-55.296 124.8-123.328 0-22.4-10.752-46.976-10.88-47.232a55.424 55.424 0 0 1 19.136-67.456l1.216-0.832 124.224-67.456 1.344-0.576a63.36 63.36 0 0 1 67.968 13.952c14.656 15.232 61.184 54.784 98.816 54.784 37.312 0 83.52-38.784 98.112-53.76a63.616 63.616 0 0 1 68.032-13.376l1.28 0.576 120 65.92 1.216 0.832a55.424 55.424 0 0 1 19.072 67.456c-0.128 0.192-10.88 24.768-10.88 47.168 0 67.968 56 123.328 124.8 123.328h4.16c19.968-0.384 36.416 17.024 41.6 44.096 0.512 2.112 10.112 52.992 10.112 92.992 0 40.064-9.6 90.88-10.048 92.992-5.184 27.136-21.632 44.48-41.6 44.032h-4.16c-68.8 0-124.8 55.36-124.8 123.392 0 22.464 10.752 46.976 10.88 47.232a55.36 55.36 0 0 1-19.072 67.392l-1.28 0.896-122.048 66.688-1.344 0.512a56.32 56.32 0 0 1-22.656 4.48z m-6.016-64.832a8.192 8.192 0 0 0 3.648 0.96h0.192l112.128-61.056c-2.688-6.208-15.04-36.16-15.04-67.584 0-93.76 75.008-170.56 169.024-175.296 1.344-7.36 8.704-48.832 8.704-79.808s-7.296-72.384-8.704-79.744c-94.016-4.864-169.024-81.664-169.024-175.36 0-31.424 12.416-61.44 15.104-67.648l-110.4-60.352h-0.448a8.448 8.448 0 0 0-4.16 1.088 309.12 309.12 0 0 1-40.832 33.728c-33.984 23.552-66.176 35.456-95.552 35.456-29.76 0-62.144-12.16-96.384-36.16a312.064 312.064 0 0 1-41.024-34.432 9.088 9.088 0 0 0-4.224-1.024H372.48l-114.304 61.76c2.752 6.272 15.104 36.288 15.104 67.584 0 93.696-75.008 170.496-169.024 175.36-1.408 7.36-8.704 48.704-8.704 79.744s7.36 72.384 8.704 79.744c94.016 4.8 169.024 81.6 169.024 175.36 0 31.424-12.48 61.632-15.104 67.712l108.16 59.52h0.256a8 8 0 0 0 3.584-0.896c2.048-2.112 18.176-19.008 41.408-35.776 34.688-25.088 67.648-37.76 97.92-37.76 30.656 0 63.872 12.928 98.752 38.464 23.36 17.152 39.616 34.24 41.6 36.416z m-137.984-223.104c-88.32 0-160.192-71.68-160.192-159.808s71.872-159.744 160.192-159.744c88.384 0 160.256 71.616 160.256 159.744s-71.872 159.808-160.256 159.808z m0-255.744a96 96 0 0 0 0 191.808 95.936 95.936 0 0 0 0-191.808z"></path></svg> \ No newline at end of file diff --git a/editor/images/freehand-square.png b/editor/images/freehand-square.png index ecd7f3d2..1ca3e578 100644 Binary files a/editor/images/freehand-square.png and b/editor/images/freehand-square.png differ diff --git a/editor/images/freehand-square.svg b/editor/images/freehand-square.svg new file mode 100644 index 00000000..bad96937 --- /dev/null +++ b/editor/images/freehand-square.svg @@ -0,0 +1,16 @@ +<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52"> + <defs> + <linearGradient y2="1" x2="1" y1="0.10156" x1="0.36328" id="svg_2"> + <stop stop-opacity="1" stop-color="#ffffff" offset="0"/> + <stop stop-opacity="1" stop-color="#3b7e9b" offset="1"/> + </linearGradient> + <linearGradient y2="0.3945" x2="0.6132" y1="0.1093" x1="0.3046" id="svg_9"> + <stop stop-opacity="1" stop-color="#f9d225" offset="0"/> + <stop stop-opacity="1" stop-color="#bf5f00" offset="1"/> + </linearGradient> + </defs> + <rect stroke-width="2" stroke="#000000" fill="url(#svg_2)" x="3.25" y="25.75" width="46" height="25"/> + <path stroke-width="2" stroke="#000000" fill="url(#svg_9)" d="m31.5,0l-8.75,20.25l0.75,24l16.5,-16.5l6,-12.5"/> + <path stroke-width="2" stroke="#000000" fill="#fce0a9" d="m39.5,28.5c-2,-9.25 -10.25,-11.75 -17,-7.4375l0.4843,24.4414z"/> + <path stroke-width="2" stroke="#000000" fill="#000000" d="m26.9318,41.1745c-0.4491,-2.3511 -2.3021,-2.9866 -3.8181,-1.8905l0.1087,6.2126z"/> +</svg> diff --git a/editor/images/polygon.png b/editor/images/polygon.png index 533ea1f6..609b3e55 100644 Binary files a/editor/images/polygon.png and b/editor/images/polygon.png differ diff --git a/editor/images/polygon.svg b/editor/images/polygon.svg index a7f955d8..e4962213 100644 --- a/editor/images/polygon.svg +++ b/editor/images/polygon.svg @@ -1,219 +1,76 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - sodipodi:docname="draw-polygon.svg" - sodipodi:docbase="/home/andreas/projekt/tango/22" - inkscape:version="0.42" - id="svg8728" - height="22.000000px" + version="1.1" width="22.000000px" - inkscape:export-filename="/home/andreas/projekt/tango/22/draw-polygon.png" - inkscape:export-xdpi="90.000000" - inkscape:export-ydpi="90.000000"> + height="22.000000px" + id="svg8728" + sodipodi:docname="polygon.svg" + inkscape:version="0.92.4 (5da689c313, 2019-01-14)"> + <metadata id="license"> + This file is released under the MIT license. + </metadata> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1414" + inkscape:window-height="1016" + id="namedview989" + showgrid="false" + inkscape:zoom="9.8636364" + inkscape:cx="2.1014226" + inkscape:cy="26.429249" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="0" + inkscape:current-layer="layer1" /> <defs id="defs3"> <linearGradient - inkscape:collect="always" - id="linearGradient3941"> + id="linearGradient928"> <stop - style="stop-color:#000000;stop-opacity:1;" + style="stop-color:#777777;stop-opacity:1;" offset="0" - id="stop3943" /> + id="stop924" /> <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop3945" /> - </linearGradient> - <linearGradient - id="linearGradient6581"> - <stop - style="stop-color:#eeeeec;stop-opacity:1;" - offset="0" - id="stop6583" /> - <stop - style="stop-color:#e0e0de;stop-opacity:1.0000000;" + style="stop-color:#ffffff;stop-opacity:0" offset="1.0000000" - id="stop6585" /> + id="stop926" /> </linearGradient> - <linearGradient - id="linearGradient14920"> - <stop - id="stop14922" - offset="0" - style="stop-color:#5a7aa4;stop-opacity:1;" /> - <stop - id="stop14924" - offset="1.0000000" - style="stop-color:#1f2b3a;stop-opacity:1.0000000;" /> - </linearGradient> - <linearGradient - id="linearGradient13390"> - <stop - id="stop13392" - offset="0.0000000" - style="stop-color:#81a2cd;stop-opacity:1.0000000;" /> - <stop - id="stop13394" - offset="1.0000000" - style="stop-color:#2a415f;stop-opacity:1.0000000;" /> - </linearGradient> - <linearGradient - id="linearGradient10325"> - <stop - id="stop10327" - offset="0" - style="stop-color:#5a7aa4;stop-opacity:1;" /> - <stop - id="stop10329" - offset="1.0000000" - style="stop-color:#455e7e;stop-opacity:1.0000000;" /> - </linearGradient> - <linearGradient - gradientUnits="userSpaceOnUse" - y2="39.486301" - x2="37.746555" - y1="23.992306" - x1="23.598076" - gradientTransform="matrix(0.363308,0,0,0.363571,1.976073,1.180651)" - id="linearGradient13217" - xlink:href="#linearGradient6581" - inkscape:collect="always" /> <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3941" - id="radialGradient3947" - cx="2.25" - cy="16" - fx="2.25" - fy="16" - r="16.875" - gradientTransform="matrix(1.000000,0.000000,0.000000,0.333333,-5.774893e-15,10.66667)" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6581" - id="linearGradient2398" - x1="10.769515" - y1="8.7196503" - x2="15.923767" - y2="15.039417" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6581" - id="linearGradient2403" gradientUnits="userSpaceOnUse" - x1="10.769515" - y1="8.7196503" - x2="15.923767" - y2="15.039417" - gradientTransform="matrix(0.874941,0.000000,0.000000,0.868551,1.339139,1.349650)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6581" - id="linearGradient2405" - gradientUnits="userSpaceOnUse" - x1="10.769515" - y1="8.7196503" - x2="15.923767" - y2="15.039417" - gradientTransform="matrix(1.001575,0.000000,0.000000,1.000000,-3.040037e-3,0.000000)" /> + gradientTransform="matrix(1.0033963,-0.00853162,0.00155275,0.18261755,-0.31483228,15.390226)" + r="9.9786386" + fy="18.71875" + fx="10.531251" + cy="18.71875" + cx="10.531251" + id="radialGradient919" + xlink:href="#linearGradient928" /> </defs> - <sodipodi:namedview - inkscape:window-y="25" - inkscape:window-x="0" - inkscape:window-height="949" - inkscape:window-width="1280" - inkscape:document-units="px" - inkscape:grid-bbox="true" - showgrid="false" - inkscape:current-layer="layer1" - inkscape:cy="10.249014" - inkscape:cx="16.435231" - inkscape:zoom="15.999999" - inkscape:pageshadow="2" - inkscape:pageopacity="0.0" - borderopacity="0.08235294" - bordercolor="#666666" - pagecolor="#ffffff" - id="base" - showguides="true" - inkscape:guide-bbox="true" - inkscape:showpageshadow="false" - stroke="#888a85" /> - <metadata - id="metadata4"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title>Draw Rectangle</dc:title> - <dc:date>2005-10-10</dc:date> - <dc:creator> - <cc:Agent> - <dc:title>Andreas Nilsson</dc:title> - </cc:Agent> - </dc:creator> - <dc:subject> - <rdf:Bag> - <rdf:li>draw</rdf:li> - <rdf:li>rectangle</rdf:li> - <rdf:li>square</rdf:li> - </rdf:Bag> - </dc:subject> - <cc:license - rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /> - </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Attribution" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> - </cc:License> - </rdf:RDF> - </metadata> <g - inkscape:groupmode="layer" - inkscape:label="Layer 1" id="layer1"> <path - sodipodi:type="arc" - style="opacity:0.60000000;color:#000000;fill:url(#radialGradient3947);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block;overflow:visible" - id="path2193" - sodipodi:cx="2.2500000" - sodipodi:cy="16.000000" - sodipodi:rx="16.875000" - sodipodi:ry="5.6250000" - d="M 19.125000 16.000000 A 16.875000 5.6250000 0 1 1 -14.625000,16.000000 A 16.875000 5.6250000 0 1 1 19.125000 16.000000 z" - transform="matrix(0.503704,0.000000,0.000000,0.349014,9.366667,12.45257)" /> + id="path911" + style="opacity:1;fill:url(#radialGradient919);fill-opacity:1;stroke:none;stroke-width:0.98000002;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:304.81887817;stroke-opacity:1" + ry="1.9786382" + rx="9.9786386" + cy="18.71875" + cx="10.281251" /> <path - style="fill:url(#linearGradient2405);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#888a85;stroke-width:1.0000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 10.376363,3.6237647 L 18.439333,9.5822222 L 15.644242,18.503298 L 5.3933717,18.503298 L 2.5694122,9.5814367 L 10.376363,3.6237647 z " - id="path1661" - sodipodi:nodetypes="cccccc" /> - <path - style="fill:url(#linearGradient2403);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#fdfdfb;stroke-width:0.99999976px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" - d="M 10.383801,4.6223366 L 17.428917,9.8682235 L 14.894231,17.502140 L 6.1335005,17.494329 L 3.6135882,9.9131875 L 10.383801,4.6223366 z " - id="path2401" - sodipodi:nodetypes="cccccc" /> + d="M 10.312501,3.499999 18.198468,9.2294899 15.186297,18.5 5.438705,18.5 2.4265338,9.2294894 Z" + id="path909" + style="opacity:1;fill:#ffffda;fill-opacity:1;stroke:#000000;stroke-width:1.00000001;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:304.81887817;stroke-opacity:1" /> </g> </svg> diff --git a/editor/images/svg_edit_icons.svg b/editor/images/svg_edit_icons.svg index d2e36b9f..98aa7b8a 100644 --- a/editor/images/svg_edit_icons.svg +++ b/editor/images/svg_edit_icons.svg @@ -76,7 +76,6 @@ <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52"> <defs> <linearGradient y2="1" x2="1" y1="0.10156" x1="0.36328" id="svg_2"> - <stop stop-opacity="1" stop-color="#ffffff" offset="0"/> <stop stop-opacity="1" stop-color="#3b7e9b" offset="1"/> </linearGradient> @@ -85,10 +84,10 @@ <stop stop-opacity="1" stop-color="#bf5f00" offset="1"/> </linearGradient> </defs> - <rect stroke="#000000" stroke-width="2" fill="url(#svg_2)" id="svg_1" height="50" width="50" y="0.75" x="1.25"/> - <path stroke-width="2" stroke="#000000" fill="url(#svg_9)" id="svg_2" d="m31.5,0l-8.75,20.25l0.75,24l16.5,-16.5l6,-12.5"/> - <path stroke-width="2" stroke="#000000" fill="#fce0a9" id="svg_10" d="m39.5,28.5c-2,-9.25 -10.25,-11.75 -17,-7.4375l0.4843,24.4414z"/> - <path id="svg_11" stroke-width="2" stroke="#000000" fill="#000000" d="m26.9318,41.1745c-0.4491,-2.3511 -2.3021,-2.9866 -3.8181,-1.8905l0.1087,6.2126z"/> + <rect stroke-width="2" stroke="#000000" fill="url(#svg_2)" x="3.25" y="25.75" width="46" height="25"/> + <path stroke-width="2" stroke="#000000" fill="url(#svg_9)" d="m31.5,0l-8.75,20.25l0.75,24l16.5,-16.5l6,-12.5"/> + <path stroke-width="2" stroke="#000000" fill="#fce0a9" d="m39.5,28.5c-2,-9.25 -10.25,-11.75 -17,-7.4375l0.4843,24.4414z"/> + <path stroke-width="2" stroke="#000000" fill="#000000" d="m26.9318,41.1745c-0.4491,-2.3511 -2.3021,-2.9866 -3.8181,-1.8905l0.1087,6.2126z"/> </svg> </g> @@ -1027,6 +1026,10 @@ </svg> </g> +<g id="config"> +<svg width="64" height="64" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M655.872 960a61.952 61.952 0 0 1-45.376-19.136c-14.912-16.192-62.272-58.24-100.992-58.24-38.464 0-86.528 42.304-100.352 57.216a62.144 62.144 0 0 1-68.224 14.144l-1.28-0.576-117.76-65.088-1.088-0.832a55.552 55.552 0 0 1-18.944-67.52c0.064-0.192 10.816-24.768 10.816-47.168 0-67.968-56-123.392-124.8-123.392h-4.16l-0.768 0.064c-19.712 0-35.776-17.344-40.896-44.096C41.6 603.264 32 552.448 32 512.384c0-40 9.6-90.88 10.048-92.992 5.184-27.136 21.568-44.48 41.664-44.096h4.16c68.8 0 124.8-55.296 124.8-123.328 0-22.4-10.752-46.976-10.88-47.232a55.424 55.424 0 0 1 19.136-67.456l1.216-0.832 124.224-67.456 1.344-0.576a63.36 63.36 0 0 1 67.968 13.952c14.656 15.232 61.184 54.784 98.816 54.784 37.312 0 83.52-38.784 98.112-53.76a63.616 63.616 0 0 1 68.032-13.376l1.28 0.576 120 65.92 1.216 0.832a55.424 55.424 0 0 1 19.072 67.456c-0.128 0.192-10.88 24.768-10.88 47.168 0 67.968 56 123.328 124.8 123.328h4.16c19.968-0.384 36.416 17.024 41.6 44.096 0.512 2.112 10.112 52.992 10.112 92.992 0 40.064-9.6 90.88-10.048 92.992-5.184 27.136-21.632 44.48-41.6 44.032h-4.16c-68.8 0-124.8 55.36-124.8 123.392 0 22.464 10.752 46.976 10.88 47.232a55.36 55.36 0 0 1-19.072 67.392l-1.28 0.896-122.048 66.688-1.344 0.512a56.32 56.32 0 0 1-22.656 4.48z m-6.016-64.832a8.192 8.192 0 0 0 3.648 0.96h0.192l112.128-61.056c-2.688-6.208-15.04-36.16-15.04-67.584 0-93.76 75.008-170.56 169.024-175.296 1.344-7.36 8.704-48.832 8.704-79.808s-7.296-72.384-8.704-79.744c-94.016-4.864-169.024-81.664-169.024-175.36 0-31.424 12.416-61.44 15.104-67.648l-110.4-60.352h-0.448a8.448 8.448 0 0 0-4.16 1.088 309.12 309.12 0 0 1-40.832 33.728c-33.984 23.552-66.176 35.456-95.552 35.456-29.76 0-62.144-12.16-96.384-36.16a312.064 312.064 0 0 1-41.024-34.432 9.088 9.088 0 0 0-4.224-1.024H372.48l-114.304 61.76c2.752 6.272 15.104 36.288 15.104 67.584 0 93.696-75.008 170.496-169.024 175.36-1.408 7.36-8.704 48.704-8.704 79.744s7.36 72.384 8.704 79.744c94.016 4.8 169.024 81.6 169.024 175.36 0 31.424-12.48 61.632-15.104 67.712l108.16 59.52h0.256a8 8 0 0 0 3.584-0.896c2.048-2.112 18.176-19.008 41.408-35.776 34.688-25.088 67.648-37.76 97.92-37.76 30.656 0 63.872 12.928 98.752 38.464 23.36 17.152 39.616 34.24 41.6 36.416z m-137.984-223.104c-88.32 0-160.192-71.68-160.192-159.808s71.872-159.744 160.192-159.744c88.384 0 160.256 71.616 160.256 159.744s-71.872 159.808-160.256 159.808z m0-255.744a96 96 0 0 0 0 191.808 95.936 95.936 0 0 0 0-191.808z"></path></svg> +</g> + <g id="svg_eof"/> </svg> diff --git a/editor/jQuery.attr.js b/editor/jQuery.attr.js index 30acdce9..eafb505e 100644 --- a/editor/jQuery.attr.js +++ b/editor/jQuery.attr.js @@ -1,5 +1,5 @@ /** - * jQuery module to work with SVG attributes + * A jQuery module to work with SVG attributes. * @module jQueryAttr * @license MIT */ diff --git a/editor/jgraduate/jQuery.jGraduate.js b/editor/jgraduate/jQuery.jGraduate.js index 653182ee..aab2387c 100644 --- a/editor/jgraduate/jQuery.jGraduate.js +++ b/editor/jgraduate/jQuery.jGraduate.js @@ -1,5 +1,5 @@ /** - * jGraduate 0.4 + * @file jGraduate 0.4 * * jQuery Plugin for a gradient picker * @@ -17,6 +17,7 @@ * @example $.jGraduate.Paint({hex: '#rrggbb', linearGradient: o}); // throws an exception? */ +/* eslint-disable jsdoc/require-property */ /** * The jQuery namespace. * @external jQuery @@ -27,6 +28,7 @@ * @memberof external:jQuery * @see {@link http://learn.jquery.com/plugins/|jQuery Plugins} */ +/* eslint-enable jsdoc/require-property */ const ns = { svg: 'http://www.w3.org/2000/svg', @@ -59,11 +61,11 @@ export default function jQueryPluginJGraduate ($) { /** * @typedef {PlainObject} module:jGraduate.jGraduatePaintOptions - * @param {Float} [alpha] - * @param {module:jGraduate~Paint} [copy] Copy paint object - * @param {SVGLinearGradientElement} [linearGradient] - * @param {SVGRadialGradientElement} [radialGradient] - * @param {string} [solidColor] + * @property {Float} [alpha] + * @property {module:jGraduate~Paint} [copy] Copy paint object + * @property {SVGLinearGradientElement} [linearGradient] + * @property {SVGRadialGradientElement} [radialGradient] + * @property {string} [solidColor] */ /** @@ -84,13 +86,13 @@ export default function jQueryPluginJGraduate ($) { */ this.type = options.copy.type; /** - * Represents opacity (0-100) + * Represents opacity (0-100). * @name module:jGraduate~Paint#alpha * @type {Float} */ this.alpha = options.copy.alpha; /** - * Represents #RRGGBB hex of color + * Represents #RRGGBB hex of color. * @name module:jGraduate~Paint#solidColor * @type {string} */ @@ -144,11 +146,14 @@ export default function jQueryPluginJGraduate ($) { } } } + + /* eslint-disable jsdoc/require-property */ /** * @namespace {PlainObject} jGraduate * @memberof external:jQuery */ $.jGraduate = /** @lends external:jQuery.jGraduate */ { + /* eslint-enable jsdoc/require-property */ /** * @class external:jQuery.jGraduate.Paint * @see module:jGraduate~Paint @@ -164,7 +169,7 @@ export default function jQueryPluginJGraduate ($) { */ $.fn.jGraduateDefaults = /** @lends external:jQuery.fn.jGraduateDefaults */ { /** - * Creates an object with a 'none' color + * Creates an object with a 'none' color. * @type {external:jQuery.jGraduate.Paint} * @see module:jGraduate.Options */ @@ -510,7 +515,7 @@ export default function jQueryPluginJGraduate ($) { let inverted = ''; for (let i = 0; i < 6; i += 2) { // const ch = color.substr(i, 2); - let inv = (255 - parseInt(color.substr(i, 2), 16)).toString(16); + let inv = (255 - Number.parseInt(color.substr(i, 2), 16)).toString(16); if (inv.length < 2) inv = 0 + inv; inverted += inv; } @@ -530,15 +535,15 @@ export default function jQueryPluginJGraduate ($) { } } - const x1 = parseFloat(grad.getAttribute('x1') || 0.0), - y1 = parseFloat(grad.getAttribute('y1') || 0.0), - x2 = parseFloat(grad.getAttribute('x2') || 1.0), - y2 = parseFloat(grad.getAttribute('y2') || 0.0); + const x1 = Number.parseFloat(grad.getAttribute('x1') || 0.0), + y1 = Number.parseFloat(grad.getAttribute('y1') || 0.0), + x2 = Number.parseFloat(grad.getAttribute('x2') || 1.0), + y2 = Number.parseFloat(grad.getAttribute('y2') || 0.0); - const cx = parseFloat(grad.getAttribute('cx') || 0.5), - cy = parseFloat(grad.getAttribute('cy') || 0.5), - fx = parseFloat(grad.getAttribute('fx') || cx), - fy = parseFloat(grad.getAttribute('fy') || cy); + const cx = Number.parseFloat(grad.getAttribute('cx') || 0.5), + cy = Number.parseFloat(grad.getAttribute('cy') || 0.5), + fx = Number.parseFloat(grad.getAttribute('fx') || cx), + fy = Number.parseFloat(grad.getAttribute('fy') || cy); const previewRect = mkElem('rect', { id: id + '_jgraduate_rect', @@ -612,7 +617,7 @@ export default function jQueryPluginJGraduate ($) { .val(attrval) .change(function () { // TODO: Support values < 0 and > 1 (zoomable preview?) - if (isNaN(parseFloat(this.value)) || this.value < 0) { + if (isNaN(Number.parseFloat(this.value)) || this.value < 0) { this.value = 0.0; } else if (this.value > 1) { this.value = 1.0; @@ -687,7 +692,7 @@ export default function jQueryPluginJGraduate ($) { const colorhandle = this; // eslint-disable-line consistent-this let stopOpacity = Number(stop.getAttribute('stop-opacity')) || 1; let stopColor = stop.getAttribute('stop-color') || 1; - let thisAlpha = (parseFloat(stopOpacity) * 255).toString(16); + let thisAlpha = (Number.parseFloat(stopOpacity) * 255).toString(16); while (thisAlpha.length < 2) { thisAlpha = '0' + thisAlpha; } colr = stopColor.substr(1) + thisAlpha; $('#' + id + '_jGraduate_stopPicker').css({left: 100, bottom: 15}).jPicker({ @@ -1047,7 +1052,7 @@ export default function jQueryPluginJGraduate ($) { const setSlider = function (e) { const {offset: {left}} = slider; const div = slider.parent; - let x = (e.pageX - left - parseInt(div.css('border-left-width'))); + let x = (e.pageX - left - Number.parseInt(div.css('border-left-width'))); if (x > SLIDERW) x = SLIDERW; if (x <= 0) x = 0; const posx = x - 5; @@ -1061,7 +1066,7 @@ export default function jQueryPluginJGraduate ($) { curGradient.setAttribute('r', x); break; case 'opacity': - $this.paint.alpha = parseInt(x * 100); + $this.paint.alpha = Number.parseInt(x * 100); previewRect.setAttribute('fill-opacity', x); break; case 'ellip': diff --git a/editor/jgraduate/jQuery.jPicker.js b/editor/jgraduate/jQuery.jPicker.js index b41bb833..494b01f6 100755 --- a/editor/jgraduate/jQuery.jPicker.js +++ b/editor/jgraduate/jQuery.jPicker.js @@ -1,6 +1,6 @@ /* eslint-disable no-bitwise */ /** - * jPicker (Adapted from version 1.1.6) + * @file jPicker (Adapted from version 1.1.6) * * jQuery Plugin for Photoshop style color picker * @@ -72,11 +72,12 @@ const jPicker = function ($) { * Encapsulate slider functionality for the ColorMap and ColorBar - * could be useful to use a jQuery UI draggable for this with certain extensions. * @memberof module:jPicker - * @param {external:jQuery} bar - * @param {module:jPicker.SliderOptions} options - * @returns {void} */ class Slider { + /** + * @param {external:jQuery} bar + * @param {module:jPicker.SliderOptions} options + */ constructor (bar, options) { const that = this; /** @@ -402,12 +403,14 @@ const jPicker = function ($) { /** * Controls for all the input elements for the typing in color values. - * @param {external:jQuery} picker - * @param {external:jQuery.jPicker.Color} color - * @param {external:jQuery.fn.$.fn.jPicker} bindedHex - * @param {Float} alphaPrecision */ class ColorValuePicker { + /** + * @param {external:jQuery} picker + * @param {external:jQuery.jPicker.Color} color + * @param {external:jQuery.fn.$.fn.jPicker} bindedHex + * @param {Float} alphaPrecision + */ constructor (picker, color, bindedHex, alphaPrecision) { const that = this; // private properties and methods const inputs = picker.find('td.Text input'); @@ -460,11 +463,11 @@ const jPicker = function ($) { case alpha && alpha.get(0): switch (e.keyCode) { case 38: - alpha.val(setValueInRange.call(that, parseFloat(alpha.val()) + 1, 0, 100)); + alpha.val(setValueInRange.call(that, Number.parseFloat(alpha.val()) + 1, 0, 100)); color.val('a', toFixedNumeric((alpha.val() * 255) / 100, alphaPrecision), e.target); return false; case 40: - alpha.val(setValueInRange.call(that, parseFloat(alpha.val()) - 1, 0, 100)); + alpha.val(setValueInRange.call(that, Number.parseFloat(alpha.val()) - 1, 0, 100)); color.val('a', toFixedNumeric((alpha.val() * 255) / 100, alphaPrecision), e.target); return false; } @@ -560,7 +563,7 @@ const jPicker = function ($) { break; case ahex && ahex.get(0): ahex.val(ahex.val().replace(/[^a-fA-F\d]/g, '').toLowerCase().substring(0, 2)); - color.val('a', !isNullish(ahex.val()) ? parseInt(ahex.val(), 16) : null, e.target); + color.val('a', !isNullish(ahex.val()) ? Number.parseInt(ahex.val(), 16) : null, e.target); break; } return undefined; @@ -690,13 +693,15 @@ const jPicker = function ($) { * @property {string} [ahex] */ + /* eslint-disable jsdoc/require-property */ /** * @namespace {PlainObject} jPicker * @memberof external:jQuery */ $.jPicker = /** @lends external:jQuery.jPicker */ { + /* eslint-enable jsdoc/require-property */ /** - * Array holding references to each active instance of the jPicker control + * Array holding references to each active instance of the jPicker control. * @type {external:jQuery.fn.$.fn.jPicker[]} */ List: [], @@ -1004,7 +1009,7 @@ const jPicker = function ($) { } }, /** - * color conversion methods - make public to give use to external scripts + * Color conversion methods - make public to give use to external scripts. * @namespace */ ColorMethods: { @@ -1081,7 +1086,7 @@ const jPicker = function ($) { * @returns {Integer} */ hexToInt (hex) { - return parseInt(hex, 16); + return Number.parseInt(hex, 16); }, /** * @typedef {PlainObject} module:jPicker.HSV @@ -1115,7 +1120,7 @@ const jPicker = function ($) { if (r === max) hsv.h = (g - b) / delta; else if (g === max) hsv.h = 2 + (b - r) / delta; else hsv.h = 4 + (r - g) / delta; - hsv.h = parseInt(hsv.h * 60); + hsv.h = Number.parseInt(hsv.h * 60); if (hsv.h < 0) hsv.h += 360; } hsv.s = (hsv.s * 100) | 0; @@ -1183,13 +1188,15 @@ const jPicker = function ($) { } }; const {Color, List, ColorMethods} = $.jPicker; // local copies for YUI compressor + /* eslint-disable jsdoc/require-returns */ /** * @function external:jQuery.fn.jPicker * @see {@link external:jQuery.fn.$.fn.jPicker} */ + /* eslint-enable jsdoc/require-returns */ /** - * Will be bound to active {@link jQuery.jPicker.Color} + * Will be bound to active {@link jQuery.jPicker.Color}. * @callback module:jPicker.LiveCallback * @param {external:jQuery} ui * @param {Element} context @@ -1244,7 +1251,7 @@ const jPicker = function ($) { } else { settings.window.liveUpdate = false; // Basic control binding for inline use - You will need to override the liveCallback or commitCallback function to retrieve results } - const isLessThanIE7 = parseFloat(navigator.appVersion.split('MSIE')[1]) < 7 && document.body.filters; // needed to run the AlphaImageLoader function for IE6 + const isLessThanIE7 = Number.parseFloat(navigator.appVersion.split('MSIE')[1]) < 7 && document.body.filters; // needed to run the AlphaImageLoader function for IE6 // set color mode and update visuals for the new color mode /** * @@ -1728,6 +1735,7 @@ const jPicker = function ($) { * @returns {void} */ function radioClicked (e) { + // eslint-disable-next-line unicorn/no-fn-reference-in-iterator $(this).parents('tbody:first').find('input:radio[value!="' + e.target.value + '"]').removeAttr('checked'); setColorMode.call(that, e.target.value); } @@ -1795,8 +1803,8 @@ const jPicker = function ($) { function moveBarMouseDown (e) { // const {element} = settings.window, // local copies for YUI compressor // {page} = settings.window; - elementStartX = parseInt(container.css('left')); - elementStartY = parseInt(container.css('top')); + elementStartX = Number.parseInt(container.css('left')); + elementStartY = Number.parseInt(container.css('top')); pageStartX = e.pageX; pageStartY = e.pageY; // bind events to document to move window - we will unbind these on mouseup @@ -1993,7 +2001,7 @@ const jPicker = function ($) { ? (popup.offset().left - 10 + (win.position.y === 'center' ? 25 : 0)) + 'px' : win.position.x === 'screenCenter' ? (($(document).width() >> 1) - 260) + 'px' - : (popup.offset().left + parseInt(win.position.x)) + 'px', + : (popup.offset().left + Number.parseInt(win.position.x)) + 'px', position: 'absolute', top: win.position.y === 'top' ? (popup.offset().top - 312) + 'px' @@ -2001,7 +2009,7 @@ const jPicker = function ($) { ? (popup.offset().top - 156) + 'px' : win.position.y === 'bottom' ? (popup.offset().top + 25) + 'px' - : (popup.offset().top + parseInt(win.position.y)) + 'px' + : (popup.offset().top + Number.parseInt(win.position.y)) + 'px' } ); } else { @@ -2283,7 +2291,7 @@ const jPicker = function ($) { * @property {"left"|"center"|"right"|"screenCenter"|Float} window.position.x Relative px value * @property {"top"|"bottom"|"center"|Float} window.position.y Relative px value * @property {boolean} window.expandable Defaults to large static picker - set to `true` to make an expandable - * picker (small icon with popup) - set automatically when binded to input element + * picker (small icon with popup) - set automatically when binded to input element; added by `$.fn.jPicker` * @property {boolean} window.liveUpdate Set `false` if you want the user to have to click "OK" before the * binded input box updates values (always `true` for expandable picker) * @property {boolean} window.alphaSupport Set to `true` to enable alpha picking @@ -2291,7 +2299,6 @@ const jPicker = function ($) { * not map directly to percentage integers - range 0-2 * @property {boolean} window.updateInputColor Set to `false` to prevent binded input colors from changing * @property {boolean} [window.bindToInput] Added by `$.fn.jPicker` - * @property {boolean} [window.expandable] Added by `$.fn.jPicker` * @property {external:jQuery} [window.input] Added by `$.fn.jPicker` * @property {PlainObject} color * @property {"h"|"s"|"v"|"r"|"g"|"b"|"a"} color.mode Symbols stand for "h" (hue), "s" (saturation), "v" (value), "r" (red), "g" (green), "b" (blue), "a" (alpha) @@ -2329,8 +2336,8 @@ const jPicker = function ($) { * @property {string} localization.tooltips.hex.alpha */ /** - * jPicker defaults - you can change anything in this section (such as the - * clientPath to your images) without fear of breaking the program + * The jPicker defaults - you can change anything in this section (such as the + * clientPath to your images) without fear of breaking the program. * @namespace {external:jQuery.fn.jPickerOptions} defaults * @memberof external:jQuery.fn.$.fn.jPicker * @borrows external:jQuery.fn.jPickerOptions as external:jQuery.fn.jPicker.defaults diff --git a/editor/jquerybbq/jquery.bbq.min.js b/editor/jquerybbq/jquery.bbq.min.js deleted file mode 100644 index 2ab92caa..00000000 --- a/editor/jquerybbq/jquery.bbq.min.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Todo: Update to latest at https://github.com/cowboy/jquery-bbq ? - * jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010 - * http://benalman.com/projects/jquery-bbq-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ - -// For sake of modules, added this wrapping export and changed `this` to `window` -export default function (jQuery) { - -(function($,p){var i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return function(){return G.apply(this,F.concat(m.call(arguments)))}}function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&&E(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.noEscape(",/");$.deparam=l=function(I,F){var H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," ").split("&"),function(L,Q){var K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M<N?O[P]||(R[M+1]&&isNaN(R[M+1])?{}:[]):J}}else{if($.isArray(H[P])){H[P].push(J)}else{if(H[P]!==i){H[P]=[H[P],J]}else{H[P]=J}}}}else{if(P){H[P]=F?i:""}}});return H};function z(H,F,G){if(F===i||typeof F==="boolean"){G=F;F=a[H?D:A]()}else{F=E(F)?F.replace(H?w:x,""):F}return l(F,G)}l[A]=B(z,0);l[D]=v=B(z,1);$[y]||($[y]=function(F){return $.extend(C,F)})({a:k,base:k,iframe:t,img:t,input:t,form:"action",link:k,script:t});j=$[y];function s(I,G,H,F){if(!E(H)&&typeof H!=="object"){F=H;H=G;G=i}return this.each(function(){var L=$(this),J=G||j()[(this.nodeName||"").toLowerCase()]||"",K=J&&L.attr(J)||"";L.attr(J,a[I](K,H,F))})}$.fn[A]=B(s,A);$.fn[D]=B(s,D);b.pushState=q=function(I,F){if(E(I)&&/^#/.test(I)&&F===i){F=2}var H=I!==i,G=c(p[g][k],H?I:{},H?F:2);p[g][k]=G+(/#/.test(G)?"":"#")};b.getState=u=function(F,G){return F===i||typeof F==="boolean"?v(F):v(G)[F]};b.removeState=function(F){var G={};if(F!==i){G=u();$.each($.isArray(F)?F:arguments,function(I,H){delete G[H]})}q(G,2)};e[d]=$.extend(e[d],{add:function(F){var H;function G(J){var I=J[D]=c();J.getState=function(K,L){return K===i||typeof K==="boolean"?l(I,K):l(I,L)[K]};H.apply(this,arguments)}if($.isFunction(F)){H=F;return G}else{H=F.handler;F.handler=G}}})})(jQuery,window); -/* - * jQuery hashchange event - v1.2 - 2/11/2010 - * http://benalman.com/projects/jquery-hashchange-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ -(function($,i,b){var j,k=$.event.special,c="location",d="hashchange",l="href",f=$.browser,g=document.documentMode,h=f.msie&&(g===b||g<8),e="on"+d in i&&!h;function a(m){m=m||i[c][l];return m.replace(/^[^#]*#?(.*)$/,"$1")}$[d+"Delay"]=100;k[d]=$.extend(k[d],{setup:function(){if(e){return false}$(j.start)},teardown:function(){if(e){return false}$(j.stop)}});j=(function(){var m={},r,n,o,q;function p(){o=q=function(s){return s};if(h){n=$('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(jQuery,window); - -return jQuery; -} diff --git a/editor/jspdf/jspdf.plugin.svgToPdf.js b/editor/jspdf/jspdf.plugin.svgToPdf.js index 5cb2072c..2ced7391 100644 --- a/editor/jspdf/jspdf.plugin.svgToPdf.js +++ b/editor/jspdf/jspdf.plugin.svgToPdf.js @@ -32,12 +32,13 @@ const pdfSvgAttr = { circle: ['cx', 'cy', 'r', 'stroke', 'fill', 'stroke-width'], polygon: ['points', 'stroke', 'fill', 'stroke-width'], // polyline attributes are the same as those of polygon + path: ['d', 'stroke', 'fill', 'stroke-width'], text: ['x', 'y', 'font-size', 'font-family', 'text-anchor', 'font-weight', 'font-style', 'fill'] }; const attributeIsNotEmpty = function (node, attr) { const attVal = attr ? node.getAttribute(attr) : node; - return attVal !== '' && attVal !== null; + return attVal !== '' && attVal !== null && attVal !== 'null'; }; const nodeIs = function (node, possible) { @@ -78,6 +79,161 @@ const getLinesOptionsOfPoly = function (node) { return {x, y, lines}; }; +const getLinesOptionsOfPath = function (node) { + const segList = node.pathSegList, n = segList.numberOfItems, opsList = []; + let ops = { + lines: [] + }; + const curr = {x: 0, y: 0}; + const reflectControl = {x: 0, y: 0}; + const toRelative = function (nums, relativeTo) { + const re = []; + for (let i = 0; i < nums.length - 1; i += 2) { + re[i] = nums[i] - relativeTo.x; + re[i + 1] = nums[i + 1] - relativeTo.y; + } + return re; + }; + const curveQToC = function (nums) { + const a = 2 / 3; + const re = [ + nums[0] * a, + nums[1] * a, + nums[2] + (nums[0] - nums[2]) * a, + nums[3] + (nums[1] - nums[3]) * a, + nums[2], + nums[3] + ]; + return re; + }; + for (let i = 0, letterPrev; i < n; i++) { + const seg = segList.getItem(i); + const {x1, y1, x2, y2, x, y, pathSegTypeAsLetter: letter} = seg; + const isRelative = letter >= 'a'; // lowercase letter + switch (letter) { + case 'M': + case 'm': { + if (ops.lines.length && Object.prototype.hasOwnProperty.call(ops, 'x')) { + opsList.push(ops); + } + ops = { + lines: [], + x: isRelative ? x + curr.x : x, + y: isRelative ? y + curr.y : y, + closed: false + }; + ops.closed = false; + break; + } + case 'L': { + ops.lines.push(toRelative([x, y], curr)); + break; + } + case 'l': { + ops.lines.push([x, y]); + break; + } + case 'H': { + ops.lines.push([x - curr.x, 0]); + break; + } + case 'h': { + ops.lines.push([x, 0]); + break; + } + case 'V': { + ops.lines.push([0, y - curr.y]); + break; + } + case 'v': { + ops.lines.push([0, y]); + break; + } + case 'Q': { + ops.lines.push(curveQToC(toRelative([x1, y1, x, y], curr))); + reflectControl.x = x - x1; + reflectControl.y = y - y1; + break; + } + case 'q': { + ops.lines.push(curveQToC([x1, y1, x, y])); + reflectControl.x = x - x1; + reflectControl.y = y - y1; + break; + } + case 'T': { + const p1 = letterPrev && 'QqTt'.includes(letterPrev) ? reflectControl : {x: 0, y: 0}; + ops.lines.push(curveQToC([p1.x, p1.y, x - curr.x, y - curr.y])); + reflectControl.x = x - curr.x - p1.x; + reflectControl.y = y - curr.y - p1.y; + break; + } + case 't': { + const p1 = letterPrev && 'QqTt'.includes(letterPrev) ? reflectControl : {x: 0, y: 0}; + ops.lines.push([p1.x, p1.y, x, y]); + reflectControl.x = x - p1.x; + reflectControl.y = y - p1.y; + break; + } + case 'C': { + ops.lines.push(toRelative([x1, y1, x2, y2, x, y], curr)); + break; + } + case 'c': { + ops.lines.push([x1, y1, x2, y2, x, y]); + break; + } + case 'S': + case 's': { + const p1 = letterPrev && 'CcSs'.includes(letterPrev) ? reflectControl : {x: 0, y: 0}; + if (isRelative) { + ops.lines.push([p1.x, p1.y, x2, y2, x, y]); + } else { + ops.lines.push([p1.x, p1.y].concat(toRelative([x2, y2, x, y], curr))); + } + reflectControl.x = x - x2; + reflectControl.y = y - y2; + break; + } + case 'A': + case 'a': { + // Not support command 'A' and 'a' yet. Treat it as straight line instead. + if (isRelative) { + ops.lines.push([x, y]); + } else { + ops.lines.push(toRelative([x, y], curr)); + } + break; + } + case 'z': + case 'Z': { + ops.closed = true; + break; + } + default: { + // throw new Error('Unknown path command ' + letter); + return opsList; + } + } + if (letter === 'Z' || letter === 'z') { + curr.x = ops.x; + curr.y = ops.y; + } else { + if (letter !== 'V' && letter !== 'v') { + curr.x = isRelative ? x + curr.x : x; + } + if (letter !== 'H' && letter !== 'h') { + curr.y = isRelative ? y + curr.y : y; + } + } + letterPrev = letter; + } + if (ops.lines.length && Object.prototype.hasOwnProperty.call(ops, 'x')) { + opsList.push(ops); + } + return opsList; +}; + const svgElementToPdf = function (element, pdf, options) { // pdf is a jsPDF object // console.log('options =', options); @@ -89,9 +245,10 @@ const svgElementToPdf = function (element, pdf, options) { // let hasStrokeColor = false; let hasFillColor = false; let fillRGB; - if (nodeIs(node, ['g', 'line', 'rect', 'ellipse', 'circle', 'polygon', 'polyline', 'text'])) { + colorMode = null; + if (nodeIs(node, ['g', 'line', 'rect', 'ellipse', 'circle', 'polygon', 'polyline', 'path', 'text'])) { const fillColor = node.getAttribute('fill'); - if (attributeIsNotEmpty(fillColor)) { + if (attributeIsNotEmpty(fillColor) && node.getAttribute('fill-opacity') !== '0') { fillRGB = new RGBColor(fillColor); if (fillRGB.ok) { hasFillColor = true; @@ -101,20 +258,20 @@ const svgElementToPdf = function (element, pdf, options) { } } } - if (nodeIs(node, ['g', 'line', 'rect', 'ellipse', 'circle', 'polygon', 'polyline'])) { + if (nodeIs(node, ['g', 'line', 'rect', 'ellipse', 'circle', 'polygon', 'polyline', 'path'])) { if (hasFillColor) { pdf.setFillColor(fillRGB.r, fillRGB.g, fillRGB.b); } if (attributeIsNotEmpty(node, 'stroke-width')) { - pdf.setLineWidth(k * parseInt(node.getAttribute('stroke-width'))); + pdf.setLineWidth(k * Number.parseInt(node.getAttribute('stroke-width'))); } const strokeColor = node.getAttribute('stroke'); - if (attributeIsNotEmpty(strokeColor)) { + if (attributeIsNotEmpty(strokeColor) && node.getAttribute('stroke-width') !== '0' && node.getAttribute('stroke-opacity') !== '0') { const strokeRGB = new RGBColor(strokeColor); if (strokeRGB.ok) { // hasStrokeColor = true; pdf.setDrawColor(strokeRGB.r, strokeRGB.g, strokeRGB.b); - if (colorMode === 'F') { + if (hasFillColor) { colorMode = 'FD'; } else { colorMode = 'S'; @@ -134,38 +291,38 @@ const svgElementToPdf = function (element, pdf, options) { break; case 'line': pdf.line( - k * parseInt(node.getAttribute('x1')), - k * parseInt(node.getAttribute('y1')), - k * parseInt(node.getAttribute('x2')), - k * parseInt(node.getAttribute('y2')) + k * Number.parseInt(node.getAttribute('x1')), + k * Number.parseInt(node.getAttribute('y1')), + k * Number.parseInt(node.getAttribute('x2')), + k * Number.parseInt(node.getAttribute('y2')) ); removeAttributes(node, pdfSvgAttr.line); break; case 'rect': pdf.rect( - k * parseInt(node.getAttribute('x')), - k * parseInt(node.getAttribute('y')), - k * parseInt(node.getAttribute('width')), - k * parseInt(node.getAttribute('height')), + k * Number.parseInt(node.getAttribute('x')), + k * Number.parseInt(node.getAttribute('y')), + k * Number.parseInt(node.getAttribute('width')), + k * Number.parseInt(node.getAttribute('height')), colorMode ); removeAttributes(node, pdfSvgAttr.rect); break; case 'ellipse': pdf.ellipse( - k * parseInt(node.getAttribute('cx')), - k * parseInt(node.getAttribute('cy')), - k * parseInt(node.getAttribute('rx')), - k * parseInt(node.getAttribute('ry')), + k * Number.parseInt(node.getAttribute('cx')), + k * Number.parseInt(node.getAttribute('cy')), + k * Number.parseInt(node.getAttribute('rx')), + k * Number.parseInt(node.getAttribute('ry')), colorMode ); removeAttributes(node, pdfSvgAttr.ellipse); break; case 'circle': pdf.circle( - k * parseInt(node.getAttribute('cx')), - k * parseInt(node.getAttribute('cy')), - k * parseInt(node.getAttribute('r')), + k * Number.parseInt(node.getAttribute('cx')), + k * Number.parseInt(node.getAttribute('cy')), + k * Number.parseInt(node.getAttribute('r')), colorMode ); removeAttributes(node, pdfSvgAttr.circle); @@ -185,12 +342,44 @@ const svgElementToPdf = function (element, pdf, options) { } removeAttributes(node, pdfSvgAttr.polygon); break; - // TODO: path + } case 'path': { + if (colorMode) { + const linesOptionsList = getLinesOptionsOfPath(node); + if (linesOptionsList.length > 0) { + linesOptionsList.forEach(function (linesOptions) { + pdf.lines( + linesOptions.lines, + k * linesOptions.x, + k * linesOptions.y, + [k, k], + null, + linesOptions.closed + ); + }); + // svg fill rule default is nonzero + const fillRule = node.getAttribute('fill-rule'); + if (fillRule === 'evenodd') { + // f* : fill using even-odd rule + // B* : stroke and fill using even-odd rule + if (colorMode === 'F') { + colorMode = 'f*'; + } else if (colorMode === 'FD') { + colorMode = 'B*'; + } + } + pdf.internal.write(pdf.internal.getStyle(colorMode)); + } + } + removeAttributes(node, pdfSvgAttr.path); + break; } case 'text': { if (node.hasAttribute('font-family')) { switch ((node.getAttribute('font-family') || '').toLowerCase()) { case 'serif': pdf.setFont('times'); break; case 'monospace': pdf.setFont('courier'); break; + case 'times': pdf.setFont('times'); break; + case 'courier': pdf.setFont('courier'); break; + case 'helvetica': pdf.setFont('helvetica'); break; default: node.setAttribute('font-family', 'sans-serif'); pdf.setFont('helvetica'); @@ -216,7 +405,7 @@ const svgElementToPdf = function (element, pdf, options) { } pdf.setFontType(fontType); const pdfFontSize = node.hasAttribute('font-size') - ? parseInt(node.getAttribute('font-size')) + ? Number.parseInt(node.getAttribute('font-size')) : 16; /** @@ -239,7 +428,7 @@ const svgElementToPdf = function (element, pdf, options) { } catch (error) { box = {width: 0}; } - document.body.removeChild(svg); + svg.remove(); } return box.width; }; @@ -252,8 +441,8 @@ const svgElementToPdf = function (element, pdf, options) { case 'start': break; case 'default': node.setAttribute('text-anchor', 'start'); break; } - x = parseInt(node.getAttribute('x')) - xOffset; - y = parseInt(node.getAttribute('y')); + x = Number.parseInt(node.getAttribute('x')) - xOffset; + y = Number.parseInt(node.getAttribute('y')); } // console.log('fontSize:', pdfFontSize, 'text:', node.textContent); pdf.setFontSize(pdfFontSize).text( diff --git a/editor/jspdf/underscore-min.js b/editor/jspdf/underscore-min.js index 3434d6c5..898bd44a 100644 --- a/editor/jspdf/underscore-min.js +++ b/editor/jspdf/underscore-min.js @@ -1,6 +1,5 @@ -// Underscore.js 1.6.0 -// http://underscorejs.org -// (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +// Underscore.js 1.9.2 +// https://underscorejs.org +// (c) 2009-2018 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors // Underscore may be freely distributed under the MIT license. -(function(){var n=this,t=n._,r={},e=Array.prototype,u=Object.prototype,i=Function.prototype,a=e.push,o=e.slice,c=e.concat,l=u.toString,f=u.hasOwnProperty,s=e.forEach,p=e.map,h=e.reduce,v=e.reduceRight,g=e.filter,d=e.every,m=e.some,y=e.indexOf,b=e.lastIndexOf,x=Array.isArray,w=Object.keys,_=i.bind,j=function(n){return n instanceof j?n:this instanceof j?void(this._wrapped=n):new j(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=j),exports._=j):n._=j,j.VERSION="1.6.0";var A=j.each=j.forEach=function(n,t,e){if(null==n)return n;if(s&&n.forEach===s)n.forEach(t,e);else if(n.length===+n.length){for(var u=0,i=n.length;i>u;u++)if(t.call(e,n[u],u,n)===r)return}else for(var a=j.keys(n),u=0,i=a.length;i>u;u++)if(t.call(e,n[a[u]],a[u],n)===r)return;return n};j.map=j.collect=function(n,t,r){var e=[];return null==n?e:p&&n.map===p?n.map(t,r):(A(n,function(n,u,i){e.push(t.call(r,n,u,i))}),e)};var O="Reduce of empty array with no initial value";j.reduce=j.foldl=j.inject=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),h&&n.reduce===h)return e&&(t=j.bind(t,e)),u?n.reduce(t,r):n.reduce(t);if(A(n,function(n,i,a){u?r=t.call(e,r,n,i,a):(r=n,u=!0)}),!u)throw new TypeError(O);return r},j.reduceRight=j.foldr=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),v&&n.reduceRight===v)return e&&(t=j.bind(t,e)),u?n.reduceRight(t,r):n.reduceRight(t);var i=n.length;if(i!==+i){var a=j.keys(n);i=a.length}if(A(n,function(o,c,l){c=a?a[--i]:--i,u?r=t.call(e,r,n[c],c,l):(r=n[c],u=!0)}),!u)throw new TypeError(O);return r},j.find=j.detect=function(n,t,r){var e;return k(n,function(n,u,i){return t.call(r,n,u,i)?(e=n,!0):void 0}),e},j.filter=j.select=function(n,t,r){var e=[];return null==n?e:g&&n.filter===g?n.filter(t,r):(A(n,function(n,u,i){t.call(r,n,u,i)&&e.push(n)}),e)},j.reject=function(n,t,r){return j.filter(n,function(n,e,u){return!t.call(r,n,e,u)},r)},j.every=j.all=function(n,t,e){t||(t=j.identity);var u=!0;return null==n?u:d&&n.every===d?n.every(t,e):(A(n,function(n,i,a){return(u=u&&t.call(e,n,i,a))?void 0:r}),!!u)};var k=j.some=j.any=function(n,t,e){t||(t=j.identity);var u=!1;return null==n?u:m&&n.some===m?n.some(t,e):(A(n,function(n,i,a){return u||(u=t.call(e,n,i,a))?r:void 0}),!!u)};j.contains=j.include=function(n,t){return null==n?!1:y&&n.indexOf===y?n.indexOf(t)!=-1:k(n,function(n){return n===t})},j.invoke=function(n,t){var r=o.call(arguments,2),e=j.isFunction(t);return j.map(n,function(n){return(e?t:n[t]).apply(n,r)})},j.pluck=function(n,t){return j.map(n,j.property(t))},j.where=function(n,t){return j.filter(n,j.matches(t))},j.findWhere=function(n,t){return j.find(n,j.matches(t))},j.max=function(n,t,r){if(!t&&j.isArray(n)&&n[0]===+n[0]&&n.length<65535)return Math.max.apply(Math,n);var e=-1/0,u=-1/0;return A(n,function(n,i,a){var o=t?t.call(r,n,i,a):n;o>u&&(e=n,u=o)}),e},j.min=function(n,t,r){if(!t&&j.isArray(n)&&n[0]===+n[0]&&n.length<65535)return Math.min.apply(Math,n);var e=1/0,u=1/0;return A(n,function(n,i,a){var o=t?t.call(r,n,i,a):n;u>o&&(e=n,u=o)}),e},j.shuffle=function(n){var t,r=0,e=[];return A(n,function(n){t=j.random(r++),e[r-1]=e[t],e[t]=n}),e},j.sample=function(n,t,r){return null==t||r?(n.length!==+n.length&&(n=j.values(n)),n[j.random(n.length-1)]):j.shuffle(n).slice(0,Math.max(0,t))};var E=function(n){return null==n?j.identity:j.isFunction(n)?n:j.property(n)};j.sortBy=function(n,t,r){return t=E(t),j.pluck(j.map(n,function(n,e,u){return{value:n,index:e,criteria:t.call(r,n,e,u)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var F=function(n){return function(t,r,e){var u={};return r=E(r),A(t,function(i,a){var o=r.call(e,i,a,t);n(u,o,i)}),u}};j.groupBy=F(function(n,t,r){j.has(n,t)?n[t].push(r):n[t]=[r]}),j.indexBy=F(function(n,t,r){n[t]=r}),j.countBy=F(function(n,t){j.has(n,t)?n[t]++:n[t]=1}),j.sortedIndex=function(n,t,r,e){r=E(r);for(var u=r.call(e,t),i=0,a=n.length;a>i;){var o=i+a>>>1;r.call(e,n[o])<u?i=o+1:a=o}return i},j.toArray=function(n){return n?j.isArray(n)?o.call(n):n.length===+n.length?j.map(n,j.identity):j.values(n):[]},j.size=function(n){return null==n?0:n.length===+n.length?n.length:j.keys(n).length},j.first=j.head=j.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:0>t?[]:o.call(n,0,t)},j.initial=function(n,t,r){return o.call(n,0,n.length-(null==t||r?1:t))},j.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:o.call(n,Math.max(n.length-t,0))},j.rest=j.tail=j.drop=function(n,t,r){return o.call(n,null==t||r?1:t)},j.compact=function(n){return j.filter(n,j.identity)};var M=function(n,t,r){return t&&j.every(n,j.isArray)?c.apply(r,n):(A(n,function(n){j.isArray(n)||j.isArguments(n)?t?a.apply(r,n):M(n,t,r):r.push(n)}),r)};j.flatten=function(n,t){return M(n,t,[])},j.without=function(n){return j.difference(n,o.call(arguments,1))},j.partition=function(n,t){var r=[],e=[];return A(n,function(n){(t(n)?r:e).push(n)}),[r,e]},j.uniq=j.unique=function(n,t,r,e){j.isFunction(t)&&(e=r,r=t,t=!1);var u=r?j.map(n,r,e):n,i=[],a=[];return A(u,function(r,e){(t?e&&a[a.length-1]===r:j.contains(a,r))||(a.push(r),i.push(n[e]))}),i},j.union=function(){return j.uniq(j.flatten(arguments,!0))},j.intersection=function(n){var t=o.call(arguments,1);return j.filter(j.uniq(n),function(n){return j.every(t,function(t){return j.contains(t,n)})})},j.difference=function(n){var t=c.apply(e,o.call(arguments,1));return j.filter(n,function(n){return!j.contains(t,n)})},j.zip=function(){for(var n=j.max(j.pluck(arguments,"length").concat(0)),t=new Array(n),r=0;n>r;r++)t[r]=j.pluck(arguments,""+r);return t},j.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},j.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=j.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}if(y&&n.indexOf===y)return n.indexOf(t,r);for(;u>e;e++)if(n[e]===t)return e;return-1},j.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=null!=r;if(b&&n.lastIndexOf===b)return e?n.lastIndexOf(t,r):n.lastIndexOf(t);for(var u=e?r:n.length;u--;)if(n[u]===t)return u;return-1},j.range=function(n,t,r){arguments.length<=1&&(t=n||0,n=0),r=arguments[2]||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=0,i=new Array(e);e>u;)i[u++]=n,n+=r;return i};var R=function(){};j.bind=function(n,t){var r,e;if(_&&n.bind===_)return _.apply(n,o.call(arguments,1));if(!j.isFunction(n))throw new TypeError;return r=o.call(arguments,2),e=function(){if(!(this instanceof e))return n.apply(t,r.concat(o.call(arguments)));R.prototype=n.prototype;var u=new R;R.prototype=null;var i=n.apply(u,r.concat(o.call(arguments)));return Object(i)===i?i:u}},j.partial=function(n){var t=o.call(arguments,1);return function(){for(var r=0,e=t.slice(),u=0,i=e.length;i>u;u++)e[u]===j&&(e[u]=arguments[r++]);for(;r<arguments.length;)e.push(arguments[r++]);return n.apply(this,e)}},j.bindAll=function(n){var t=o.call(arguments,1);if(0===t.length)throw new Error("bindAll must be passed function names");return A(t,function(t){n[t]=j.bind(n[t],n)}),n},j.memoize=function(n,t){var r={};return t||(t=j.identity),function(){var e=t.apply(this,arguments);return j.has(r,e)?r[e]:r[e]=n.apply(this,arguments)}},j.delay=function(n,t){var r=o.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},j.defer=function(n){return j.delay.apply(j,[n,1].concat(o.call(arguments,1)))},j.throttle=function(n,t,r){var e,u,i,a=null,o=0;r||(r={});var c=function(){o=r.leading===!1?0:j.now(),a=null,i=n.apply(e,u),e=u=null};return function(){var l=j.now();o||r.leading!==!1||(o=l);var f=t-(l-o);return e=this,u=arguments,0>=f?(clearTimeout(a),a=null,o=l,i=n.apply(e,u),e=u=null):a||r.trailing===!1||(a=setTimeout(c,f)),i}},j.debounce=function(n,t,r){var e,u,i,a,o,c=function(){var l=j.now()-a;t>l?e=setTimeout(c,t-l):(e=null,r||(o=n.apply(i,u),i=u=null))};return function(){i=this,u=arguments,a=j.now();var l=r&&!e;return e||(e=setTimeout(c,t)),l&&(o=n.apply(i,u),i=u=null),o}},j.once=function(n){var t,r=!1;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},j.wrap=function(n,t){return j.partial(t,n)},j.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length-1;r>=0;r--)t=[n[r].apply(this,t)];return t[0]}},j.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},j.keys=function(n){if(!j.isObject(n))return[];if(w)return w(n);var t=[];for(var r in n)j.has(n,r)&&t.push(r);return t},j.values=function(n){for(var t=j.keys(n),r=t.length,e=new Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},j.pairs=function(n){for(var t=j.keys(n),r=t.length,e=new Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},j.invert=function(n){for(var t={},r=j.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},j.functions=j.methods=function(n){var t=[];for(var r in n)j.isFunction(n[r])&&t.push(r);return t.sort()},j.extend=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]=t[r]}),n},j.pick=function(n){var t={},r=c.apply(e,o.call(arguments,1));return A(r,function(r){r in n&&(t[r]=n[r])}),t},j.omit=function(n){var t={},r=c.apply(e,o.call(arguments,1));for(var u in n)j.contains(r,u)||(t[u]=n[u]);return t},j.defaults=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]===void 0&&(n[r]=t[r])}),n},j.clone=function(n){return j.isObject(n)?j.isArray(n)?n.slice():j.extend({},n):n},j.tap=function(n,t){return t(n),n};var S=function(n,t,r,e){if(n===t)return 0!==n||1/n==1/t;if(null==n||null==t)return n===t;n instanceof j&&(n=n._wrapped),t instanceof j&&(t=t._wrapped);var u=l.call(n);if(u!=l.call(t))return!1;switch(u){case"[object String]":return n==String(t);case"[object Number]":return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case"[object Date]":case"[object Boolean]":return+n==+t;case"[object RegExp]":return n.source==t.source&&n.global==t.global&&n.multiline==t.multiline&&n.ignoreCase==t.ignoreCase}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]==n)return e[i]==t;var a=n.constructor,o=t.constructor;if(a!==o&&!(j.isFunction(a)&&a instanceof a&&j.isFunction(o)&&o instanceof o)&&"constructor"in n&&"constructor"in t)return!1;r.push(n),e.push(t);var c=0,f=!0;if("[object Array]"==u){if(c=n.length,f=c==t.length)for(;c--&&(f=S(n[c],t[c],r,e)););}else{for(var s in n)if(j.has(n,s)&&(c++,!(f=j.has(t,s)&&S(n[s],t[s],r,e))))break;if(f){for(s in t)if(j.has(t,s)&&!c--)break;f=!c}}return r.pop(),e.pop(),f};j.isEqual=function(n,t){return S(n,t,[],[])},j.isEmpty=function(n){if(null==n)return!0;if(j.isArray(n)||j.isString(n))return 0===n.length;for(var t in n)if(j.has(n,t))return!1;return!0},j.isElement=function(n){return!(!n||1!==n.nodeType)},j.isArray=x||function(n){return"[object Array]"==l.call(n)},j.isObject=function(n){return n===Object(n)},A(["Arguments","Function","String","Number","Date","RegExp"],function(n){j["is"+n]=function(t){return l.call(t)=="[object "+n+"]"}}),j.isArguments(arguments)||(j.isArguments=function(n){return!(!n||!j.has(n,"callee"))}),"function"!=typeof/./&&(j.isFunction=function(n){return"function"==typeof n}),j.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},j.isNaN=function(n){return j.isNumber(n)&&n!=+n},j.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"==l.call(n)},j.isNull=function(n){return null===n},j.isUndefined=function(n){return n===void 0},j.has=function(n,t){return f.call(n,t)},j.noConflict=function(){return n._=t,this},j.identity=function(n){return n},j.constant=function(n){return function(){return n}},j.property=function(n){return function(t){return t[n]}},j.matches=function(n){return function(t){if(t===n)return!0;for(var r in n)if(n[r]!==t[r])return!1;return!0}},j.times=function(n,t,r){for(var e=Array(Math.max(0,n)),u=0;n>u;u++)e[u]=t.call(r,u);return e},j.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},j.now=Date.now||function(){return(new Date).getTime()};var T={escape:{"&":"&","<":"<",">":">",'"':""","'":"'"}};T.unescape=j.invert(T.escape);var I={escape:new RegExp("["+j.keys(T.escape).join("")+"]","g"),unescape:new RegExp("("+j.keys(T.unescape).join("|")+")","g")};j.each(["escape","unescape"],function(n){j[n]=function(t){return null==t?"":(""+t).replace(I[n],function(t){return T[n][t]})}}),j.result=function(n,t){if(null==n)return void 0;var r=n[t];return j.isFunction(r)?r.call(n):r},j.mixin=function(n){A(j.functions(n),function(t){var r=j[t]=n[t];j.prototype[t]=function(){var n=[this._wrapped];return a.apply(n,arguments),z.call(this,r.apply(j,n))}})};var N=0;j.uniqueId=function(n){var t=++N+"";return n?n+t:t},j.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var q=/(.)^/,B={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},D=/\\|'|\r|\n|\t|\u2028|\u2029/g;j.template=function(n,t,r){var e;r=j.defaults({},r,j.templateSettings);var u=new RegExp([(r.escape||q).source,(r.interpolate||q).source,(r.evaluate||q).source].join("|")+"|$","g"),i=0,a="__p+='";n.replace(u,function(t,r,e,u,o){return a+=n.slice(i,o).replace(D,function(n){return"\\"+B[n]}),r&&(a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'"),e&&(a+="'+\n((__t=("+e+"))==null?'':__t)+\n'"),u&&(a+="';\n"+u+"\n__p+='"),i=o+t.length,t}),a+="';\n",r.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{e=new Function(r.variable||"obj","_",a)}catch(o){throw o.source=a,o}if(t)return e(t,j);var c=function(n){return e.call(this,n,j)};return c.source="function("+(r.variable||"obj")+"){\n"+a+"}",c},j.chain=function(n){return j(n).chain()};var z=function(n){return this._chain?j(n).chain():n};j.mixin(j),A(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=e[n];j.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!=n&&"splice"!=n||0!==r.length||delete r[0],z.call(this,r)}}),A(["concat","join","slice"],function(n){var t=e[n];j.prototype[n]=function(){return z.call(this,t.apply(this._wrapped,arguments))}}),j.extend(j.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}}),"function"==typeof define&&define.amd&&define("underscore",[],function(){return j})}).call(this); -//# sourceMappingURL=underscore-min.map \ No newline at end of file +!function(){var n="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this||{},r=n._,e=Array.prototype,o=Object.prototype,s="undefined"!=typeof Symbol?Symbol.prototype:null,u=e.push,c=e.slice,p=o.toString,i=o.hasOwnProperty,t=Array.isArray,a=Object.keys,l=Object.create,f=function(){},h=function(n){return n instanceof h?n:this instanceof h?void(this._wrapped=n):new h(n)};"undefined"==typeof exports||exports.nodeType?n._=h:("undefined"!=typeof module&&!module.nodeType&&module.exports&&(exports=module.exports=h),exports._=h),h.VERSION="1.9.2";var v,y=function(u,i,n){if(void 0===i)return u;switch(null==n?3:n){case 1:return function(n){return u.call(i,n)};case 3:return function(n,r,t){return u.call(i,n,r,t)};case 4:return function(n,r,t,e){return u.call(i,n,r,t,e)}}return function(){return u.apply(i,arguments)}},d=function(n,r,t){return h.iteratee!==v?h.iteratee(n,r):null==n?h.identity:h.isFunction(n)?y(n,r,t):h.isObject(n)&&!h.isArray(n)?h.matcher(n):h.property(n)};h.iteratee=v=function(n,r){return d(n,r,1/0)};var g=function(u,i){return i=null==i?u.length-1:+i,function(){for(var n=Math.max(arguments.length-i,0),r=Array(n),t=0;t<n;t++)r[t]=arguments[t+i];switch(i){case 0:return u.call(this,r);case 1:return u.call(this,arguments[0],r);case 2:return u.call(this,arguments[0],arguments[1],r)}var e=Array(i+1);for(t=0;t<i;t++)e[t]=arguments[t];return e[i]=r,u.apply(this,e)}},m=function(n){if(!h.isObject(n))return{};if(l)return l(n);f.prototype=n;var r=new f;return f.prototype=null,r},b=function(r){return function(n){return null==n?void 0:n[r]}},j=function(n,r){return null!=n&&i.call(n,r)},x=function(n,r){for(var t=r.length,e=0;e<t;e++){if(null==n)return;n=n[r[e]]}return t?n:void 0},_=Math.pow(2,53)-1,A=b("length"),w=function(n){var r=A(n);return"number"==typeof r&&0<=r&&r<=_};h.each=h.forEach=function(n,r,t){var e,u;if(r=y(r,t),w(n))for(e=0,u=n.length;e<u;e++)r(n[e],e,n);else{var i=h.keys(n);for(e=0,u=i.length;e<u;e++)r(n[i[e]],i[e],n)}return n},h.map=h.collect=function(n,r,t){r=d(r,t);for(var e=!w(n)&&h.keys(n),u=(e||n).length,i=Array(u),o=0;o<u;o++){var a=e?e[o]:o;i[o]=r(n[a],a,n)}return i};var O=function(c){return function(n,r,t,e){var u=3<=arguments.length;return function(n,r,t,e){var u=!w(n)&&h.keys(n),i=(u||n).length,o=0<c?0:i-1;for(e||(t=n[u?u[o]:o],o+=c);0<=o&&o<i;o+=c){var a=u?u[o]:o;t=r(t,n[a],a,n)}return t}(n,y(r,e,4),t,u)}};h.reduce=h.foldl=h.inject=O(1),h.reduceRight=h.foldr=O(-1),h.find=h.detect=function(n,r,t){var e=(w(n)?h.findIndex:h.findKey)(n,r,t);if(void 0!==e&&-1!==e)return n[e]},h.filter=h.select=function(n,e,r){var u=[];return e=d(e,r),h.each(n,function(n,r,t){e(n,r,t)&&u.push(n)}),u},h.reject=function(n,r,t){return h.filter(n,h.negate(d(r)),t)},h.every=h.all=function(n,r,t){r=d(r,t);for(var e=!w(n)&&h.keys(n),u=(e||n).length,i=0;i<u;i++){var o=e?e[i]:i;if(!r(n[o],o,n))return!1}return!0},h.some=h.any=function(n,r,t){r=d(r,t);for(var e=!w(n)&&h.keys(n),u=(e||n).length,i=0;i<u;i++){var o=e?e[i]:i;if(r(n[o],o,n))return!0}return!1},h.contains=h.includes=h.include=function(n,r,t,e){return w(n)||(n=h.values(n)),("number"!=typeof t||e)&&(t=0),0<=h.indexOf(n,r,t)},h.invoke=g(function(n,t,e){var u,i;return h.isFunction(t)?i=t:h.isArray(t)&&(u=t.slice(0,-1),t=t[t.length-1]),h.map(n,function(n){var r=i;if(!r){if(u&&u.length&&(n=x(n,u)),null==n)return;r=n[t]}return null==r?r:r.apply(n,e)})}),h.pluck=function(n,r){return h.map(n,h.property(r))},h.where=function(n,r){return h.filter(n,h.matcher(r))},h.findWhere=function(n,r){return h.find(n,h.matcher(r))},h.max=function(n,e,r){var t,u,i=-1/0,o=-1/0;if(null==e||"number"==typeof e&&"object"!=typeof n[0]&&null!=n)for(var a=0,c=(n=w(n)?n:h.values(n)).length;a<c;a++)null!=(t=n[a])&&i<t&&(i=t);else e=d(e,r),h.each(n,function(n,r,t){u=e(n,r,t),(o<u||u===-1/0&&i===-1/0)&&(i=n,o=u)});return i},h.min=function(n,e,r){var t,u,i=1/0,o=1/0;if(null==e||"number"==typeof e&&"object"!=typeof n[0]&&null!=n)for(var a=0,c=(n=w(n)?n:h.values(n)).length;a<c;a++)null!=(t=n[a])&&t<i&&(i=t);else e=d(e,r),h.each(n,function(n,r,t){((u=e(n,r,t))<o||u===1/0&&i===1/0)&&(i=n,o=u)});return i},h.shuffle=function(n){return h.sample(n,1/0)},h.sample=function(n,r,t){if(null==r||t)return w(n)||(n=h.values(n)),n[h.random(n.length-1)];var e=w(n)?h.clone(n):h.values(n),u=A(e);r=Math.max(Math.min(r,u),0);for(var i=u-1,o=0;o<r;o++){var a=h.random(o,i),c=e[o];e[o]=e[a],e[a]=c}return e.slice(0,r)},h.sortBy=function(n,e,r){var u=0;return e=d(e,r),h.pluck(h.map(n,function(n,r,t){return{value:n,index:u++,criteria:e(n,r,t)}}).sort(function(n,r){var t=n.criteria,e=r.criteria;if(t!==e){if(e<t||void 0===t)return 1;if(t<e||void 0===e)return-1}return n.index-r.index}),"value")};var k=function(o,r){return function(e,u,n){var i=r?[[],[]]:{};return u=d(u,n),h.each(e,function(n,r){var t=u(n,r,e);o(i,n,t)}),i}};h.groupBy=k(function(n,r,t){j(n,t)?n[t].push(r):n[t]=[r]}),h.indexBy=k(function(n,r,t){n[t]=r}),h.countBy=k(function(n,r,t){j(n,t)?n[t]++:n[t]=1});var S=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;h.toArray=function(n){return n?h.isArray(n)?c.call(n):h.isString(n)?n.match(S):w(n)?h.map(n,h.identity):h.values(n):[]},h.size=function(n){return null==n?0:w(n)?n.length:h.keys(n).length},h.partition=k(function(n,r,t){n[t?0:1].push(r)},!0),h.first=h.head=h.take=function(n,r,t){return null==n||n.length<1?null==r?void 0:[]:null==r||t?n[0]:h.initial(n,n.length-r)},h.initial=function(n,r,t){return c.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))},h.last=function(n,r,t){return null==n||n.length<1?null==r?void 0:[]:null==r||t?n[n.length-1]:h.rest(n,Math.max(0,n.length-r))},h.rest=h.tail=h.drop=function(n,r,t){return c.call(n,null==r||t?1:r)},h.compact=function(n){return h.filter(n,Boolean)};var M=function(n,r,t,e){for(var u=(e=e||[]).length,i=0,o=A(n);i<o;i++){var a=n[i];if(w(a)&&(h.isArray(a)||h.isArguments(a)))if(r)for(var c=0,l=a.length;c<l;)e[u++]=a[c++];else M(a,r,t,e),u=e.length;else t||(e[u++]=a)}return e};h.flatten=function(n,r){return M(n,r,!1)},h.without=g(function(n,r){return h.difference(n,r)}),h.uniq=h.unique=function(n,r,t,e){h.isBoolean(r)||(e=t,t=r,r=!1),null!=t&&(t=d(t,e));for(var u=[],i=[],o=0,a=A(n);o<a;o++){var c=n[o],l=t?t(c,o,n):c;r&&!t?(o&&i===l||u.push(c),i=l):t?h.contains(i,l)||(i.push(l),u.push(c)):h.contains(u,c)||u.push(c)}return u},h.union=g(function(n){return h.uniq(M(n,!0,!0))}),h.intersection=function(n){for(var r=[],t=arguments.length,e=0,u=A(n);e<u;e++){var i=n[e];if(!h.contains(r,i)){var o;for(o=1;o<t&&h.contains(arguments[o],i);o++);o===t&&r.push(i)}}return r},h.difference=g(function(n,r){return r=M(r,!0,!0),h.filter(n,function(n){return!h.contains(r,n)})}),h.unzip=function(n){for(var r=n&&h.max(n,A).length||0,t=Array(r),e=0;e<r;e++)t[e]=h.pluck(n,e);return t},h.zip=g(h.unzip),h.object=function(n,r){for(var t={},e=0,u=A(n);e<u;e++)r?t[n[e]]=r[e]:t[n[e][0]]=n[e][1];return t};var F=function(i){return function(n,r,t){r=d(r,t);for(var e=A(n),u=0<i?0:e-1;0<=u&&u<e;u+=i)if(r(n[u],u,n))return u;return-1}};h.findIndex=F(1),h.findLastIndex=F(-1),h.sortedIndex=function(n,r,t,e){for(var u=(t=d(t,e,1))(r),i=0,o=A(n);i<o;){var a=Math.floor((i+o)/2);t(n[a])<u?i=a+1:o=a}return i};var E=function(i,o,a){return function(n,r,t){var e=0,u=A(n);if("number"==typeof t)0<i?e=0<=t?t:Math.max(t+u,e):u=0<=t?Math.min(t+1,u):t+u+1;else if(a&&t&&u)return n[t=a(n,r)]===r?t:-1;if(r!=r)return 0<=(t=o(c.call(n,e,u),h.isNaN))?t+e:-1;for(t=0<i?e:u-1;0<=t&&t<u;t+=i)if(n[t]===r)return t;return-1}};h.indexOf=E(1,h.findIndex,h.sortedIndex),h.lastIndexOf=E(-1,h.findLastIndex),h.range=function(n,r,t){null==r&&(r=n||0,n=0),t||(t=r<n?-1:1);for(var e=Math.max(Math.ceil((r-n)/t),0),u=Array(e),i=0;i<e;i++,n+=t)u[i]=n;return u},h.chunk=function(n,r){if(null==r||r<1)return[];for(var t=[],e=0,u=n.length;e<u;)t.push(c.call(n,e,e+=r));return t};var N=function(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var i=m(n.prototype),o=n.apply(i,u);return h.isObject(o)?o:i};h.bind=g(function(r,t,e){if(!h.isFunction(r))throw new TypeError("Bind must be called on a function");var u=g(function(n){return N(r,u,t,this,e.concat(n))});return u}),h.partial=g(function(u,i){var o=h.partial.placeholder,a=function(){for(var n=0,r=i.length,t=Array(r),e=0;e<r;e++)t[e]=i[e]===o?arguments[n++]:i[e];for(;n<arguments.length;)t.push(arguments[n++]);return N(u,a,this,this,t)};return a}),(h.partial.placeholder=h).bindAll=g(function(n,r){var t=(r=M(r,!1,!1)).length;if(t<1)throw new Error("bindAll must be passed function names");for(;t--;){var e=r[t];n[e]=h.bind(n[e],n)}}),h.memoize=function(e,u){var i=function(n){var r=i.cache,t=""+(u?u.apply(this,arguments):n);return j(r,t)||(r[t]=e.apply(this,arguments)),r[t]};return i.cache={},i},h.delay=g(function(n,r,t){return setTimeout(function(){return n.apply(null,t)},r)}),h.defer=h.partial(h.delay,h,1),h.throttle=function(t,e,u){var i,o,a,c,l=0;u||(u={});var f=function(){l=!1===u.leading?0:h.now(),i=null,c=t.apply(o,a),i||(o=a=null)},n=function(){var n=h.now();l||!1!==u.leading||(l=n);var r=e-(n-l);return o=this,a=arguments,r<=0||e<r?(i&&(clearTimeout(i),i=null),l=n,c=t.apply(o,a),i||(o=a=null)):i||!1===u.trailing||(i=setTimeout(f,r)),c};return n.cancel=function(){clearTimeout(i),l=0,i=o=a=null},n},h.debounce=function(t,e,u){var i,o,a=function(n,r){i=null,r&&(o=t.apply(n,r))},n=g(function(n){if(i&&clearTimeout(i),u){var r=!i;i=setTimeout(a,e),r&&(o=t.apply(this,n))}else i=h.delay(a,e,this,n);return o});return n.cancel=function(){clearTimeout(i),i=null},n},h.wrap=function(n,r){return h.partial(r,n)},h.negate=function(n){return function(){return!n.apply(this,arguments)}},h.compose=function(){var t=arguments,e=t.length-1;return function(){for(var n=e,r=t[e].apply(this,arguments);n--;)r=t[n].call(this,r);return r}},h.after=function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},h.before=function(n,r){var t;return function(){return 0<--n&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}},h.once=h.partial(h.before,2),h.restArguments=g;var I=!{toString:null}.propertyIsEnumerable("toString"),T=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],B=function(n,r){var t=T.length,e=n.constructor,u=h.isFunction(e)&&e.prototype||o,i="constructor";for(j(n,i)&&!h.contains(r,i)&&r.push(i);t--;)(i=T[t])in n&&n[i]!==u[i]&&!h.contains(r,i)&&r.push(i)};h.keys=function(n){if(!h.isObject(n))return[];if(a)return a(n);var r=[];for(var t in n)j(n,t)&&r.push(t);return I&&B(n,r),r},h.allKeys=function(n){if(!h.isObject(n))return[];var r=[];for(var t in n)r.push(t);return I&&B(n,r),r},h.values=function(n){for(var r=h.keys(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=n[r[u]];return e},h.mapObject=function(n,r,t){r=d(r,t);for(var e=h.keys(n),u=e.length,i={},o=0;o<u;o++){var a=e[o];i[a]=r(n[a],a,n)}return i},h.pairs=function(n){for(var r=h.keys(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=[r[u],n[r[u]]];return e},h.invert=function(n){for(var r={},t=h.keys(n),e=0,u=t.length;e<u;e++)r[n[t[e]]]=t[e];return r},h.functions=h.methods=function(n){var r=[];for(var t in n)h.isFunction(n[t])&&r.push(t);return r.sort()};var R=function(c,l){return function(n){var r=arguments.length;if(l&&(n=Object(n)),r<2||null==n)return n;for(var t=1;t<r;t++)for(var e=arguments[t],u=c(e),i=u.length,o=0;o<i;o++){var a=u[o];l&&void 0!==n[a]||(n[a]=e[a])}return n}};h.extend=R(h.allKeys),h.extendOwn=h.assign=R(h.keys),h.findKey=function(n,r,t){r=d(r,t);for(var e,u=h.keys(n),i=0,o=u.length;i<o;i++)if(r(n[e=u[i]],e,n))return e};var q,K,z=function(n,r,t){return r in t};h.pick=g(function(n,r){var t={},e=r[0];if(null==n)return t;h.isFunction(e)?(1<r.length&&(e=y(e,r[1])),r=h.allKeys(n)):(e=z,r=M(r,!1,!1),n=Object(n));for(var u=0,i=r.length;u<i;u++){var o=r[u],a=n[o];e(a,o,n)&&(t[o]=a)}return t}),h.omit=g(function(n,t){var r,e=t[0];return h.isFunction(e)?(e=h.negate(e),1<t.length&&(r=t[1])):(t=h.map(M(t,!1,!1),String),e=function(n,r){return!h.contains(t,r)}),h.pick(n,e,r)}),h.defaults=R(h.allKeys,!0),h.create=function(n,r){var t=m(n);return r&&h.extendOwn(t,r),t},h.clone=function(n){return h.isObject(n)?h.isArray(n)?n.slice():h.extend({},n):n},h.tap=function(n,r){return r(n),n},h.isMatch=function(n,r){var t=h.keys(r),e=t.length;if(null==n)return!e;for(var u=Object(n),i=0;i<e;i++){var o=t[i];if(r[o]!==u[o]||!(o in u))return!1}return!0},q=function(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r)return!1;if(n!=n)return r!=r;var u=typeof n;return("function"===u||"object"===u||"object"==typeof r)&&K(n,r,t,e)},K=function(n,r,t,e){n instanceof h&&(n=n._wrapped),r instanceof h&&(r=r._wrapped);var u=p.call(n);if(u!==p.call(r))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+r;case"[object Number]":return+n!=+n?+r!=+r:0==+n?1/+n==1/r:+n==+r;case"[object Date]":case"[object Boolean]":return+n==+r;case"[object Symbol]":return s.valueOf.call(n)===s.valueOf.call(r)}var i="[object Array]"===u;if(!i){if("object"!=typeof n||"object"!=typeof r)return!1;var o=n.constructor,a=r.constructor;if(o!==a&&!(h.isFunction(o)&&o instanceof o&&h.isFunction(a)&&a instanceof a)&&"constructor"in n&&"constructor"in r)return!1}e=e||[];for(var c=(t=t||[]).length;c--;)if(t[c]===n)return e[c]===r;if(t.push(n),e.push(r),i){if((c=n.length)!==r.length)return!1;for(;c--;)if(!q(n[c],r[c],t,e))return!1}else{var l,f=h.keys(n);if(c=f.length,h.keys(r).length!==c)return!1;for(;c--;)if(l=f[c],!j(r,l)||!q(n[l],r[l],t,e))return!1}return t.pop(),e.pop(),!0},h.isEqual=function(n,r){return q(n,r)},h.isEmpty=function(n){return null==n||(w(n)&&(h.isArray(n)||h.isString(n)||h.isArguments(n))?0===n.length:0===h.keys(n).length)},h.isElement=function(n){return!(!n||1!==n.nodeType)},h.isArray=t||function(n){return"[object Array]"===p.call(n)},h.isObject=function(n){var r=typeof n;return"function"===r||"object"===r&&!!n},h.each(["Arguments","Function","String","Number","Date","RegExp","Error","Symbol","Map","WeakMap","Set","WeakSet"],function(r){h["is"+r]=function(n){return p.call(n)==="[object "+r+"]"}}),h.isArguments(arguments)||(h.isArguments=function(n){return j(n,"callee")});var D=n.document&&n.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof D&&(h.isFunction=function(n){return"function"==typeof n||!1}),h.isFinite=function(n){return!h.isSymbol(n)&&isFinite(n)&&!isNaN(parseFloat(n))},h.isNaN=function(n){return h.isNumber(n)&&isNaN(n)},h.isBoolean=function(n){return!0===n||!1===n||"[object Boolean]"===p.call(n)},h.isNull=function(n){return null===n},h.isUndefined=function(n){return void 0===n},h.has=function(n,r){if(!h.isArray(r))return j(n,r);for(var t=r.length,e=0;e<t;e++){var u=r[e];if(null==n||!i.call(n,u))return!1;n=n[u]}return!!t},h.noConflict=function(){return n._=r,this},h.identity=function(n){return n},h.constant=function(n){return function(){return n}},h.noop=function(){},h.property=function(r){return h.isArray(r)?function(n){return x(n,r)}:b(r)},h.propertyOf=function(r){return null==r?function(){}:function(n){return h.isArray(n)?x(r,n):r[n]}},h.matcher=h.matches=function(r){return r=h.extendOwn({},r),function(n){return h.isMatch(n,r)}},h.times=function(n,r,t){var e=Array(Math.max(0,n));r=y(r,t,1);for(var u=0;u<n;u++)e[u]=r(u);return e},h.random=function(n,r){return null==r&&(r=n,n=0),n+Math.floor(Math.random()*(r-n+1))},h.now=Date.now||function(){return(new Date).getTime()};var L={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},P=h.invert(L),W=function(r){var t=function(n){return r[n]},n="(?:"+h.keys(r).join("|")+")",e=RegExp(n),u=RegExp(n,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};h.escape=W(L),h.unescape=W(P),h.result=function(n,r,t){h.isArray(r)||(r=[r]);var e=r.length;if(!e)return h.isFunction(t)?t.call(n):t;for(var u=0;u<e;u++){var i=null==n?void 0:n[r[u]];void 0===i&&(i=t,u=e),n=h.isFunction(i)?i.call(n):i}return n};var C=0;h.uniqueId=function(n){var r=++C+"";return n?n+r:r},h.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var J=/(.)^/,U={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},V=/\\|'|\r|\n|\u2028|\u2029/g,$=function(n){return"\\"+U[n]};h.template=function(i,n,r){!n&&r&&(n=r),n=h.defaults({},n,h.templateSettings);var t,e=RegExp([(n.escape||J).source,(n.interpolate||J).source,(n.evaluate||J).source].join("|")+"|$","g"),o=0,a="__p+='";i.replace(e,function(n,r,t,e,u){return a+=i.slice(o,u).replace(V,$),o=u+n.length,r?a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":t?a+="'+\n((__t=("+t+"))==null?'':__t)+\n'":e&&(a+="';\n"+e+"\n__p+='"),n}),a+="';\n",n.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{t=new Function(n.variable||"obj","_",a)}catch(n){throw n.source=a,n}var u=function(n){return t.call(this,n,h)},c=n.variable||"obj";return u.source="function("+c+"){\n"+a+"}",u},h.chain=function(n){var r=h(n);return r._chain=!0,r};var G=function(n,r){return n._chain?h(r).chain():r};h.mixin=function(t){return h.each(h.functions(t),function(n){var r=h[n]=t[n];h.prototype[n]=function(){var n=[this._wrapped];return u.apply(n,arguments),G(this,r.apply(h,n))}}),h},h.mixin(h),h.each(["pop","push","reverse","shift","sort","splice","unshift"],function(r){var t=e[r];h.prototype[r]=function(){var n=this._wrapped;return t.apply(n,arguments),"shift"!==r&&"splice"!==r||0!==n.length||delete n[0],G(this,n)}}),h.each(["concat","join","slice"],function(n){var r=e[n];h.prototype[n]=function(){return G(this,r.apply(this._wrapped,arguments))}}),h.prototype.value=function(){return this._wrapped},h.prototype.valueOf=h.prototype.toJSON=h.prototype.value,h.prototype.toString=function(){return String(this._wrapped)},"function"==typeof define&&define.amd&&define("underscore",[],function(){return h})}(); \ No newline at end of file diff --git a/editor/jspdf/underscore-min.js.map b/editor/jspdf/underscore-min.js.map new file mode 100644 index 00000000..3b6056b1 --- /dev/null +++ b/editor/jspdf/underscore-min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["underscore.js"],"names":["root","self","global","this","previousUnderscore","_","ArrayProto","Array","prototype","ObjProto","Object","SymbolProto","Symbol","push","slice","toString","hasOwnProperty","nativeIsArray","isArray","nativeKeys","keys","nativeCreate","create","Ctor","obj","_wrapped","exports","nodeType","module","VERSION","builtinIteratee","optimizeCb","func","context","argCount","value","call","index","collection","accumulator","apply","arguments","cb","iteratee","identity","isFunction","isObject","matcher","property","Infinity","restArguments","startIndex","length","Math","max","rest","args","baseCreate","result","shallowProperty","key","has","path","deepGet","i","MAX_ARRAY_INDEX","pow","getLength","isArrayLike","each","forEach","map","collect","results","currentKey","createReduce","dir","memo","initial","reducer","reduce","foldl","inject","reduceRight","foldr","find","detect","predicate","findIndex","findKey","filter","select","list","reject","negate","every","all","some","any","contains","includes","include","item","fromIndex","guard","values","indexOf","invoke","contextPath","method","pluck","where","attrs","findWhere","computed","lastComputed","v","min","shuffle","sample","n","random","clone","last","rand","temp","sortBy","criteria","sort","left","right","a","b","group","behavior","partition","groupBy","indexBy","countBy","reStrSymbol","toArray","isString","match","size","pass","first","head","take","array","tail","drop","compact","Boolean","flatten","input","shallow","strict","output","idx","isArguments","j","len","without","otherArrays","difference","uniq","unique","isSorted","isBoolean","seen","union","arrays","intersection","argsLength","unzip","zip","object","createPredicateIndexFinder","findLastIndex","sortedIndex","low","high","mid","floor","createIndexFinder","predicateFind","isNaN","lastIndexOf","range","start","stop","step","ceil","chunk","count","executeBound","sourceFunc","boundFunc","callingContext","bind","TypeError","bound","callArgs","concat","partial","boundArgs","placeholder","position","bindAll","Error","memoize","hasher","cache","address","delay","wait","setTimeout","defer","throttle","options","timeout","previous","later","leading","now","throttled","remaining","clearTimeout","trailing","cancel","debounce","immediate","debounced","callNow","wrap","wrapper","compose","after","times","before","once","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","collectNonEnumProps","nonEnumIdx","constructor","proto","prop","allKeys","mapObject","pairs","invert","functions","methods","names","createAssigner","keysFunc","defaults","source","l","extend","extendOwn","assign","eq","deepEq","keyInObj","pick","omit","String","props","tap","interceptor","isMatch","aStack","bStack","type","className","valueOf","areArrays","aCtor","bCtor","pop","isEqual","isEmpty","isElement","name","nodelist","document","childNodes","Int8Array","isFinite","isSymbol","parseFloat","isNumber","isNull","isUndefined","noConflict","constant","noop","propertyOf","matches","accum","Date","getTime","escapeMap","&","<",">","\"","'","`","unescapeMap","createEscaper","escaper","join","testRegexp","RegExp","replaceRegexp","string","test","replace","escape","unescape","fallback","idCounter","uniqueId","prefix","id","templateSettings","evaluate","interpolate","noMatch","escapes","\\","\r","\n","
","
","escapeRegExp","escapeChar","template","text","settings","oldSettings","render","offset","variable","Function","e","data","argument","chain","instance","_chain","chainResult","mixin","toJSON","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/editor/layer.js b/editor/layer.js index de678bac..06f876f9 100644 --- a/editor/layer.js +++ b/editor/layer.js @@ -1,6 +1,6 @@ /* globals jQuery */ /** - * Provides tools for the layer concept + * Provides tools for the layer concept. * @module layer * @license MIT * @@ -120,7 +120,7 @@ class Layer { if (isNullish(opacity)) { return 1; } - return parseFloat(opacity); + return Number.parseFloat(opacity); } /** @@ -188,8 +188,7 @@ class Layer { * @returns {SVGGElement} The layer SVG group that was just removed. */ removeGroup () { - const parent = this.group_.parentNode; - const group = parent.removeChild(this.group_); + const group = this.group_.remove(); this.group_ = undefined; return group; } diff --git a/editor/locale/lang.af.js b/editor/locale/lang.af.js index 86c8ece9..0cada5d5 100644 --- a/editor/locale/lang.af.js +++ b/editor/locale/lang.af.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Elemente', docprops: 'Document Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Skuif na Bottom', move_top: 'Skuif na bo', node_clone: 'Clone Node', diff --git a/editor/locale/lang.ar.js b/editor/locale/lang.ar.js index 6746c0bf..20430852 100644 --- a/editor/locale/lang.ar.js +++ b/editor/locale/lang.ar.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'فك تجميع عناصر', docprops: 'خصائص المستند', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'الانتقال إلى أسفل', move_top: 'الانتقال إلى أعلى', node_clone: 'Clone Node', diff --git a/editor/locale/lang.az.js b/editor/locale/lang.az.js index f6455252..c13c47c4 100644 --- a/editor/locale/lang.az.js +++ b/editor/locale/lang.az.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Elements', docprops: 'Document Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Move to Bottom', move_top: 'Move to Top', node_clone: 'Clone Node', diff --git a/editor/locale/lang.be.js b/editor/locale/lang.be.js index 87d02fc1..79976cb8 100644 --- a/editor/locale/lang.be.js +++ b/editor/locale/lang.be.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Элементы Разгруппировать', docprops: 'Уласцівасці дакумента', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Перамясціць уніз', move_top: 'Перамясціць угару', node_clone: 'Clone Node', diff --git a/editor/locale/lang.bg.js b/editor/locale/lang.bg.js index 2fa3dc2a..dbf62f8b 100644 --- a/editor/locale/lang.bg.js +++ b/editor/locale/lang.bg.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Разгрупирай Елементи', docprops: 'Document Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Премести надолу', move_top: 'Премести в началото', node_clone: 'Clone Node', diff --git a/editor/locale/lang.ca.js b/editor/locale/lang.ca.js index e46a7edb..41102438 100644 --- a/editor/locale/lang.ca.js +++ b/editor/locale/lang.ca.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Desagrupar elements', docprops: 'Propietats del document', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Mou al final', move_top: 'Mou al principi', node_clone: 'Clone Node', diff --git a/editor/locale/lang.cs.js b/editor/locale/lang.cs.js index 3e420ffe..13a89596 100644 --- a/editor/locale/lang.cs.js +++ b/editor/locale/lang.cs.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Změna orientace křivky', ungroup: 'Zrušit seskupení', docprops: 'Vlastnosti dokumentu', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Vrstvu úplně dospodu', move_top: 'Vrstvu úplně nahoru', node_clone: 'Vložit nový uzel', diff --git a/editor/locale/lang.cy.js b/editor/locale/lang.cy.js index 683b8def..281b258f 100644 --- a/editor/locale/lang.cy.js +++ b/editor/locale/lang.cy.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Elfennau Ungroup', docprops: 'Document Eiddo', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Symud i'r Gwaelod', move_top: 'Symud i'r Top', node_clone: 'Clone Node', diff --git a/editor/locale/lang.da.js b/editor/locale/lang.da.js index f1699e5a..69a0ac79 100644 --- a/editor/locale/lang.da.js +++ b/editor/locale/lang.da.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Opdel Elements', docprops: 'Document Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Flyt til bund', move_top: 'Flyt til toppen', node_clone: 'Clone Node', diff --git a/editor/locale/lang.de.js b/editor/locale/lang.de.js index 76bf6201..867e3fc9 100644 --- a/editor/locale/lang.de.js +++ b/editor/locale/lang.de.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Neuausrichtung des Pfades', ungroup: 'Gruppierung aufheben', docprops: 'Dokument-Eigenschaften', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Die gewählten Objekte nach ganz unten verschieben', move_top: 'Die gewählten Objekte nach ganz oben verschieben', node_clone: 'Klone den Knoten', diff --git a/editor/locale/lang.el.js b/editor/locale/lang.el.js index b7a72441..72a37906 100644 --- a/editor/locale/lang.el.js +++ b/editor/locale/lang.el.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Κατάργηση ομαδοποίησης Στοιχεία', docprops: 'Ιδιότητες εγγράφου', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Μετακίνηση προς τα κάτω', move_top: 'Μετακίνηση στην αρχή', node_clone: 'Clone Node', diff --git a/editor/locale/lang.en.js b/editor/locale/lang.en.js index 3dc5458b..f91f7639 100644 --- a/editor/locale/lang.en.js +++ b/editor/locale/lang.en.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Elements', docprops: 'Document Properties [D]', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Send to Back', move_top: 'Bring to Front', node_clone: 'Clone Node', diff --git a/editor/locale/lang.es.js b/editor/locale/lang.es.js index 98739708..a25916dd 100644 --- a/editor/locale/lang.es.js +++ b/editor/locale/lang.es.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorientar el trazado', ungroup: 'Desagrupar objetos', docprops: 'Propiedades del documento', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Mover abajo', move_top: 'Mover arriba', node_clone: 'Clonar nodo', diff --git a/editor/locale/lang.et.js b/editor/locale/lang.et.js index c98d6810..3fe11c54 100644 --- a/editor/locale/lang.et.js +++ b/editor/locale/lang.et.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Lõhu Elements', docprops: 'Dokumendi omadused', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Liiguta alla', move_top: 'Liiguta üles', node_clone: 'Clone Node', diff --git a/editor/locale/lang.fa.js b/editor/locale/lang.fa.js index d6f241c3..a541c2f8 100644 --- a/editor/locale/lang.fa.js +++ b/editor/locale/lang.fa.js @@ -126,6 +126,7 @@ export default { reorient_path: '‫جهت دهی مجدد مسیر‬', ungroup: '‫خارج کردن عناصر از گروه ‬', docprops: '‫مشخصات سند ‬', + editor_homepage: 'SVG-Edit Home Page', move_bottom: '‫انتقال به پایین ترین ‬', move_top: '‫انتقال به بالاترین ‬', node_clone: '‫ایجاد کپی از نقطه‬', diff --git a/editor/locale/lang.fi.js b/editor/locale/lang.fi.js index 12af7ca4..1632b803 100644 --- a/editor/locale/lang.fi.js +++ b/editor/locale/lang.fi.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Elements', docprops: 'Asiakirjan ominaisuudet', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Move to Bottom', move_top: 'Move to Top', node_clone: 'Clone Node', diff --git a/editor/locale/lang.fr.js b/editor/locale/lang.fr.js index e04073e8..776bd8fc 100644 --- a/editor/locale/lang.fr.js +++ b/editor/locale/lang.fr.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Réorienter le chemin', ungroup: 'Dégrouper les éléments', docprops: 'Propriétés du document', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Déplacer vers le bas', move_top: 'Déplacer vers le haut', node_clone: 'Cloner le nœud', diff --git a/editor/locale/lang.fy.js b/editor/locale/lang.fy.js index e75046dd..fbae581f 100644 --- a/editor/locale/lang.fy.js +++ b/editor/locale/lang.fy.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Paad opnij orientearje', ungroup: 'Groepering opheffe', docprops: 'Dokuminteigenskippen', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Nei eftergrûn', move_top: 'Nei foargrûn', node_clone: 'Knooppunt duplisearje', diff --git a/editor/locale/lang.ga.js b/editor/locale/lang.ga.js index 298d8741..7c814bdb 100644 --- a/editor/locale/lang.ga.js +++ b/editor/locale/lang.ga.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Eilimintí Díghrúpáil', docprops: 'Doiciméad Airíonna', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Téigh go Bun', move_top: 'Téigh go Barr', node_clone: 'Clone Node', diff --git a/editor/locale/lang.gl.js b/editor/locale/lang.gl.js index 57524c92..e50b98c6 100644 --- a/editor/locale/lang.gl.js +++ b/editor/locale/lang.gl.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Elementos Desagrupadas', docprops: 'Propriedades do Documento', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Move a Bottom', move_top: 'Move to Top', node_clone: 'Clone Node', diff --git a/editor/locale/lang.he.js b/editor/locale/lang.he.js index 91c1e0de..5c8c5eed 100755 --- a/editor/locale/lang.he.js +++ b/editor/locale/lang.he.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'אלמנטים פרק קבוצה', docprops: 'מאפייני מסמך', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'הזז למטה', move_top: 'עבור לראש הדף', node_clone: 'Clone Node', diff --git a/editor/locale/lang.hi.js b/editor/locale/lang.hi.js index e5fe2343..ef5da6a0 100644 --- a/editor/locale/lang.hi.js +++ b/editor/locale/lang.hi.js @@ -126,6 +126,7 @@ export default { reorient_path: 'पथ को नई दिशा दें', ungroup: 'अंश को समूह से अलग करें', docprops: 'दस्तावेज़ गुण', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'नीचे ले जाएँ', move_top: 'ऊपर ले जाएँ', node_clone: 'नोड क्लोन', diff --git a/editor/locale/lang.hr.js b/editor/locale/lang.hr.js index 40cebeb3..6df24a24 100644 --- a/editor/locale/lang.hr.js +++ b/editor/locale/lang.hr.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Razgrupiranje Elementi', docprops: 'Svojstva dokumenta', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Move to Bottom', move_top: 'Pomakni na vrh', node_clone: 'Clone Node', diff --git a/editor/locale/lang.hu.js b/editor/locale/lang.hu.js index 7c1acb9c..5d022e37 100644 --- a/editor/locale/lang.hu.js +++ b/editor/locale/lang.hu.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Szétbont elemei', docprops: 'Dokumentum tulajdonságai', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Mozgatás lefelé', move_top: 'Move to Top', node_clone: 'Clone Node', diff --git a/editor/locale/lang.hy.js b/editor/locale/lang.hy.js index 16931a06..08d6ddf3 100644 --- a/editor/locale/lang.hy.js +++ b/editor/locale/lang.hy.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Elements', docprops: 'Document Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Move to Bottom', move_top: 'Move to Top', node_clone: 'Clone Node', diff --git a/editor/locale/lang.id.js b/editor/locale/lang.id.js index 4c6d418b..5d6d1064 100644 --- a/editor/locale/lang.id.js +++ b/editor/locale/lang.id.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Elemen', docprops: 'Document Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Pindah ke Bawah', move_top: 'Pindahkan ke Atas', node_clone: 'Clone Node', diff --git a/editor/locale/lang.is.js b/editor/locale/lang.is.js index 56c79e91..d659ea1c 100644 --- a/editor/locale/lang.is.js +++ b/editor/locale/lang.is.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Elements', docprops: 'Document Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Færa Bottom', move_top: 'Fara efst á síðu', node_clone: 'Clone Node', diff --git a/editor/locale/lang.it.js b/editor/locale/lang.it.js index cce861c1..baca8758 100644 --- a/editor/locale/lang.it.js +++ b/editor/locale/lang.it.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Riallinea', ungroup: 'Separa gli elementi', docprops: 'Proprietà del documento', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Sposta in fondo', move_top: 'Sposta in cima', node_clone: 'Clona nodo', diff --git a/editor/locale/lang.ja.js b/editor/locale/lang.ja.js index cd139bee..da9bbb56 100644 --- a/editor/locale/lang.ja.js +++ b/editor/locale/lang.ja.js @@ -126,6 +126,7 @@ export default { reorient_path: '現在の角度を0度とする', ungroup: 'グループ化を解除', docprops: '文書のプロパティ', + editor_homepage: 'SVG-Edit Home Page', move_bottom: '奥に移動', move_top: '手前に移動', node_clone: 'ノードを複製', diff --git a/editor/locale/lang.ko.js b/editor/locale/lang.ko.js index e22c15ec..8239ecd9 100644 --- a/editor/locale/lang.ko.js +++ b/editor/locale/lang.ko.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: '그룹 해제 요소', docprops: '문서 속성', + editor_homepage: 'SVG-Edit Home Page', move_bottom: '아래로 이동', move_top: '상단으로 이동', node_clone: 'Clone Node', diff --git a/editor/locale/lang.lt.js b/editor/locale/lang.lt.js index a89d2341..4ff30991 100644 --- a/editor/locale/lang.lt.js +++ b/editor/locale/lang.lt.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Išgrupuoti elementai', docprops: 'Document Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Perkelti į apačią', move_top: 'Perkelti į viršų', node_clone: 'Clone Node', diff --git a/editor/locale/lang.lv.js b/editor/locale/lang.lv.js index db0ac8aa..f1b3bc66 100644 --- a/editor/locale/lang.lv.js +++ b/editor/locale/lang.lv.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Atgrupēt Elements', docprops: 'Document Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Pārvietot uz leju', move_top: 'Pārvietot uz augšu', node_clone: 'Clone Node', diff --git a/editor/locale/lang.mk.js b/editor/locale/lang.mk.js index cb09ff71..2bc615aa 100644 --- a/editor/locale/lang.mk.js +++ b/editor/locale/lang.mk.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Елементи', docprops: 'Својства на документот', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Move to bottom', move_top: 'Поместување на почетокот', node_clone: 'Clone Node', diff --git a/editor/locale/lang.ms.js b/editor/locale/lang.ms.js index 7af353fb..ff888d19 100644 --- a/editor/locale/lang.ms.js +++ b/editor/locale/lang.ms.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Elemen', docprops: 'Document Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Pindah ke Bawah', move_top: 'Pindah ke Atas', node_clone: 'Clone Node', diff --git a/editor/locale/lang.mt.js b/editor/locale/lang.mt.js index ca186c94..887556cf 100644 --- a/editor/locale/lang.mt.js +++ b/editor/locale/lang.mt.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Elements', docprops: 'Dokument Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Move to Bottom', move_top: 'Move to Top', node_clone: 'Clone Node', diff --git a/editor/locale/lang.nl.js b/editor/locale/lang.nl.js index 40adf6af..8a47d270 100644 --- a/editor/locale/lang.nl.js +++ b/editor/locale/lang.nl.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Herorienteer pad', ungroup: 'Groepering opheffen', docprops: 'Documenteigenschappen', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Naar achtergrond', move_top: 'Naar voorgrond', node_clone: 'Kloon knooppunt', diff --git a/editor/locale/lang.no.js b/editor/locale/lang.no.js index c33c4731..9466ffdc 100644 --- a/editor/locale/lang.no.js +++ b/editor/locale/lang.no.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Dele opp Elements', docprops: 'Document Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Move to Bottom', move_top: 'Flytt til toppen', node_clone: 'Clone Node', diff --git a/editor/locale/lang.pl.js b/editor/locale/lang.pl.js index 755902a6..1a9bb30a 100644 --- a/editor/locale/lang.pl.js +++ b/editor/locale/lang.pl.js @@ -127,6 +127,7 @@ export default { reorient_path: 'Zresetuj obwiednię', ungroup: 'Rozgrupuj elementy', docprops: 'Właściwości dokumentu', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Przenieś pod spód', move_top: 'Przenieś na wierzch', node_clone: 'Klonuj węzeł', diff --git a/editor/locale/lang.pt-BR.js b/editor/locale/lang.pt-BR.js index 265f7cab..4ea3e734 100644 --- a/editor/locale/lang.pt-BR.js +++ b/editor/locale/lang.pt-BR.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorientar contorno', ungroup: 'Desagrupar Elementos', docprops: 'Propriedades', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Mover para o fundo', move_top: 'Mover para o topo', node_clone: 'Clonar Aresta', diff --git a/editor/locale/lang.pt-PT.js b/editor/locale/lang.pt-PT.js index fe358ae2..c49e7111 100644 --- a/editor/locale/lang.pt-PT.js +++ b/editor/locale/lang.pt-PT.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Elementos Desagrupar', docprops: 'Propriedades do Documento', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Move to Bottom', move_top: 'Move to Top', node_clone: 'Clone Node', diff --git a/editor/locale/lang.ro.js b/editor/locale/lang.ro.js index 1e6c3175..69cfd2c8 100644 --- a/editor/locale/lang.ro.js +++ b/editor/locale/lang.ro.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorientează Traiectoria', ungroup: 'Anulare Grupare Elemente', docprops: 'Proprietăţile Documentului', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Mutare în jos', move_top: 'Mutare în sus', node_clone: 'Clonează Punct', diff --git a/editor/locale/lang.ru.js b/editor/locale/lang.ru.js index f2d123b8..3f920578 100644 --- a/editor/locale/lang.ru.js +++ b/editor/locale/lang.ru.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Изменить ориентацию контура', ungroup: 'Разгруппировать элементы', docprops: 'Свойства документа', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Опустить', move_top: 'Поднять', node_clone: 'Создать копию узла', diff --git a/editor/locale/lang.sk.js b/editor/locale/lang.sk.js index 833244f5..89e3c181 100644 --- a/editor/locale/lang.sk.js +++ b/editor/locale/lang.sk.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Zmeniť orientáciu krivky', ungroup: 'Zrušiť skupinu', docprops: 'Vlastnosti dokumentu', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Presunúť spodok', move_top: 'Presunúť na vrch', node_clone: 'Klonovať uzol', diff --git a/editor/locale/lang.sl.js b/editor/locale/lang.sl.js index 42cf787a..ac439f07 100644 --- a/editor/locale/lang.sl.js +++ b/editor/locale/lang.sl.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient pot', ungroup: 'Razdruži elemente', docprops: 'Lastnosti dokumenta', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Premakni na dno', move_top: 'Premakni na vrh', node_clone: 'Kloniraj oglišče', diff --git a/editor/locale/lang.sq.js b/editor/locale/lang.sq.js index d224ba2e..16d14a3a 100644 --- a/editor/locale/lang.sq.js +++ b/editor/locale/lang.sq.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Elemente Ungroup', docprops: 'Dokumenti Prona', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Move to Bottom', move_top: 'Move to Top', node_clone: 'Clone Node', diff --git a/editor/locale/lang.sr.js b/editor/locale/lang.sr.js index 4c3b80e5..aa5c0295 100644 --- a/editor/locale/lang.sr.js +++ b/editor/locale/lang.sr.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Разгрупирање Елементи', docprops: 'Особине документа', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Премести на доле', move_top: 'Премести на врх', node_clone: 'Clone Node', diff --git a/editor/locale/lang.sv.js b/editor/locale/lang.sv.js index 7a618ca4..f7e3f967 100644 --- a/editor/locale/lang.sv.js +++ b/editor/locale/lang.sv.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Dela Elements', docprops: 'Dokumentegenskaper', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Move to Bottom', move_top: 'Flytta till början', node_clone: 'Clone Node', diff --git a/editor/locale/lang.sw.js b/editor/locale/lang.sw.js index 6ff7f4db..288b9eab 100644 --- a/editor/locale/lang.sw.js +++ b/editor/locale/lang.sw.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Elements', docprops: 'Document Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Kuhama Bottom', move_top: 'Move to Top', node_clone: 'Clone Node', diff --git a/editor/locale/lang.test.js b/editor/locale/lang.test.js index c30e3484..45565882 100644 --- a/editor/locale/lang.test.js +++ b/editor/locale/lang.test.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Elements', docprops: 'Document Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Move to Bottom', move_top: 'Move to Top', node_clone: 'Clone Node', diff --git a/editor/locale/lang.th.js b/editor/locale/lang.th.js index 7c3fff53..fbb455cd 100644 --- a/editor/locale/lang.th.js +++ b/editor/locale/lang.th.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'องค์ประกอบ Ungroup', docprops: 'คุณสมบัติของเอกสาร', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'ย้ายไปด้านล่าง', move_top: 'ย้ายไปด้านบน', node_clone: 'Clone Node', diff --git a/editor/locale/lang.tl.js b/editor/locale/lang.tl.js index b1af0649..aa4c26f4 100644 --- a/editor/locale/lang.tl.js +++ b/editor/locale/lang.tl.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Sangkap', docprops: 'Document Katangian', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Ilipat sa Ibaba', move_top: 'Ilipat sa Tuktok', node_clone: 'Clone Node', diff --git a/editor/locale/lang.tr.js b/editor/locale/lang.tr.js index e6dc64bd..0c734275 100644 --- a/editor/locale/lang.tr.js +++ b/editor/locale/lang.tr.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Çöz Elemanları', docprops: 'Belge Özellikleri', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Altına gider', move_top: 'Üste taşı', node_clone: 'Clone Node', diff --git a/editor/locale/lang.uk.js b/editor/locale/lang.uk.js index 05bba17f..84f1f29a 100644 --- a/editor/locale/lang.uk.js +++ b/editor/locale/lang.uk.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Елементи розгрупувати', docprops: 'Властивості документа', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Перемістити вниз', move_top: 'Перемістити догори', node_clone: 'Clone Node', diff --git a/editor/locale/lang.vi.js b/editor/locale/lang.vi.js index 17ea015a..10daf9f8 100644 --- a/editor/locale/lang.vi.js +++ b/editor/locale/lang.vi.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Elements', docprops: 'Document Properties', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'Chuyển đến đáy', move_top: 'Move to Top', node_clone: 'Clone Node', diff --git a/editor/locale/lang.yi.js b/editor/locale/lang.yi.js index 87e83305..9f6983ea 100644 --- a/editor/locale/lang.yi.js +++ b/editor/locale/lang.yi.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'ונגראָופּ עלעמענץ', docprops: 'דאָקומענט פּראָפּערטיעס', + editor_homepage: 'SVG-Edit Home Page', move_bottom: 'מאַך צו באָטטאָם', move_top: 'באַוועגן צו Top', node_clone: 'Clone Node', diff --git a/editor/locale/lang.zh-CN.js b/editor/locale/lang.zh-CN.js index bff08635..1accbaba 100644 --- a/editor/locale/lang.zh-CN.js +++ b/editor/locale/lang.zh-CN.js @@ -126,6 +126,7 @@ export default { reorient_path: '调整路径', ungroup: '取消组合元素', docprops: '文档属性', + editor_homepage: 'SVG-Edit 主页', move_bottom: '移至底部', move_top: '移至顶部', node_clone: '复制节点', @@ -165,7 +166,7 @@ export default { doc_dims: '画布大小', included_images: '包含图像', image_opt_embed: '嵌入数据 (本地文件)', - image_opt_ref: 'Use file reference', + image_opt_ref: '使用文件引用', editor_prefs: '编辑器首选项', icon_size: '图标大小', language: '语言', diff --git a/editor/locale/lang.zh-HK.js b/editor/locale/lang.zh-HK.js index 71d85844..4d95992c 100644 --- a/editor/locale/lang.zh-HK.js +++ b/editor/locale/lang.zh-HK.js @@ -126,6 +126,7 @@ export default { reorient_path: 'Reorient path', ungroup: 'Ungroup Elements', docprops: '文档属性', + editor_homepage: 'SVG-Edit 主页', move_bottom: '移至底部', move_top: '移动到顶部', node_clone: 'Clone Node', diff --git a/editor/locale/lang.zh-TW.js b/editor/locale/lang.zh-TW.js index 98d3e30a..f0aebccf 100644 --- a/editor/locale/lang.zh-TW.js +++ b/editor/locale/lang.zh-TW.js @@ -126,6 +126,7 @@ export default { reorient_path: '調整路徑', ungroup: '取消群組', docprops: '文件屬性', + editor_homepage: 'SVG-Edit 主頁', move_bottom: '移至底部', move_top: '移動到頂部', node_clone: '增加節點', diff --git a/editor/locale/locale.js b/editor/locale/locale.js index e3f29cfa..9891584e 100644 --- a/editor/locale/locale.js +++ b/editor/locale/locale.js @@ -1,7 +1,7 @@ /* eslint-disable unicorn/no-fn-reference-in-iterator */ /* globals jQuery */ /** - * Localizing script for SVG-edit UI + * Localizing script for SVG-edit UI. * @module locale * @license MIT * @@ -11,11 +11,12 @@ */ /** - * Used, for example, in the ImageLibs extension, to present libraries (with name/URL/description) in order + * Used, for example, in the ImageLibs extension, to present libraries + * (with name/URL/description) in order. * @typedef {GenericArray<module:locale.LocaleStrings>} module:locale.LocaleArray */ /** - * The string keys of the object are two-letter language codes + * The string keys of the object are two-letter language codes. * @tutorial LocaleDocs * @typedef {PlainObject<string, string|module:locale.LocaleStrings|module:locale.LocaleArray>} module:locale.LocaleStrings */ @@ -56,6 +57,7 @@ export const setStrings = function (type, obj, ids) { Object.entries(obj).forEach(([sel, val]) => { if (!val) { console.log(sel); // eslint-disable-line no-console + return; // keep old text when has no translation } if (ids) { sel = '#' + sel; } @@ -91,7 +93,7 @@ export const setStrings = function (type, obj, ids) { /** * The "data" property is generally set to an an array of objects with -* "id" and "title" or "textContent" properties +* "id" and "title" or "textContent" properties. * @typedef {PlainObject} module:locale.AddLangExtensionLocaleData * @property {module:locale.LocaleStrings[]} data See {@tutorial LocaleDocs} */ @@ -205,6 +207,8 @@ export const readLang = async function (langData) { tool_import: tools.import_doc, tool_open: tools.open_doc, tool_save: tools.save_doc, + tool_editor_prefs: config.editor_prefs, + tool_editor_homepage: tools.editor_homepage, svginfo_units_rulers: config.units_and_rulers, svginfo_rulers_onoff: config.show_rulers, @@ -371,28 +375,17 @@ export const readLang = async function (langData) { export const putLocale = async function (givenParam, goodLangs, conf) { if (givenParam) { langParam = givenParam; - } else { - langParam = $.pref('lang'); - if (!langParam) { - if (navigator.userLanguage) { // Explorer - langParam = navigator.userLanguage; - } else if (navigator.language) { // FF, Opera, ... - langParam = navigator.language; - } - } + } else if (navigator.userLanguage) { // Explorer + langParam = navigator.userLanguage; + } else if (navigator.language) { // FF, Opera, ... + langParam = navigator.language; + } - console.log('Lang: ' + langParam); // eslint-disable-line no-console + console.log('Lang: ' + langParam); // eslint-disable-line no-console - // Set to English if language is not in list of good langs - if (!goodLangs.includes(langParam) && langParam !== 'test') { - langParam = 'en'; - } - - // don't bother on first run if language is English - // The following line prevents setLang from running - // extensions which depend on updated uiStrings, - // so commenting it out. - // if (langParam.startsWith('en')) {return;} + // Set to English if language is not in list of good langs + if (!goodLangs.includes(langParam) && langParam !== 'test') { + langParam = 'en'; } const url = conf.langPath + 'lang.' + langParam + '.js'; diff --git a/editor/math.js b/editor/math.js index 44c16029..53efabb2 100644 --- a/editor/math.js +++ b/editor/math.js @@ -1,5 +1,5 @@ /** - * Mathematical utilities + * Mathematical utilities. * @module math * @license MIT * @@ -158,8 +158,8 @@ export const transformListToTransform = function (tlist, min, max) { } min = min || 0; max = max || (tlist.numberOfItems - 1); - min = parseInt(min); - max = parseInt(max); + min = Number.parseInt(min); + max = Number.parseInt(max); if (min > max) { const temp = max; max = min; min = temp; } let m = svg.createSVGMatrix(); for (let i = min; i <= max; ++i) { diff --git a/editor/namespaces.js b/editor/namespaces.js index fe464485..2658760f 100644 --- a/editor/namespaces.js +++ b/editor/namespaces.js @@ -1,11 +1,11 @@ /** - * Namespaces or tools therefor + * Namespaces or tools therefor. * @module namespaces * @license MIT */ /** -* Common namepaces constants in alpha order +* Common namepaces constants in alpha order. * @enum {string} * @type {PlainObject} * @memberof module:namespaces diff --git a/editor/path.js b/editor/path.js index 5a54cf81..b28c4258 100644 --- a/editor/path.js +++ b/editor/path.js @@ -1,6 +1,6 @@ /* globals jQuery */ /** - * Path functionality + * Path functionality. * @module path * @license MIT * @@ -86,7 +86,7 @@ let editorContext_ = null; */ /** -* Object with the following keys/values +* Object with the following keys/values. * @typedef {PlainObject} module:path.SVGElementJSON * @property {string} element - Tag name of the SVG element to create * @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement. @@ -111,7 +111,7 @@ let editorContext_ = null; * @returns {void} */ /** - * Note: This doesn't round to an integer necessarily + * Note: This doesn't round to an integer necessarily. * @function module:path.EditorContext#round * @param {Float} val * @returns {Float} Rounded value to nearest value based on `currentZoom` @@ -193,17 +193,17 @@ let editorContext_ = null; * @returns {Float} The current zoom level */ /** - * Returns the last created DOM element ID string + * Returns the last created DOM element ID string. * @function module:path.EditorContext#getId * @returns {string} */ /** - * Creates and returns a unique ID string for a DOM element + * Creates and returns a unique ID string for a DOM element. * @function module:path.EditorContext#getNextId * @returns {string} */ /** - * Gets the desired element from a mouse event + * Gets the desired element from a mouse event. * @function module:path.EditorContext#getMouseTarget * @param {external:MouseEvent} evt - Event object from the mouse event * @returns {Element} DOM element we want @@ -1503,7 +1503,7 @@ export const reorientGrads = function (elem, m) { }; /** -* This is how we map paths to our preferred relative segment types +* This is how we map paths to our preferred relative segment types. * @name module:path.pathMap * @type {GenericArray} */ @@ -1538,7 +1538,7 @@ export const convertPath = function (pth, toRel) { y2 = seg.y2 || 0; const type = seg.pathSegType; - let letter = pathMap[type]['to' + (toRel ? 'Lower' : 'Upper') + 'Case'](); + let letter = pathMap[type][toRel ? 'toLowerCase' : 'toUpperCase'](); switch (type) { case 1: // z,Z closepath (Z/z) @@ -1553,30 +1553,34 @@ export const convertPath = function (pth, toRel) { // Fallthrough case 13: // relative horizontal line (h) if (toRel) { + y = 0; curx += x; letter = 'l'; } else { + y = cury; x += curx; curx = x; letter = 'L'; } // Convert to "line" for easier editing - d += pathDSegment(letter, [[x, cury]]); + d += pathDSegment(letter, [[x, y]]); break; case 14: // absolute vertical line (V) y -= cury; // Fallthrough case 15: // relative vertical line (v) if (toRel) { + x = 0; cury += y; letter = 'l'; } else { + x = curx; y += cury; cury = y; letter = 'L'; } // Convert to "line" for easier editing - d += pathDSegment(letter, [[curx, y]]); + d += pathDSegment(letter, [[x, y]]); break; case 2: // absolute move (M) case 4: // absolute line (L) @@ -1697,13 +1701,15 @@ function pathDSegment (letter, points, morePoints, lastPoint) { return segment; } +/* eslint-disable jsdoc/require-property */ /** -* Group: Path edit functions -* Functions relating to editing path elements +* Group: Path edit functions. +* Functions relating to editing path elements. * @namespace {PlainObject} pathActions * @memberof module:path */ export const pathActions = (function () { + /* eslint-enable jsdoc/require-property */ let subpath = false; let newPoint, firstCtrl; @@ -1997,7 +2003,7 @@ export const pathActions = (function () { let curPt; if (id.substr(0, 14) === 'pathpointgrip_') { // Select this point - curPt = path.cur_pt = parseInt(id.substr(14)); + curPt = path.cur_pt = Number.parseInt(id.substr(14)); path.dragging = [startX, startY]; const seg = path.segs[curPt]; @@ -2636,13 +2642,15 @@ export const pathActions = (function () { } path.endChanges('Delete path node(s)'); }, + /* eslint-disable jsdoc/require-returns */ // Can't seem to use `@borrows` here, so using `@see` /** - * Smooth polyline into path + * Smooth polyline into path. * @function module:path.pathActions.smoothPolylineIntoPath * @see module:path~smoothPolylineIntoPath */ smoothPolylineIntoPath, + /* eslint-enable jsdoc/require-returns */ /** * @param {?Integer} v See {@link https://www.w3.org/TR/SVG/single-page.html#paths-InterfaceSVGPathSeg} * @returns {void} @@ -2700,13 +2708,15 @@ export const pathActions = (function () { } if (isWebkit()) { editorContext_.resetD(elem); } }, + /* eslint-disable jsdoc/require-returns */ // Can't seem to use `@borrows` here, so using `@see` /** - * Convert a path to one with only absolute or relative values + * Convert a path to one with only absolute or relative values. * @function module:path.pathActions.convertPath * @see module:path.convertPath */ convertPath + /* eslint-enable jsdoc/require-returns */ }); })(); // end pathActions diff --git a/editor/sanitize.js b/editor/sanitize.js index e7d9e954..c2c20dfe 100644 --- a/editor/sanitize.js +++ b/editor/sanitize.js @@ -1,5 +1,5 @@ /** - * Tools for SVG sanitization + * Tools for SVG sanitization. * @module sanitize * @license MIT * @@ -15,7 +15,7 @@ const REVERSE_NS = getReverseNS(); // Todo: Split out into core attributes, presentation attributes, etc. so consistent /** * This defines which elements and attributes that we support (or at least - * don't remove) + * don't remove). * @type {PlainObject} */ const svgWhiteList_ = { diff --git a/editor/select.js b/editor/select.js index 6abd1062..7619ad45 100644 --- a/editor/select.js +++ b/editor/select.js @@ -1,6 +1,6 @@ /* globals jQuery */ /** - * DOM element selection box tools + * DOM element selection box tools. * @module select * @license MIT * @@ -261,6 +261,9 @@ export class Selector { * Manage all selector objects (selection boxes). */ export class SelectorManager { + /** + * Sets up properties and calls `initGroup`. + */ constructor () { // this will hold the <g> element that contains all selector rects/grips this.selectorParentGroup = null; diff --git a/editor/spinbtn/jQuery.SpinButton.js b/editor/spinbtn/jQuery.SpinButton.js index 8467f9a4..6d7c9a37 100644 --- a/editor/spinbtn/jQuery.SpinButton.js +++ b/editor/spinbtn/jQuery.SpinButton.js @@ -1,53 +1,55 @@ /** - * SpinButton control + * SpinButton control. * * Adds bells and whistles to any ordinary textbox to * make it look and feel like a SpinButton Control. * - * Supplies {@link external:jQuery.fn.SpinButton} (and also {@link external:jQuery.loadingStylesheets}) + * Supplies {@link external:jQuery.fn.SpinButton} (and also {@link external:jQuery.loadingStylesheets}). * - * Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006. - * - Added min/max options - * - Added step size option - * - Added bigStep (page up/down) option + * Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006: + * - Added min/max options. + * - Added step size option. + * - Added bigStep (page up/down) option. * * Modifications made by Mark Gibson, (mgibson@designlinks.net) September 2006: - * - Converted to jQuery plugin - * - Allow limited or unlimited min/max values - * - Allow custom class names, and add class to input element - * - Removed global vars - * - Reset (to original or through config) when invalid value entered - * - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat) - * - Support mouse wheel in Firefox - * - Fix double click in IE - * - Refactored some code and renamed some vars + * - Converted to jQuery plugin. + * - Allow limited or unlimited min/max values. + * - Allow custom class names, and add class to input element. + * - Removed global vars. + * - Reset (to original or through config) when invalid value entered. + * - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat). + * - Support mouse wheel in Firefox. + * - Fix double click in IE. + * - Refactored some code and renamed some vars. * * Modifications by Jeff Schiller, June 2009: * - provide callback function for when the value changes based on the following - * {@link https://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html} + * {@link https://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html}. * * Modifications by Jeff Schiller, July 2009: - * - improve styling for widget in Opera - * - consistent key-repeat handling cross-browser + * - improve styling for widget in Opera. + * - consistent key-repeat handling cross-browser. * * Modifications by Alexis Deveria, October 2009: - * - provide "stepfunc" callback option to allow custom function to run when changing a value + * - provide "stepfunc" callback option to allow custom function to run when changing a value. * - Made adjustValue(0) only run on certain keyup events, not all. * - * Tested in IE6, Opera9, Firefox 1.5 + * Tested in IE6, Opera9, Firefox 1.5. * - * | Version | Date | Author | Notes - * |---------|------|--------|------| - * | v1.0 | 11 Aug 2006 | George Adamson | First release - * | v1.1 | Aug 2006 | George Adamson | Minor enhancements - * | v1.2 | 27 Sep 2006 | Mark Gibson | Major enhancements - * | v1.3a | 28 Sep 2006 | George Adamson | Minor enhancements - * | v1.4 | 18 Jun 2009 | Jeff Schiller | Added callback function - * | v1.5 | 06 Jul 2009 | Jeff Schiller | Fixes for Opera. - * | v1.6 | 13 Oct 2009 | Alexis Deveria | Added stepfunc function - * | v1.7 | 21 Oct 2009 | Alexis Deveria | Minor fixes.<br />Fast-repeat for keys and live updating as you type. - * | v1.8 | 12 Jan 2010 | Benjamin Thomas | Fixes for mouseout behavior.<br />Added smallStep + * | Version | Date | Author | Notes | + * |---------|------|--------|-------| + * | v1.0 | 11 Aug 2006 | George Adamson | First release | + * | v1.1 | Aug 2006 | George Adamson | Minor enhancements | + * | v1.2 | 27 Sep 2006 | Mark Gibson | Major enhancements | + * | v1.3a | 28 Sep 2006 | George Adamson | Minor enhancements | + * | v1.4 | 18 Jun 2009 | Jeff Schiller | Added callback function | + * | v1.5 | 06 Jul 2009 | Jeff Schiller | Fixes for Opera. | + * | v1.6 | 13 Oct 2009 | Alexis Deveria | Added stepfunc function | + * | v1.7 | 21 Oct 2009 | Alexis Deveria | Minor fixes.<br />Fast-repeat for keys and live updating as you type. | + * | v1.8 | 12 Jan 2010 | Benjamin Thomas | Fixes for mouseout behavior.<br />Added smallStep | * | v1.9 | 20 May 2018 | Brett Zamir | Avoid SVGEdit dependency via `stateObj` config;<br />convert to ES6 module | + * . + * * @module jQuerySpinButton * @example // Create group of settings to initialise spinbutton(s). (Optional) @@ -144,8 +146,8 @@ export default function jQueryPluginSpinButton ($) { this.spinCfg = { // min: cfg.min ? Number(cfg.min) : null, // max: cfg.max ? Number(cfg.max) : null, - min: !isNaN(parseFloat(cfg.min)) ? Number(cfg.min) : null, // Fixes bug with min:0 - max: !isNaN(parseFloat(cfg.max)) ? Number(cfg.max) : null, + min: !isNaN(Number.parseFloat(cfg.min)) ? Number(cfg.min) : null, // Fixes bug with min:0 + max: !isNaN(Number.parseFloat(cfg.max)) ? Number(cfg.max) : null, step: cfg.step ? Number(cfg.step) : 1, stepfunc: cfg.stepfunc || false, page: cfg.page ? Number(cfg.page) : 10, diff --git a/editor/svg-editor-es.html b/editor/svg-editor-es.html index ee91b693..296b639d 100644 --- a/editor/svg-editor-es.html +++ b/editor/svg-editor-es.html @@ -6,6 +6,10 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="apple-mobile-web-app-capable" content="yes" /> + + <!-- No-op until loaded dynamically (could make configurable) --> + <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon" /> + <!-- STYLESHEETS (others loaded dynamically) --> <style id="styleoverrides" media="screen"></style> @@ -108,15 +112,11 @@ New Image (N) </li> <li id="tool_open" style="display:none;"> - <div id="fileinputs"> - <div></div> - </div> + <div></div> Open SVG </li> <li id="tool_import" style="display:none;"> - <div id="fileinputs_import"> - <div></div> - </div> + <div></div> Import Image </li> <li id="tool_save"> @@ -131,15 +131,15 @@ <div></div> Document Properties (D) </li> + <li id="tool_editor_prefs"> + <div></div> + Editor Preferences + </li> + <li id="tool_editor_homepage"> + <div></div> + SVG-Edit Home Page + </li> </ul> - <p> - <a href="https://github.com/SVG-Edit/svgedit" target="_blank"> - SVG-edit Home Page - </a> - </p> - <button id="tool_prefs_option"> - Editor Options - </button> </div> </div> <div id="tools_top" class="tools_panel"> @@ -366,6 +366,9 @@ <li style="font-family:cursive">Cursive</li> <li style="font-family:fantasy">Fantasy</li> <li style="font-family:monospace">Monospace</li> + <li style="font-family:courier">Courier</li> + <li style="font-family:helvetica">Helvetica</li> + <li style="font-family:times">Times</li> </ul> </div> </div> diff --git a/editor/svg-editor.css b/editor/svg-editor.css index 7f866b8b..8df0b267 100644 --- a/editor/svg-editor.css +++ b/editor/svg-editor.css @@ -431,7 +431,7 @@ div.palette_item:first-child { padding-left: 7px; margin: -5px; overflow: auto; - cursor: default; + cursor: pointer; } #main_menu li:hover { @@ -1246,10 +1246,6 @@ ul li.current { margin-left: 0; } -#tool_prefs_option { - float: right; -} - .toolbar_button button { border:1px solid #dedede; line-height:130%; @@ -1264,6 +1260,7 @@ ul li.current { border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; + cursor: pointer; } .toolbar_button button:hover { diff --git a/editor/svg-editor.html b/editor/svg-editor.html index ae9b046f..5c208ea8 100644 --- a/editor/svg-editor.html +++ b/editor/svg-editor.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<!-- AUTO-GENERATED FROM svg-editor-es.html; DO NOT EDIT; use build-html.js to build --> +<!-- AUTO-GENERATED FROM svg-editor-es.html; DO NOT EDIT; use build/build-html.js to build --> <html> <head> <meta charset="utf-8" /> @@ -7,6 +7,10 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="apple-mobile-web-app-capable" content="yes" /> + + <!-- No-op until loaded dynamically (could make configurable) --> + <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon" /> + <!-- STYLESHEETS (others loaded dynamically) --> <style id="styleoverrides" media="screen"></style> @@ -109,15 +113,11 @@ New Image (N) </li> <li id="tool_open" style="display:none;"> - <div id="fileinputs"> - <div></div> - </div> + <div></div> Open SVG </li> <li id="tool_import" style="display:none;"> - <div id="fileinputs_import"> - <div></div> - </div> + <div></div> Import Image </li> <li id="tool_save"> @@ -132,15 +132,15 @@ <div></div> Document Properties (D) </li> + <li id="tool_editor_prefs"> + <div></div> + Editor Preferences + </li> + <li id="tool_editor_homepage"> + <div></div> + SVG-Edit Home Page + </li> </ul> - <p> - <a href="https://github.com/SVG-Edit/svgedit" target="_blank"> - SVG-edit Home Page - </a> - </p> - <button id="tool_prefs_option"> - Editor Options - </button> </div> </div> <div id="tools_top" class="tools_panel"> @@ -367,6 +367,9 @@ <li style="font-family:cursive">Cursive</li> <li style="font-family:fantasy">Fantasy</li> <li style="font-family:monospace">Monospace</li> + <li style="font-family:courier">Courier</li> + <li style="font-family:helvetica">Helvetica</li> + <li style="font-family:times">Times</li> </ul> </div> </div> diff --git a/editor/svg-editor.js b/editor/svg-editor.js index a6e36488..b519745c 100644 --- a/editor/svg-editor.js +++ b/editor/svg-editor.js @@ -1,4 +1,19 @@ /* globals jQuery */ +/** +* The main module for the visual SVG Editor. +* +* @license MIT +* +* @copyright 2010 Alexis Deveria +* 2010 Pavol Rusnak +* 2010 Jeff Schiller +* 2010 Narendra Sisodiya +* 2014 Brett Zamir +* @module SVGEditor +* @borrows module:locale.putLocale as putLocale +* @borrows module:locale.readLang as readLang +* @borrows module:locale.setStrings as setStrings +*/ import './touch.js'; import {NS} from './namespaces.js'; @@ -9,12 +24,12 @@ import { hasCustomHandler, getCustomHandler, injectExtendedContextMenuItemsIntoDom } from './contextmenu.js'; import {importSetGlobalDefault} from './external/dynamic-import-polyfill/importModule.js'; +import deparam from './external/deparam/deparam.esm.js'; import SvgCanvas from './svgcanvas.js'; import Layer from './layer.js'; import jQueryPluginJSHotkeys from './js-hotkeys/jquery.hotkeys.min.js'; -import jQueryPluginBBQ from './jquerybbq/jquery.bbq.min.js'; import jQueryPluginSVGIcons from './svgicons/jQuery.svgIcons.js'; import jQueryPluginJGraduate from './jgraduate/jQuery.jGraduate.js'; import jQueryPluginSpinButton from './spinbtn/jQuery.SpinButton.js'; @@ -30,25 +45,10 @@ import { } from './locale/locale.js'; import loadStylesheets from './external/load-stylesheets/index-es.js'; -/** -* The main module for the visual SVG Editor -* -* @license MIT -* -* @copyright 2010 Alexis Deveria -* 2010 Pavol Rusnak -* 2010 Jeff Schiller -* 2010 Narendra Sisodiya -* 2014 Brett Zamir -* @exports module:SVGEditor -* @borrows module:locale.putLocale as putLocale -* @borrows module:locale.readLang as readLang -* @borrows module:locale.setStrings as setStrings -*/ const editor = {}; const $ = [ - jQueryPluginJSHotkeys, jQueryPluginBBQ, jQueryPluginSVGIcons, jQueryPluginJGraduate, + jQueryPluginJSHotkeys, jQueryPluginSVGIcons, jQueryPluginJGraduate, jQueryPluginSpinButton, jQueryPluginSVG, jQueryPluginContextMenu, jQueryPluginJPicker ].reduce((jq, func) => func(jq), jQuery); @@ -57,6 +57,9 @@ if (!$.loadingStylesheets) { $.loadingStylesheets = []; } */ + +const homePage = 'https://github.com/SVG-Edit/svgedit'; + const stylesheet = 'svg-editor.css'; if (!$.loadingStylesheets.includes(stylesheet)) { $.loadingStylesheets.push(stylesheet); @@ -99,7 +102,7 @@ const callbacks = [], * @typedef {"s"|"m"|"l"|"xl"|Float} module:SVGEditor.IconSize */ /** - * Preferences + * Preferences. * @interface module:SVGEditor.Prefs * @property {string} [lang="en"] Two-letter language code. The language must exist in the Editor Preferences language list. Defaults to "en" if `locale.js` detection does not detect another language. * @property {module:SVGEditor.IconSize} [iconsize="s"|"m"] Size of the toolbar icons. Will default to 's' if the window height is smaller than the minimum height and 'm' otherwise. @@ -119,12 +122,12 @@ const callbacks = [], defaultPrefs = /** @lends module:SVGEditor~defaultPrefs */ { // EDITOR OPTIONS (DIALOG) /** - * Default to "en" if locale.js detection does not detect another language + * Default to "en" if locale.js detection does not detect another language. */ lang: '', /** - * Will default to 's' if the window height is smaller than the minimum height and - * 'm' otherwise + * Will default to 's' if the window height is smaller than the minimum + * height and 'm' otherwise. */ iconsize: '', bkgd_color: '#FFF', @@ -283,13 +286,13 @@ const callbacks = [], avoidClientSideOpen: false }, /** - * LOCALE + * LOCALE. * @name module:SVGEditor.uiStrings * @type {PlainObject} */ uiStrings = editor.uiStrings = {}; -let svgCanvas, urldata, +let svgCanvas, urldata = {}, isReady = false, customExportImage = false, customExportPDF = false, @@ -378,23 +381,27 @@ function getImportLocale ({defaultLang, defaultName}) { } /** -* EXPORTS +* EXPORTS. */ /** * Store and retrieve preferences. +* @function module:SVGEditor.pref * @param {string} key The preference name to be retrieved or set -* @param {string} [val] The value. If the value supplied is missing or falsey, no change to the preference will be made. -* @returns {string|void} If val is missing or falsey, the value of the previously stored preference will be returned. -* @todo Can we change setting on the jQuery namespace (onto editor) to avoid conflicts? +* @param {string} [val] The value. If the value supplied is missing or falsey, no change to the preference will +* be made unless `mayBeEmpty` is set. +* @param {boolean} [mayBeEmpty] If value may be falsey. +* @returns {string|void} If val is missing or falsey and `mayBeEmpty` is not set, the +* value of the previously stored preference will be returned. * @todo Review whether any remaining existing direct references to -* getting `curPrefs` can be changed to use `$.pref()` getting to ensure -* `defaultPrefs` fallback (also for sake of `allowInitialUserOverride`); specifically, `bkgd_color` could be changed so that -* the pref dialog has a button to auto-calculate background, but otherwise uses `$.pref()` to be able to get default prefs -* or overridable settings +* getting `curPrefs` can be changed to use `svgEditor.pref()` getting to ensure +* `defaultPrefs` fallback (also for sake of `allowInitialUserOverride`); +* specifically, `bkgd_color` could be changed so that the pref dialog has a +* button to auto-calculate background, but otherwise uses `svgEditor.pref()` to +* be able to get default prefs or overridable settings */ -$.pref = function (key, val) { - if (val) { +editor.pref = function (key, val, mayBeEmpty) { + if (mayBeEmpty || val) { curPrefs[key] = val; /** * @name curPrefs @@ -421,6 +428,7 @@ editor.setStrings = setStrings; * storage. This will override URL settings (for security reasons) but * not `svgedit-config-iife.js` configuration (unless initial user * overriding is explicitly permitted there via `allowInitialUserOverride`). +* @function module:SVGEditor.loadContentAndPrefs * @todo Split `allowInitialUserOverride` into `allowOverrideByURL` and * `allowOverrideByUserStorage` so `svgedit-config-iife.js` can disallow some * individual items for URL setting but allow for user storage AND/OR @@ -471,6 +479,7 @@ editor.loadContentAndPrefs = function () { /** * Allows setting of preferences or configuration (including extensions). +* @function module:SVGEditor.setConfig * @param {module:SVGEditor.Config|module:SVGEditor.Prefs} opts The preferences or configuration (including extensions). See the tutorial on {@tutorial ConfigOptions} for info on config and preferences. * @param {PlainObject} [cfgCfg] Describes configuration which applies to the * particular batch of supplied options @@ -505,11 +514,8 @@ editor.setConfig = function (opts, cfgCfg) { cfgObj[key] = val; } } - $.each(opts, function (key, val) { - if (!{}.hasOwnProperty.call(opts, key)) { - return; - } - // Only allow prefs defined in defaultPrefs + Object.entries(opts).forEach(function ([key, val]) { + // Only allow prefs defined in defaultPrefs or... if ({}.hasOwnProperty.call(defaultPrefs, key)) { if (cfgCfg.overwrite === false && ( curConfig.preventAllURLConfig || @@ -520,7 +526,7 @@ editor.setConfig = function (opts, cfgCfg) { if (cfgCfg.allowInitialUserOverride === true) { defaultPrefs[key] = val; } else { - $.pref(key, val); + editor.pref(key, val); } } else if (['extensions', 'stylesheets', 'allowedOrigins'].includes(key)) { if (cfgCfg.overwrite === false && @@ -566,7 +572,7 @@ editor.setConfig = function (opts, cfgCfg) { }; /** -* All methods are optional +* All methods are optional. * @interface module:SVGEditor.CustomHandler * @type {PlainObject} */ @@ -583,7 +589,7 @@ editor.setConfig = function (opts, cfgCfg) { * Its responsibilities are: * - accept the string contents of the current document * - invoke a file chooser dialog in 'save' mode -* - save the file to location chosen by the user +* - save the file to location chosen by the user. * @function module:SVGEditor.CustomHandler#save * @param {external:Window} win * @param {module:svgcanvas.SvgCanvas#event:saved} svgStr A string of the SVG @@ -614,6 +620,7 @@ editor.setConfig = function (opts, cfgCfg) { /** * Allows one to override default SVGEdit `open`, `save`, and * `export` editor behaviors. +* @function module:SVGEditor.setCustomHandlers * @param {module:SVGEditor.CustomHandler} opts Extension mechanisms may call `setCustomHandlers` with three functions: `opts.open`, `opts.save`, and `opts.exportImage` * @returns {Promise<void>} */ @@ -640,15 +647,17 @@ editor.setCustomHandlers = function (opts) { }; /** -* @param {boolean} arg -* @returns {void} -*/ + * @function module:SVGEditor.randomizeIds + * @param {boolean} arg + * @returns {void} + */ editor.randomizeIds = function (arg) { svgCanvas.randomizeIds(arg); }; /** * Auto-run after a Promise microtask. +* @function module:SVGEditor.init * @returns {void} */ editor.init = function () { @@ -720,20 +729,33 @@ editor.init = function () { } (() => { // Load config/data from URL if given - let src, qstr; - urldata = $.deparam.querystring(true); - if (!$.isEmptyObject(urldata)) { + const {search, searchParams} = new URL(location); + + if (search) { + urldata = deparam(searchParams.toString(), true); + + ['initStroke', 'initFill'].forEach((prop) => { + if (searchParams.has(`${prop}[color]`)) { + // Restore back to original non-deparamed value to avoid color + // strings being converted to numbers + urldata[prop].color = searchParams.get(`${prop}[color]`); + } + }); + + if (searchParams.has('bkgd_color')) { + urldata.bkgd_color = '#' + searchParams.get('bkgd_color'); + } + if (urldata.dimensions) { urldata.dimensions = urldata.dimensions.split(','); } - if (urldata.bkgd_color) { - urldata.bkgd_color = '#' + urldata.bkgd_color; - } - if (urldata.extensions) { - // For security reasons, disallow cross-domain or cross-folder extensions via URL - urldata.extensions = urldata.extensions.match(/[:/\\]/) ? '' : urldata.extensions.split(','); + // For security reasons, disallow cross-domain or cross-folder + // extensions via URL + urldata.extensions = urldata.extensions.match(/[:/\\]/) + ? '' + : urldata.extensions.split(','); } // Disallowing extension paths via URL for @@ -749,23 +771,24 @@ editor.init = function () { } }); - editor.setConfig(urldata, {overwrite: false}); // Note: source and url (as with storagePrompt later) are not set on config but are used below + // Note: `source` and `url` (as with `storagePrompt` later) are not + // set on config but are used below + editor.setConfig(urldata, {overwrite: false}); setupCurConfig(); if (!curConfig.preventURLContentLoading) { - src = urldata.source; - qstr = $.param.querystring(); - if (!src) { // urldata.source may have been null if it ended with '=' - if (qstr.includes('source=data:')) { - src = qstr.match(/source=(data:[^&]*)/)[1]; - // ({src} = qstr.match(/source=(?<src>data:[^&]*)/).groups); + let {source} = urldata; + if (!source) { // urldata.source may have been null if it ended with '=' + const src = searchParams.get('source'); + if (src && src.startsWith('data:')) { + source = src; } } - if (src) { - if (src.startsWith('data:')) { - editor.loadFromDataURI(src); + if (source) { + if (source.startsWith('data:')) { + editor.loadFromDataURI(source); } else { - editor.loadFromString(src); + editor.loadFromString(source); } return; } @@ -781,11 +804,12 @@ editor.init = function () { setupCurConfig(); editor.loadContentAndPrefs(); } - setupCurPrefs(); })(); + setupCurPrefs(); /** * Called internally. + * @function module:SVGEditor.setIcon * @param {string|Element|external:jQuery} elem * @param {string|external:jQuery} iconId * @param {Float} forcedSize Not in use @@ -810,7 +834,9 @@ editor.init = function () { */ const extAndLocaleFunc = async function () { // const lang = ('lang' in curPrefs) ? curPrefs.lang : null; - const {langParam, langData} = await editor.putLocale(null, goodLangs, curConfig); + const {langParam, langData} = await editor.putLocale( + editor.pref('lang'), goodLangs, curConfig + ); await setLang(langParam, langData); const {ok, cancel} = uiStrings.common; @@ -950,7 +976,7 @@ editor.init = function () { const s = sides[i]; let cur = el.data('orig_margin-' + s); if (Utils.isNullish(cur)) { - cur = parseInt(el.css('margin-' + s)); + cur = Number.parseInt(el.css('margin-' + s)); // Cache the original margin el.data('orig_margin-' + s, cur); } @@ -969,6 +995,7 @@ editor.init = function () { /** * Called internally. + * @function module:SVGEditor.setIconSize * @param {module:SVGEditor.IconSize} size * @returns {void} */ @@ -1006,7 +1033,7 @@ editor.init = function () { hiddenPs.css('visibility', 'visible').hide(); // return; - $.pref('iconsize', size); + editor.pref('iconsize', size); $('#iconsize').val(size); // Change icon size @@ -1276,7 +1303,8 @@ editor.init = function () { node_delete: 'node_delete.png', node_clone: 'node_clone.png', - globe_link: 'globe_link.png' + globe_link: 'globe_link.png', + config: 'config.png' }, placement: { '#logo': 'logo', @@ -1284,10 +1312,12 @@ editor.init = function () { '#tool_clear div,#layer_new': 'new_image', '#tool_save div': 'save', '#tool_export div': 'export', - '#tool_open div div': 'open', - '#tool_import div div': 'import', + '#tool_open div': 'open', + '#tool_import div': 'import', '#tool_source': 'source', '#tool_docprops > div': 'docprops', + '#tool_editor_prefs > div': 'config', + '#tool_editor_homepage > div': 'globe_link', '#tool_wireframe': 'wireframe', '#tool_undo': 'undo', @@ -1388,7 +1418,7 @@ editor.init = function () { minHeight = tleft.offset().top + tleft.outerHeight(); } - const size = $.pref('iconsize'); + const size = editor.pref('iconsize'); editor.setIconSize(size || ($(window).height() < minHeight ? 's' : 'm')); // Look for any missing flyout icons from plugins @@ -1547,7 +1577,7 @@ editor.init = function () { const origTitle = $('title:first').text(); // Make [1,2,5] array const rIntervals = []; - for (let i = 0.1; i < 1E5; i *= 10) { + for (let i = 0.1; i < 1e5; i *= 10) { rIntervals.push(i); rIntervals.push(2 * i); rIntervals.push(5 * i); @@ -1715,7 +1745,7 @@ editor.init = function () { // Alert will only appear the first time saved OR the // first time the bug is encountered - let done = $.pref('save_notice_done'); + let done = editor.pref('save_notice_done'); if (done !== 'all') { let note = uiStrings.notification.saveFromBrowser.replace('%s', 'SVG'); @@ -1724,13 +1754,13 @@ editor.init = function () { if (svg.includes('<defs')) { // warning about Mozilla bug #308590 when applicable (seems to be fixed now in Feb 2013) note += '\n\n' + uiStrings.notification.defsFailOnSave; - $.pref('save_notice_done', 'all'); + editor.pref('save_notice_done', 'all'); done = 'all'; } else { - $.pref('save_notice_done', 'part'); + editor.pref('save_notice_done', 'part'); } } else { - $.pref('save_notice_done', 'all'); + editor.pref('save_notice_done', 'all'); } if (done !== 'part') { $.alert(note); @@ -1755,7 +1785,7 @@ editor.init = function () { } exportWindow.location.href = data.bloburl || data.datauri; - const done = $.pref('export_notice_done'); + const done = editor.pref('export_notice_done'); if (done !== 'all') { let note = uiStrings.notification.saveFromBrowser.replace('%s', data.type); @@ -1767,7 +1797,7 @@ editor.init = function () { // Note that this will also prevent the notice even though new issues may appear later. // May want to find a way to deal with that without annoying the user - $.pref('export_notice_done', 'all'); + editor.pref('export_notice_done', 'all'); exportWindow.alert(note); } }; @@ -1809,7 +1839,7 @@ editor.init = function () { * - Removes the `tool_button_current` class from whatever tool currently has it. * - Hides any flyouts. * - Adds the `tool_button_current` class to the button passed in. - * @function module:SVGEDitor.toolButtonClick + * @function module:SVGEditor.toolButtonClick * @param {string|Element} button The DOM element or string selector representing the toolbar button * @param {boolean} noHiding Whether not to hide any flyouts * @returns {boolean} Whether the button was disabled or not @@ -1885,9 +1915,9 @@ editor.init = function () { * @returns {void} */ function setBackground (color, url) { - // if (color == $.pref('bkgd_color') && url == $.pref('bkgd_url')) { return; } - $.pref('bkgd_color', color); - $.pref('bkgd_url', url); + // if (color == editor.pref('bkgd_color') && url == editor.pref('bkgd_url')) { return; } + editor.pref('bkgd_color', color); + editor.pref('bkgd_url', url, true); // This should be done in svgcanvas.js for the borderRect fill svgCanvas.setBackground(color, url); @@ -1964,7 +1994,7 @@ editor.init = function () { // Create multiple canvases when necessary (due to browser limits) if (rulerLen >= limit) { - ctxArrNum = parseInt(rulerLen / limit) + 1; + ctxArrNum = Number.parseInt(rulerLen / limit) + 1; ctxArr = []; ctxArr[0] = ctx; let copy; @@ -2881,7 +2911,7 @@ editor.init = function () { options = tool; } else { // If flyout is selected, allow shift key to iterate through subitems - j = parseInt(j); + j = Number.parseInt(j); // Use `allHolders` to include both extension `includeWith` and toolbarButtons options = allHolders[opts.parent][j + 1] || holders[opts.parent][0]; @@ -2923,7 +2953,6 @@ editor.init = function () { } let timer; - const pos = $(showSel).position(); // Clicking the "show" icon should set the current mode shower.mousedown(function (evt) { @@ -2931,6 +2960,7 @@ editor.init = function () { return false; } const holder = $(holdSel); + const pos = $(showSel).position(); const l = pos.left + 34; const w = holder.width() * -1; const time = holder.data('shown_popop') ? 200 : 0; @@ -3064,7 +3094,7 @@ editor.init = function () { if (ext.langReady) { if (editor.langChanged) { // We check for this since the "lang" pref could have been set by storage - const lang = $.pref('lang'); + const lang = editor.pref('lang'); await ext.langReady({ lang, uiStrings, @@ -3089,7 +3119,7 @@ editor.init = function () { if (!resizeDone) { resizeTimer = setTimeout(function () { resizeDone = true; - setIconSize($.pref('iconsize')); + setIconSize(editor.pref('iconsize')); }, 50); } } @@ -3474,7 +3504,7 @@ editor.init = function () { callback (icons) { // Non-ideal hack to make the icon match the current size // if (curPrefs.iconsize && curPrefs.iconsize !== 'm') { - if ($.pref('iconsize') !== 'm') { + if (editor.pref('iconsize') !== 'm') { prepResize(); } runCallback(); @@ -3563,11 +3593,14 @@ editor.init = function () { $('#palette').append(str); // Set up editor background functionality - // TODO add checkerboard as "pattern" - const colorBlocks = ['#FFF', '#888', '#000']; // ,'url(data:image/gif;base64,R0lGODlhEAAQAIAAAP%2F%2F%2F9bW1iH5BAAAAAAALAAAAAAQABAAAAIfjG%2Bgq4jM3IFLJgpswNly%2FXkcBpIiVaInlLJr9FZWAQA7)']; + const colorBlocks = ['#FFF', '#888', '#000', 'chessboard']; str = ''; - $.each(colorBlocks, function () { - str += '<div class="color_block" style="background-color:' + this + ';"></div>'; + $.each(colorBlocks, function (i, e) { + if (e === 'chessboard') { + str += '<div class="color_block" data-bgcolor="' + e + '" style="background-image:url(data:image/gif;base64,R0lGODlhEAAQAIAAAP///9bW1iH5BAAAAAAALAAAAAAQABAAAAIfjG+gq4jM3IFLJgpswNly/XkcBpIiVaInlLJr9FZWAQA7);"></div>'; + } else { + str += '<div class="color_block" data-bgcolor="' + e + '" style="background-color:' + e + ';"></div>'; + } }); $('#bg_blocks').append(str); const blocks = $('#bg_blocks div'); @@ -3580,9 +3613,9 @@ editor.init = function () { }); }); - setBackground($.pref('bkgd_color'), $.pref('bkgd_url')); + setBackground(editor.pref('bkgd_color'), editor.pref('bkgd_url')); - $('#image_save_opts input').val([$.pref('img_save')]); + $('#image_save_opts input').val([editor.pref('img_save')]); /** * @type {module:jQuerySpinButton.ValueCallback} @@ -3614,7 +3647,7 @@ editor.init = function () { */ const changeRotationAngle = function (ctl) { svgCanvas.setRotationAngle(ctl.value); - $('#tool_reorient').toggleClass('disabled', parseInt(ctl.value) === 0); + $('#tool_reorient').toggleClass('disabled', Number.parseInt(ctl.value) === 0); }; /** @@ -3843,9 +3876,10 @@ editor.init = function () { }); /** - * @param {boolean} active - * @returns {void} - */ + * @function module:SVGEditor.setPanning + * @param {boolean} active + * @returns {void} + */ editor.setPanning = function (active) { svgCanvas.spaceKey = keypan = active; }; @@ -3933,13 +3967,14 @@ editor.init = function () { // Made public for UI customization. // TODO: Group UI functions into a public editor.ui interface. /** - * See {@link http://api.jquery.com/bind/#bind-eventType-eventData-handler} + * See {@link http://api.jquery.com/bind/#bind-eventType-eventData-handler}. * @callback module:SVGEditor.DropDownCallback * @param {external:jQuery.Event} ev See {@link http://api.jquery.com/Types/#Event} * @listens external:jQuery.Event * @returns {void|boolean} Calls `preventDefault()` and `stopPropagation()` */ /** + * @function module:SVGEditor.addDropDown * @param {Element|string} elem DOM Element or selector * @param {module:SVGEditor.DropDownCallback} callback Mouseup callback * @param {boolean} dropUp @@ -3994,7 +4029,7 @@ editor.init = function () { editor.addDropDown('#opacity_dropdown', function () { if ($(this).find('div').length) { return; } - const perc = parseInt($(this).text().split('%')[0]); + const perc = Number.parseInt($(this).text().split('%')[0]); changeOpacity(false, perc); }, true); @@ -4038,7 +4073,7 @@ editor.init = function () { if (val) { zoomChanged(window, val); } else { - changeZoom({value: parseFloat(item.text())}); + changeZoom({value: Number.parseFloat(item.text())}); } }, true); @@ -4437,7 +4472,7 @@ editor.init = function () { const rotateSelected = function (cw, step) { if (Utils.isNullish(selectedElement) || multiselected) { return; } if (!cw) { step *= -1; } - const angle = parseFloat($('#angle').val()) + step; + const angle = Number.parseFloat($('#angle').val()) + step; svgCanvas.setRotationAngle(angle); updateContextPanel(); }; @@ -4490,7 +4525,7 @@ editor.init = function () { const clickSave = function () { // In the future, more options can be provided here const saveOpts = { - images: $.pref('img_save'), + images: editor.pref('img_save'), round_digits: 6 }; svgCanvas.save(saveOpts); @@ -4567,7 +4602,7 @@ editor.init = function () { if (!customExportImage) { openExportWindow(); } - const quality = parseInt($('#image-slider').val()) / 100; + const quality = Number.parseInt($('#image-slider').val()) / 100; /* const results = */ await svgCanvas.rasterExport(imgType, quality, exportWindowName); } }; @@ -4679,7 +4714,7 @@ editor.init = function () { docprops = true; // This selects the correct radio button by using the array notation - $('#image_save_opts input').val([$.pref('img_save')]); + $('#image_save_opts input').val([editor.pref('img_save')]); // update resolution option with actual resolution const res = svgCanvas.getResolution(); @@ -4706,12 +4741,11 @@ editor.init = function () { // Update background color with current one const canvasBg = curPrefs.bkgd_color; - const url = $.pref('bkgd_url'); + const url = editor.pref('bkgd_url'); blocks.each(function () { const blk = $(this); - const isBg = blk.css('background-color') === canvasBg; + const isBg = blk.data('bgcolor') === canvasBg; blk.toggleClass(curBg, isBg); - if (isBg) { $('#canvas_bg_url').removeClass(curBg); } }); if (!canvasBg) { blocks.eq(0).addClass(curBg); } if (url) { @@ -4724,6 +4758,14 @@ editor.init = function () { $('#svg_prefs').show(); }; + /** + * + * @returns {void} + */ + const openHomePage = function () { + window.open(homePage, '_blank'); + }; + /** * * @returns {void} @@ -4770,7 +4812,7 @@ editor.init = function () { $('#svg_docprops').hide(); $('#canvas_width,#canvas_height').removeAttr('disabled'); $('#resolution')[0].selectedIndex = 0; - $('#image_save_opts input').val([$.pref('img_save')]); + $('#image_save_opts input').val([editor.pref('img_save')]); docprops = false; }; @@ -4819,7 +4861,7 @@ editor.init = function () { } // Set image save option - $.pref('img_save', $('#image_save_opts :checked').val()); + editor.pref('img_save', $('#image_save_opts :checked').val()); updateCanvas(); hideDocProperties(); return true; @@ -4832,12 +4874,12 @@ editor.init = function () { */ const savePreferences = editor.savePreferences = async function () { // Set background - const color = $('#bg_blocks div.cur_background').css('background-color') || '#FFF'; + const color = $('#bg_blocks div.cur_background').data('bgcolor') || '#FFF'; setBackground(color, $('#canvas_bg_url').val()); // set language const lang = $('#lang_select').val(); - if (lang !== $.pref('lang')) { + if (lang && lang !== editor.pref('lang')) { const {langParam, langData} = await editor.putLocale(lang, goodLangs, curConfig); await setLang(langParam, langData); } @@ -4845,17 +4887,14 @@ editor.init = function () { // set icon size setIconSize($('#iconsize').val()); - /* eslint-disable require-atomic-updates */ // set grid setting curConfig.gridSnapping = $('#grid_snapping_on')[0].checked; curConfig.snappingStep = $('#grid_snapping_step').val(); curConfig.gridColor = $('#grid_color').val(); curConfig.showRulers = $('#show_rulers')[0].checked; - /* eslint-enable require-atomic-updates */ $('#rulers').toggle(curConfig.showRulers); if (curConfig.showRulers) { updateRulers(); } - // eslint-disable-next-line require-atomic-updates curConfig.baseUnit = $('#base_unit').val(); svgCanvas.setConfig(curConfig); @@ -5049,7 +5088,14 @@ editor.init = function () { ); }; + /** + * Paint box class. + */ class PaintBox { + /** + * @param {string|Element|external:jQuery} container + * @param {"fill"} type + */ constructor (container, type) { const cur = curConfig[type === 'fill' ? 'initFill' : 'initStroke']; // set up gradients to be used for the buttons @@ -5072,6 +5118,12 @@ editor.init = function () { this.paint = new $.jGraduate.Paint({solidColor: cur.color}); this.type = type; } + + /** + * @param {module:jGraduate~Paint} paint + * @param {boolean} apply + * @returns {void} + */ setPaint (paint, apply) { this.paint = paint; @@ -5102,6 +5154,10 @@ editor.init = function () { } } + /** + * @param {boolean} apply + * @returns {void} + */ update (apply) { if (!selectedElement) { return; } @@ -5138,8 +5194,8 @@ editor.init = function () { this._paintOpacity = 1; break; } default: { - this._paintOpacity = parseFloat(selectedElement.getAttribute(type + '-opacity')); - if (isNaN(this._paintOpacity)) { + this._paintOpacity = Number.parseFloat(selectedElement.getAttribute(type + '-opacity')); + if (Number.isNaN(this._paintOpacity)) { this._paintOpacity = 1.0; } @@ -5160,6 +5216,9 @@ editor.init = function () { this.setPaint(paint); } + /** + * @returns {void} + */ prep () { const ptype = this.paint.type; @@ -5213,7 +5272,7 @@ editor.init = function () { // Disable option $('#image_save_opts [value=embed]').attr('disabled', 'disabled'); $('#image_save_opts input').val(['ref']); - $.pref('img_save', 'ref'); + editor.pref('img_save', 'ref'); $('#image_opt_embed').css('color', '#666').attr( 'title', uiStrings.notification.featNotSupported @@ -5383,8 +5442,8 @@ editor.init = function () { const rulerX = $('#ruler_x'); $('#sidepanels').width('+=' + delta); $('#layerpanel').width('+=' + delta); - rulerX.css('right', parseInt(rulerX.css('right')) + delta); - workarea.css('right', parseInt(workarea.css('right')) + delta); + rulerX.css('right', Number.parseInt(rulerX.css('right')) + delta); + workarea.css('right', Number.parseInt(workarea.css('right')) + delta); svgCanvas.runExtensions('workareaResized'); }; @@ -5541,11 +5600,13 @@ editor.init = function () { '#tool_source_cancel', '#tool_docprops_cancel', '#tool_prefs_cancel', '.overlay' ]; + /* eslint-disable jsdoc/require-property */ /** - * Associate all button actions as well as non-button keyboard shortcuts + * Associate all button actions as well as non-button keyboard shortcuts. * @namespace {PlainObject} module:SVGEditor~Actions */ const Actions = (function () { + /* eslint-enable jsdoc/require-property */ /** * @typedef {PlainObject} module:SVGEditor.ToolButton * @property {string} sel The CSS selector for the tool @@ -5611,9 +5672,12 @@ editor.init = function () { key: ['esc', false, false], hidekey: true}, {sel: '#tool_source_save', fn: saveSourceEditor, evt: 'click'}, {sel: '#tool_docprops_save', fn: saveDocProperties, evt: 'click'}, - {sel: '#tool_docprops', fn: showDocProperties, evt: 'mouseup'}, + {sel: '#tool_docprops', fn: showDocProperties, evt: 'click'}, {sel: '#tool_prefs_save', fn: savePreferences, evt: 'click'}, - {sel: '#tool_prefs_option', fn () { showPreferences(); return false; }, evt: 'mouseup'}, + {sel: '#tool_editor_prefs', fn: showPreferences, evt: 'click'}, + {sel: '#tool_editor_homepage', fn: openHomePage, evt: 'click'}, + {sel: '#tool_open', fn () { window.dispatchEvent(new CustomEvent('openImage')); }, evt: 'click'}, + {sel: '#tool_import', fn () { window.dispatchEvent(new CustomEvent('importImage')); }, evt: 'click'}, {sel: '#tool_delete,#tool_delete_multi', fn: deleteSelected, evt: 'click', key: ['del/backspace', true]}, {sel: '#tool_reorient', fn: reorientPath, evt: 'click'}, @@ -5848,8 +5912,10 @@ editor.init = function () { let tool; const itool = curConfig.initTool, container = $('#tools_left, #svg_editor .tools_flyout'), + /* eslint-disable unicorn/no-fn-reference-in-iterator */ preTool = container.find('#tool_' + itool), regTool = container.find('#' + itool); + /* eslint-enable unicorn/no-fn-reference-in-iterator */ if (preTool.length) { tool = preTool; } else if (regTool.length) { @@ -6062,9 +6128,10 @@ editor.init = function () { }; /** - * @returns {Promise<boolean>} Resolves to boolean indicating `true` if there were no changes - * and `false` after the user confirms. - */ + * @function module:SVGEditor.openPrep + * @returns {boolean|Promise<boolean>} Resolves to boolean indicating `true` if there were no changes + * and `false` after the user confirms. + */ editor.openPrep = function () { $('#main_menu').hide(); if (undoMgr.getUndoStackSize() === 0) { @@ -6212,10 +6279,12 @@ editor.init = function () { reader.readAsText(this.files[0]); } }); - $('#tool_open').show().prepend(open); + $('#tool_open').show(); + $(window).on('openImage', () => open.click()); const imgImport = $('<input type="file">').change(importImage); - $('#tool_import').show().prepend(imgImport); + $('#tool_import').show(); + $(window).on('importImage', () => imgImport.click()); } updateCanvas(true); @@ -6234,7 +6303,7 @@ editor.init = function () { */ const setLang = editor.setLang = async function (lang, allStrings) { editor.langChanged = true; - $.pref('lang', lang); + editor.pref('lang', lang); $('#lang_select').val(lang); if (!allStrings) { return; @@ -6270,7 +6339,6 @@ editor.init = function () { importLocale: getImportLocale({defaultLang: lang, defaultName: ext.name}) }); })); - // eslint-disable-next-line require-atomic-updates extsPreLang.length = 0; } else { loadedExtensionNames.forEach((loadedExtensionName) => { @@ -6360,13 +6428,14 @@ editor.init = function () { * Queues a callback to be invoked when the editor is ready (or * to be invoked immediately if it is already ready--i.e., * if `runCallbacks` has been run). +* @function module:SVGEditor.ready * @param {module:SVGEditor.ReadyCallback} cb Callback to be queued to invoke * @returns {Promise<ArbitraryCallbackResult>} Resolves when all callbacks, including the supplied have resolved */ editor.ready = function (cb) { // eslint-disable-line promise/prefer-await-to-callbacks return new Promise((resolve, reject) => { // eslint-disable-line promise/avoid-new if (isReady) { - resolve(cb()); // eslint-disable-line callback-return, promise/prefer-await-to-callbacks + resolve(cb()); // eslint-disable-line node/callback-return, promise/prefer-await-to-callbacks return; } callbacks.push([cb, resolve, reject]); @@ -6375,6 +6444,7 @@ editor.ready = function (cb) { // eslint-disable-line promise/prefer-await-to-ca /** * Invokes the callbacks previous set by `svgEditor.ready` +* @function module:SVGEditor.runCallbacks * @returns {Promise<void>} Resolves to `undefined` if all callbacks succeeded and rejects otherwise */ editor.runCallbacks = async function () { @@ -6395,11 +6465,12 @@ editor.runCallbacks = async function () { }; /** -* @param {string} str The SVG string to load -* @param {PlainObject} [opts={}] -* @param {boolean} [opts.noAlert=false] Option to avoid alert to user and instead get rejected promise -* @returns {Promise<void>} -*/ + * @function module:SVGEditor.loadFromString + * @param {string} str The SVG string to load + * @param {PlainObject} [opts={}] + * @param {boolean} [opts.noAlert=false] Option to avoid alert to user and instead get rejected promise + * @returns {Promise<void>} + */ editor.loadFromString = function (str, {noAlert} = {}) { return editor.ready(async function () { try { @@ -6414,6 +6485,7 @@ editor.loadFromString = function (str, {noAlert} = {}) { /** * Not presently in use. +* @function module:SVGEditor.disableUI * @param {PlainObject} featList * @returns {void} */ @@ -6430,14 +6502,15 @@ editor.disableUI = function (featList) { * @returns {void} */ /** -* @param {string} url URL from which to load an SVG string via Ajax -* @param {PlainObject} [opts={}] May contain properties: `cache`, `callback` -* @param {boolean} [opts.cache] -* @param {boolean} [opts.noAlert] -* @returns {Promise<void>} Resolves to `undefined` or rejects upon bad loading of -* the SVG (or upon failure to parse the loaded string) when `noAlert` is -* enabled -*/ + * @function module:SVGEditor.loadFromURL + * @param {string} url URL from which to load an SVG string via Ajax + * @param {PlainObject} [opts={}] May contain properties: `cache`, `callback` + * @param {boolean} [opts.cache] + * @param {boolean} [opts.noAlert] + * @returns {Promise<void>} Resolves to `undefined` or rejects upon bad loading of + * the SVG (or upon failure to parse the loaded string) when `noAlert` is + * enabled + */ editor.loadFromURL = function (url, {cache, noAlert} = {}) { return editor.ready(function () { return new Promise((resolve, reject) => { // eslint-disable-line promise/avoid-new @@ -6472,6 +6545,7 @@ editor.loadFromURL = function (url, {cache, noAlert} = {}) { }; /** +* @function module:SVGEditor.loadFromDataURI * @param {string} str The Data URI to base64-decode (if relevant) and load * @param {PlainObject} [opts={}] * @param {boolean} [opts.noAlert] @@ -6495,6 +6569,7 @@ editor.loadFromDataURI = function (str, {noAlert} = {}) { }; /** + * @function module:SVGEditor.addExtension * @param {string} name Used internally; no need for i18n. * @param {module:svgcanvas.ExtensionInitCallback} init Config to be invoked on this module * @param {module:svgcanvas.ExtensionInitArgs} initArgs diff --git a/editor/svgcanvas.js b/editor/svgcanvas.js index 27df323c..d190a168 100644 --- a/editor/svgcanvas.js +++ b/editor/svgcanvas.js @@ -1,7 +1,7 @@ /* eslint-disable indent, unicorn/no-fn-reference-in-iterator */ /* globals jQuery, jsPDF */ /** - * Numerous tools for working with the editor's "canvas" + * Numerous tools for working with the editor's "canvas". * @module svgcanvas * * @license MIT @@ -20,14 +20,14 @@ import './svgpathseg.js'; import jQueryPluginSVG from './jQuery.attr.js'; // Needed for SVG attribute setting and array form with `attr` import jQueryPluginDBox from './dbox.js'; -import * as draw from './draw.js'; // eslint-disable-line import/no-duplicates +import * as draw from './draw.js'; // eslint-disable-next-line no-duplicate-imports import { identifyLayers, createLayer, cloneLayer, deleteCurrentLayer, setCurrentLayer, renameCurrentLayer, setCurrentLayerPosition, setLayerVisibility, moveSelectedToLayer, mergeLayer, mergeAllLayers, leaveContext, setContext -} from './draw.js'; // eslint-disable-line import/no-duplicates +} from './draw.js'; import * as pathModule from './path.js'; import {sanitizeSvg} from './sanitize.js'; import {getReverseNS, NS} from './namespaces.js'; @@ -38,7 +38,7 @@ import { preventClickDefault, snapToGrid, walkTree, walkTreePost, getBBoxOfElementAsPath, convertToPath, toXml, encode64, decode64, dataURLToObjectURL, createObjectURL, - getVisibleElements, dropXMLInteralSubset, + getVisibleElements, dropXMLInternalSubset, init as utilsInit, getBBox as utilsGetBBox, getStrokedBBoxDefaultVisible, isNullish } from './utilities.js'; @@ -173,7 +173,7 @@ const svgroot = svgdoc.importNode( container.append(svgroot); /** - * The actual element that represents the final output SVG element + * The actual element that represents the final output SVG element. * @name module:svgcanvas~svgcontent * @type {SVGSVGElement} */ @@ -220,7 +220,7 @@ canvas.setIdPrefix = function (p) { }; /** -* Current draw.Drawing object +* Current `draw.Drawing` object. * @type {module:draw.Drawing} * @name module:svgcanvas.SvgCanvas#current_drawing_ */ @@ -236,7 +236,7 @@ const getCurrentDrawing = canvas.getCurrentDrawing = function () { }; /** -* Float displaying the current zoom level (1 = 100%, .5 = 50%, etc) +* Float displaying the current zoom level (1 = 100%, .5 = 50%, etc.). * @type {Float} */ let currentZoom = 1; @@ -373,8 +373,8 @@ canvas.transformListToTransform = transformListToTransform; const getBaseUnit = () => { return curConfig.baseUnit; }; /** -* initialize from units.js. -* Send in an object implementing the ElementContainer interface (see units.js) +* Initialize from units.js. +* Send in an object implementing the ElementContainer interface (see units.js). */ unitsInit( /** @@ -572,13 +572,13 @@ const getCurrentZoom = this.getZoom = function () { return currentZoom; }; * @type {module:path.EditorContext#round} */ const round = this.round = function (val) { - return parseInt(val * currentZoom) / currentZoom; + return Number.parseInt(val * currentZoom) / currentZoom; }; selectInit( curConfig, /** - * Export to select.js + * Export to select.js. * @implements {module:select.SVGFactory} */ { @@ -589,7 +589,7 @@ selectInit( } ); /** -* This object manages selectors for us +* This object manages selectors for us. * @name module:svgcanvas.SvgCanvas#selectorManager * @type {module:select.SelectorManager} */ @@ -687,6 +687,9 @@ const addToSelection = this.addToSelection = function (elemsToAdd, showGrips) { } } } + if (!selectedElements.length) { + return; + } call('selected', selectedElements); if (showGrips || selectedElements.length === 1) { @@ -1139,8 +1142,8 @@ const runExtensions = this.runExtensions = function (action, vars, returnArray, */ /** * @typedef {PlainObject} module:svgcanvas.ExtensionInitArgs -* @param {external:jQuery} initArgs.$ -* @param {module:SVGEditor~ImportLocale} initArgs.importLocale +* @property {external:jQuery} $ +* @property {module:SVGEditor~ImportLocale} importLocale */ /** * Add an extension to the editor. @@ -1186,7 +1189,6 @@ this.addExtension = async function (name, extInitFunc, {$: jq, importLocale}) { extObj.name = name; } - // eslint-disable-next-line require-atomic-updates extensions[name] = extObj; return call('extension_added', extObj); }; @@ -1229,8 +1231,8 @@ const getIntersectionList = this.getIntersectionList = function (rect) { if (!isIE()) { if (typeof svgroot.getIntersectionList === 'function') { // Offset the bbox of the rubber box by the offset of the svgcontent element. - rubberBBox.x += parseInt(svgcontent.getAttribute('x')); - rubberBBox.y += parseInt(svgcontent.getAttribute('y')); + rubberBBox.x += Number.parseInt(svgcontent.getAttribute('x')); + rubberBBox.y += Number.parseInt(svgcontent.getAttribute('y')); resultList = svgroot.getIntersectionList(rubberBBox, parent); } @@ -1308,23 +1310,23 @@ const events = {}; canvas.call = call; /** - * Array of what was changed (elements, layers) + * Array of what was changed (elements, layers). * @event module:svgcanvas.SvgCanvas#event:changed * @type {Element[]} */ /** - * Array of selected elements + * Array of selected elements. * @event module:svgcanvas.SvgCanvas#event:selected * @type {Element[]} */ /** - * Array of selected elements + * Array of selected elements. * @event module:svgcanvas.SvgCanvas#event:transition * @type {Element[]} */ /** * The Element is always `SVGGElement`? - * If not `null`, will be the set current group element + * If not `null`, will be the set current group element. * @event module:svgcanvas.SvgCanvas#event:contextset * @type {null|Element} */ @@ -1377,7 +1379,7 @@ canvas.call = call; * @type {module:svgcanvas.Message} */ /** - * SVG canvas converted to string + * SVG canvas converted to string. * @event module:svgcanvas.SvgCanvas#event:saved * @type {string} */ @@ -1415,7 +1417,7 @@ canvas.call = call; /** * The promise return, if present, resolves to `undefined` - * (`extension_added`, `exported`, `saved`) + * (`extension_added`, `exported`, `saved`). * @typedef {Promise<void>|void} module:svgcanvas.EventHandlerReturn */ @@ -1496,7 +1498,7 @@ const ffClone = function (elem) { */ this.setRotationAngle = function (val, preventUndo) { // ensure val is the proper type - val = parseFloat(val); + val = Number.parseFloat(val); const elem = selectedElements[0]; const oldTransform = elem.getAttribute('transform'); const bbox = utilsGetBBox(elem); @@ -1582,7 +1584,7 @@ const logMatrix = function (m) { let rootSctm = null; /** -* Group: Selection +* Group: Selection. */ // TODO: do we need to worry about selectedBBoxes here? @@ -1911,11 +1913,14 @@ const mouseDown = function (evt) { } } break; - } case 'fhellipse': + } + case 'fhellipse': case 'fhrect': case 'fhpath': start.x = realX; start.y = realY; + controllPoint1 = {x: 0, y: 0}; + controllPoint2 = {x: 0, y: 0}; started = true; dAttr = realX + ',' + realY + ' '; // Commented out as doing nothing now: @@ -2073,7 +2078,7 @@ const mouseDown = function (evt) { } /** - * The main (left) mouse button is held down on the canvas area + * The main (left) mouse button is held down on the canvas area. * @event module:svgcanvas.SvgCanvas#event:ext_mouseDown * @type {PlainObject} * @property {MouseEvent} event The event object @@ -2525,7 +2530,7 @@ const mouseMove = function (evt) { } /** - * The mouse has moved on the canvas area + * The mouse has moved on the canvas area. * @event module:svgcanvas.SvgCanvas#event:ext_mouseMove * @type {PlainObject} * @property {MouseEvent} event The event object @@ -2787,7 +2792,7 @@ const mouseUp = function (evt) { } /** - * The main (left) mouse button is released (anywhere) + * The main (left) mouse button is released (anywhere). * @event module:svgcanvas.SvgCanvas#event:ext_mouseUp * @type {PlainObject} * @property {MouseEvent} event The event object @@ -2844,7 +2849,7 @@ const mouseUp = function (evt) { let aniDur = 0.2; let cAni; - if (opacAni.beginElement && parseFloat(element.getAttribute('opacity')) !== curShape.opacity) { + if (opacAni.beginElement && Number.parseFloat(element.getAttribute('opacity')) !== curShape.opacity) { cAni = $(opacAni).clone().attr({ to: curShape.opacity, dur: aniDur @@ -3023,13 +3028,15 @@ $(container).bind( ); }()); +/* eslint-disable jsdoc/require-property */ /** * Group: Text edit functions -* Functions relating to editing text elements +* Functions relating to editing text elements. * @namespace {PlainObject} textActions * @memberof module:svgcanvas.SvgCanvas# */ const textActions = canvas.textActions = (function () { +/* eslint-enable jsdoc/require-property */ let curtext; let textinput; let cursor; @@ -3532,7 +3539,7 @@ return /** @lends module:svgcanvas.SvgCanvas#textActions */ { }()); /** -* Group: Serialization +* Group: Serialization. */ /** @@ -3737,6 +3744,10 @@ this.svgToString = function (elem, indent) { let attrVal = toXml(attr.value); // remove bogus attributes added by Gecko if (mozAttrs.includes(attr.localName)) { continue; } + if (attrVal === 'null') { + const styleName = attr.localName.replace(/-[a-z]/g, (s) => s[1].toUpperCase()); + if (Object.prototype.hasOwnProperty.call(elem.style, styleName)) { continue; } + } if (attrVal !== '') { if (attrVal.startsWith('pointer-events')) { continue; } if (attr.localName === 'class' && attrVal.startsWith('se_')) { continue; } @@ -3779,7 +3790,7 @@ this.svgToString = function (elem, indent) { switch (child.nodeType) { case 1: // element node out.push('\n'); - out.push(this.svgToString(childs.item(i), indent)); + out.push(this.svgToString(child, indent)); break; case 3: { // text node const str = child.nodeValue.replace(/^\s+|\s+$/g, ''); @@ -3818,7 +3829,7 @@ this.svgToString = function (elem, indent) { }; // end svgToString() /** - * Function to run when image data is found + * Function to run when image data is found. * @callback module:svgcanvas.ImageEmbeddedCallback * @param {string|false} result Data URL * @returns {void} @@ -3976,7 +3987,6 @@ this.rasterExport = async function (imgType, quality, exportWindowName, opts = { const svg = this.svgCanvasToString(); if (!canvg) { - // eslint-disable-next-line require-atomic-updates ({canvg} = await importSetGlobal(curConfig.canvgPath + 'canvg.js', { global: 'canvg' })); @@ -4066,7 +4076,8 @@ this.exportPDF = async function ( // We do not currently have these paths configurable as they are // currently global-only, so not Rolled-up 'jspdf/underscore-min.js', - 'jspdf/jspdf.min.js' + // 'jspdf/jspdf.min.js', + '../../svgedit-myfix/editor/jspdf/jspdf-1.0.150.debug.js' ]); const modularVersion = !('svgEditor' in window) || @@ -4500,7 +4511,9 @@ this.setSvgString = function (xmlString, preventUndo) { // remove old svg document const {nextSibling} = svgcontent; - const oldzoom = svgroot.removeChild(svgcontent); + + svgcontent.remove(); + const oldzoom = svgcontent; batchCmd.addSubCommand(new RemoveElementCommand(oldzoom, nextSibling, svgroot)); // set new svg document @@ -4824,7 +4837,7 @@ draw.init( ); /** -* Group: Document functions +* Group: Document functions. */ /** @@ -5195,14 +5208,14 @@ this.setBBoxZoom = function (val, editorW, editorH) { * @type {Float} */ /** -* The bottom panel was updated +* The bottom panel was updated. * @event module:svgcanvas.SvgCanvas#event:ext_toolButtonStateUpdate * @type {PlainObject} * @property {boolean} nofill Indicates fill is disabled * @property {boolean} nostroke Indicates stroke is disabled */ /** -* The element selection has changed (elements were added/removed from selection) +* The element selection has changed (elements were added/removed from selection). * @event module:svgcanvas.SvgCanvas#event:ext_selectedChanged * @type {PlainObject} * @property {Element[]} elems Array of the newly selected elements @@ -5217,13 +5230,13 @@ this.setBBoxZoom = function (val, editorW, editorH) { * @property {Element[]} elems Array of transitioning elements */ /** -* One or more elements were changed +* One or more elements were changed. * @event module:svgcanvas.SvgCanvas#event:ext_elementChanged * @type {PlainObject} * @property {Element[]} elems Array of the affected elements */ /** -* Invoked as soon as the locale is ready +* Invoked as soon as the locale is ready. * @event module:svgcanvas.SvgCanvas#event:ext_langReady * @type {PlainObject} * @property {string} lang The two-letter language code @@ -5243,12 +5256,12 @@ this.setBBoxZoom = function (val, editorW, editorH) { * @property {module:SVGEditor~ImportLocale} importLocale */ /** - * Called when new image is created + * Called when new image is created. * @event module:svgcanvas.SvgCanvas#event:ext_onNewDocument * @type {void} */ /** - * Called when sidepanel is resized or toggled + * Called when sidepanel is resized or toggled. * @event module:svgcanvas.SvgCanvas#event:ext_workareaResized * @type {void} */ @@ -5300,7 +5313,7 @@ this.setMode = function (name) { }; /** -* Group: Element Styling +* Group: Element Styling. */ /** @@ -6089,7 +6102,7 @@ this.removeHyperlink = function () { }; /** -* Group: Element manipulation +* Group: Element manipulation. */ /** @@ -6316,7 +6329,8 @@ this.deleteSelectedElements = function () { } const {nextSibling} = t; - const elem = parent.removeChild(t); + t.remove(); + const elem = t; selectedCopy.push(selected); // for the copy batchCmd.addSubCommand(new RemoveElementCommand(elem, nextSibling, parent)); } @@ -6338,17 +6352,59 @@ this.cutSelectedElements = function () { canvas.deleteSelectedElements(); }; +const CLIPBOARD_ID = 'svgedit_clipboard'; + +/** +* Flash the clipboard data momentarily on localStorage so all tabs can see. +* @returns {void} +*/ +function flashStorage () { + const data = sessionStorage.getItem(CLIPBOARD_ID); + localStorage.setItem(CLIPBOARD_ID, data); + setTimeout(function () { + localStorage.removeItem(CLIPBOARD_ID); + }, 1); +} + +/** +* Transfers sessionStorage from one tab to another. +* @param {!Event} ev Storage event. +* @returns {void} +*/ +function storageChange (ev) { + if (!ev.newValue) return; // This is a call from removeItem. + if (ev.key === CLIPBOARD_ID + '_startup') { + // Another tab asked for our sessionStorage. + localStorage.removeItem(CLIPBOARD_ID + '_startup'); + flashStorage(); + } else if (ev.key === CLIPBOARD_ID) { + // Another tab sent data. + sessionStorage.setItem(CLIPBOARD_ID, ev.newValue); + } +} + +// Listen for changes to localStorage. +window.addEventListener('storage', storageChange, false); +// Ask other tabs for sessionStorage (this is ONLY to trigger event). +localStorage.setItem(CLIPBOARD_ID + '_startup', Math.random()); + /** * Remembers the current selected elements on the clipboard. * @function module:svgcanvas.SvgCanvas#copySelectedElements * @returns {void} */ this.copySelectedElements = function () { - localStorage.setItem('svgedit_clipboard', JSON.stringify( - selectedElements.map(function (x) { return getJsonFromSvgElement(x); }) - )); + const data = + JSON.stringify(selectedElements.map((x) => getJsonFromSvgElement(x))); + // Use sessionStorage for the clipboard data. + sessionStorage.setItem(CLIPBOARD_ID, data); + flashStorage(); - $('#cmenu_canvas').enableContextMenuItems('#paste,#paste_in_place'); + const menu = $('#cmenu_canvas'); + // Context menu might not exist (it is provided by editor.js). + if (menu.enableContextMenuItems) { + menu.enableContextMenuItems('#paste,#paste_in_place'); + } }; /** @@ -6361,9 +6417,10 @@ this.copySelectedElements = function () { * @returns {void} */ this.pasteElements = function (type, x, y) { - let clipb = JSON.parse(localStorage.getItem('svgedit_clipboard')); + let clipb = JSON.parse(sessionStorage.getItem(CLIPBOARD_ID)); + if (!clipb) return; let len = clipb.length; - if (!len) { return; } + if (!len) return; const pasted = []; const batchCmd = new BatchCommand('Paste elements'); @@ -6393,7 +6450,7 @@ this.pasteElements = function (type, x, y) { // Give extensions like the connector extension a chance to reflect new IDs and remove invalid elements /** - * Triggered when `pasteElements` is called from a paste action (context menu or key) + * Triggered when `pasteElements` is called from a paste action (context menu or key). * @event module:svgcanvas.SvgCanvas#event:ext_IDsUpdated * @type {PlainObject} * @property {module:svgcanvas.SVGAsJSON[]} elems @@ -6745,7 +6802,7 @@ this.ungroupSelectedElement = function () { let i = 0; while (g.firstChild) { - let elem = g.firstChild; + const elem = g.firstChild; const oldNextSibling = elem.nextSibling; const oldParent = elem.parentNode; @@ -6757,7 +6814,12 @@ this.ungroupSelectedElement = function () { continue; } - children[i++] = elem = parent.insertBefore(elem, anchor); + if (anchor) { + anchor.before(elem); + } else { + g.after(elem); + } + children[i++] = elem; batchCmd.addSubCommand(new MoveElementCommand(elem, oldNextSibling, oldParent)); } @@ -6766,7 +6828,7 @@ this.ungroupSelectedElement = function () { // delete the group element (but make undo-able) const gNextSibling = g.nextSibling; - g = parent.removeChild(g); + g.remove(); batchCmd.addSubCommand(new RemoveElementCommand(g, gNextSibling, parent)); if (!batchCmd.isEmpty()) { addCommandToHistory(batchCmd); } @@ -7090,7 +7152,7 @@ this.alignSelectedElements = function (type, relativeTo) { }; /** -* Group: Additional editor tools +* Group: Additional editor tools. */ /** @@ -7188,7 +7250,28 @@ this.setBackground = function (color, url) { const bg = getElem('canvasBackground'); const border = $(bg).find('rect')[0]; let bgImg = getElem('background_image'); - border.setAttribute('fill', color); + let bgPattern = getElem('background_pattern'); + border.setAttribute('fill', color === 'chessboard' ? '#fff' : color); + if (color === 'chessboard') { + if (!bgPattern) { + bgPattern = svgdoc.createElementNS(NS.SVG, 'foreignObject'); + assignAttributes(bgPattern, { + id: 'background_pattern', + width: '100%', + height: '100%', + preserveAspectRatio: 'xMinYMin', + style: 'pointer-events:none' + }); + const div = document.createElement('div'); + assignAttributes(div, { + style: 'pointer-events:none;width:100%;height:100%;background-image:url(data:image/gif;base64,R0lGODlhEAAQAIAAAP///9bW1iH5BAAAAAAALAAAAAAQABAAAAIfjG+gq4jM3IFLJgpswNly/XkcBpIiVaInlLJr9FZWAQA7);' + }); + bgPattern.appendChild(div); + bg.append(bgPattern); + } + } else if (bgPattern) { + bgPattern.remove(); + } if (url) { if (!bgImg) { bgImg = svgdoc.createElementNS(NS.SVG, 'image'); @@ -7251,7 +7334,7 @@ this.clear(); * @property {module:history.HistoryCommand} BatchCommand * @property {module:history.HistoryCommand} ChangeElementCommand * @property {module:utilities.decode64} decode64 -* @property {module:utilities.dropXMLInteralSubset} dropXMLInteralSubset +* @property {module:utilities.dropXMLInternalSubset} dropXMLInternalSubset * @property {module:utilities.encode64} encode64 * @property {module:svgcanvas~ffClone} ffClone * @property {module:svgcanvas~findDuplicateGradient} findDuplicateGradient @@ -7291,7 +7374,7 @@ this.getPrivateMethods = function () { BatchCommand, ChangeElementCommand, decode64, - dropXMLInteralSubset, + dropXMLInternalSubset, encode64, ffClone, findDefs, diff --git a/editor/svgicons/jQuery.svgIcons.js b/editor/svgicons/jQuery.svgIcons.js index 55c2cbd9..c84b3f34 100644 --- a/editor/svgicons/jQuery.svgIcons.js +++ b/editor/svgicons/jQuery.svgIcons.js @@ -1,7 +1,5 @@ -// Todo: Move to own module (and have it import a modular base64 encoder) -import {encode64} from '../utilities.js'; /** - * SVG Icon Loader 2.0 + * @file SVG Icon Loader 2.0 * * jQuery Plugin for loading SVG icons from a single file * @@ -86,6 +84,9 @@ $(function () { }); */ +// Todo: Move to own module (and have it import a modular base64 encoder) +import {encode64} from '../utilities.js'; + const isOpera = Boolean(window.opera); const fixIDs = function (svgEl, svgNum, force) { @@ -149,6 +150,7 @@ const fixIDs = function (svgEl, svgNum, force) { /** * @callback module:jQuerySVGIcons.SVGIconsLoadedCallback * @param {PlainObject<string, external:jQuery>} svgIcons IDs keyed to jQuery objects of images +* @returns {void} */ /** @@ -161,12 +163,12 @@ export default function jQueryPluginSVGIcons ($) { /** * Map of raster images with each key being the SVG icon ID - * to replace, and the value the image file name + * to replace, and the value the image file name. * @typedef {PlainObject<string, string>} external:jQuery.svgIcons.Fallback */ /** * Map of raster images with each key being the SVG icon ID - * whose `alt` will be set, and the value being the `alt` text + * whose `alt` will be set, and the value being the `alt` text. * @typedef {PlainObject<string, string>} external:jQuery.svgIcons.Alts */ /** diff --git a/editor/svgpathseg.js b/editor/svgpathseg.js index 3f4547af..55f1eb28 100644 --- a/editor/svgpathseg.js +++ b/editor/svgpathseg.js @@ -16,7 +16,7 @@ * including the latest spec changes which were implemented in Firefox 43 and * Chrome 46. */ -/* eslint-disable no-shadow, class-methods-use-this */ +/* eslint-disable no-shadow, class-methods-use-this, jsdoc/require-jsdoc */ // Linting: We avoid `no-shadow` as ESLint thinks these are still available globals // Linting: We avoid `class-methods-use-this` as this is a polyfill that must // follow the conventions diff --git a/editor/svgtransformlist.js b/editor/svgtransformlist.js index 49946f5c..09d5eae6 100644 --- a/editor/svgtransformlist.js +++ b/editor/svgtransformlist.js @@ -69,27 +69,27 @@ let listMap_ = {}; * @returns {SVGTransform} */ /** -* (DOES NOT THROW DOMException, INDEX_SIZE_ERR) +* DOES NOT THROW DOMException, INDEX_SIZE_ERR. * @function module:SVGTransformList.SVGEditTransformList#getItem * @param {Integer} index unsigned long * @returns {SVGTransform} */ /** -* (DOES NOT THROW DOMException, INDEX_SIZE_ERR) +* DOES NOT THROW DOMException, INDEX_SIZE_ERR. * @function module:SVGTransformList.SVGEditTransformList#insertItemBefore * @param {SVGTransform} newItem * @param {Integer} index unsigned long * @returns {SVGTransform} */ /** -* (DOES NOT THROW DOMException, INDEX_SIZE_ERR) +* DOES NOT THROW DOMException, INDEX_SIZE_ERR. * @function module:SVGTransformList.SVGEditTransformList#replaceItem * @param {SVGTransform} newItem * @param {Integer} index unsigned long * @returns {SVGTransform} */ /** -* (DOES NOT THROW DOMException, INDEX_SIZE_ERR) +* DOES NOT THROW DOMException, INDEX_SIZE_ERR. * @function module:SVGTransformList.SVGEditTransformList#removeItem * @param {Integer} index unsigned long * @returns {SVGTransform} @@ -100,14 +100,14 @@ let listMap_ = {}; * @returns {SVGTransform} */ /** -* NOT IMPLEMENTED +* NOT IMPLEMENTED. * @ignore * @function module:SVGTransformList.SVGEditTransformList#createSVGTransformFromMatrix * @param {SVGMatrix} matrix * @returns {SVGTransform} */ /** -* NOT IMPLEMENTED +* NOT IMPLEMENTED. * @ignore * @function module:SVGTransformList.SVGEditTransformList#consolidate * @returns {SVGTransform} @@ -172,7 +172,7 @@ export class SVGTransformList { // eslint-disable-line no-shadow */ const mtx = svgroot.createSVGMatrix(); Object.values(valArr).forEach(function (item, i) { - valArr[i] = parseFloat(item); + valArr[i] = Number.parseFloat(item); if (name === 'matrix') { mtx[letters[i]] = valArr[i]; } @@ -383,6 +383,7 @@ export const getTransformList = function (elem) { /** * @callback module:SVGTransformList.removeElementFromListMap * @param {Element} elem +* @returns {void} */ /** * Replace `removeElementFromListMap` for unit-testing. diff --git a/editor/typedefs.js b/editor/typedefs.js index ee880f00..9dac84f1 100644 --- a/editor/typedefs.js +++ b/editor/typedefs.js @@ -22,7 +22,7 @@ * @returns {ArbitraryCallbackResult} Return dependent on the function */ -/* eslint-disable jsdoc/check-types */ +/* eslint-disable jsdoc/require-property */ /** * This should only be used for objects known to be potentially arbitrary in form. * For those whose determination has not yet been made, simply use type `object` @@ -32,7 +32,7 @@ /** * @typedef {object} ArbitraryModule */ -/* eslint-enable jsdoc/check-types */ +/* eslint-enable jsdoc/require-property */ /** * This should only be used for objects known to be potentially arbitrary in form, @@ -51,12 +51,12 @@ /** * This should only be used for arrays known to be potentially arbitrary in form and -* representing arguments for passing around +* representing arguments for passing around. * @typedef {GenericArray} ArgumentsArray */ /** -* The `Any` type should only be used for items known to be wholly arbitrary +* The `Any` type should only be used for items known to be wholly arbitrary. */ /** diff --git a/editor/units.js b/editor/units.js index 1eda9250..b40d23aa 100644 --- a/editor/units.js +++ b/editor/units.js @@ -1,5 +1,5 @@ /** - * Tools for working with units + * Tools for working with units. * @module units * @license MIT * @@ -105,7 +105,7 @@ export const init = function (elementContainer) { }; /** -* Group: Unit conversion functions +* Group: Unit conversion functions. */ /** @@ -140,7 +140,7 @@ export const shortFloat = function (val) { if (Array.isArray(val)) { return shortFloat(val[0]) + ',' + shortFloat(val[1]); } - return parseFloat(val).toFixed(digits) - 0; + return Number.parseFloat(val).toFixed(digits) - 0; }; /** diff --git a/editor/utilities.js b/editor/utilities.js index 5a9da136..895c562e 100644 --- a/editor/utilities.js +++ b/editor/utilities.js @@ -1,6 +1,6 @@ /* globals jQuery */ /** - * Miscellaneous utilities + * Miscellaneous utilities. * @module utilities * @license MIT * @@ -38,7 +38,7 @@ let domcontainer_ = null; let svgroot_ = null; /** -* Object with the following keys/values +* Object with the following keys/values. * @typedef {PlainObject} module:utilities.SVGElementJSON * @property {string} element - Tag name of the SVG element to create * @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement. @@ -60,7 +60,7 @@ let svgroot_ = null; /** * Create a new SVG element based on the given object keys/values and add it * to the current layer. - * The element will be run through `cleanupElement` before being returned + * The element will be run through `cleanupElement` before being returned. * @function module:utilities.EditorContext#addSVGElementFromJson * @param {module:utilities.SVGElementJSON} data * @returns {Element} The new element @@ -104,12 +104,12 @@ export const init = function (editorContext) { /** * Used to prevent the [Billion laughs attack]{@link https://en.wikipedia.org/wiki/Billion_laughs_attack}. - * @function module:utilities.dropXMLInteralSubset + * @function module:utilities.dropXMLInternalSubset * @param {string} str String to be processed * @returns {string} The string with entity declarations in the internal subset removed * @todo This might be needed in other places `parseFromString` is used even without LGTM flagging */ -export const dropXMLInteralSubset = (str) => { +export const dropXMLInternalSubset = (str) => { return str.replace(/(<!DOCTYPE\s+\w*\s*\[).*(\?]>)/, '$1$2'); // return str.replace(/(?<doctypeOpen><!DOCTYPE\s+\w*\s*\[).*(?<doctypeClose>\?\]>)/, '$<doctypeOpen>$<doctypeClose>'); }; @@ -180,10 +180,10 @@ export function encode64 (input) { let enc4 = chr3 & 63; /* eslint-enable no-bitwise */ - if (isNaN(chr2)) { + if (Number.isNaN(chr2)) { enc3 = 64; enc4 = 64; - } else if (isNaN(chr3)) { + } else if (Number.isNaN(chr3)) { enc4 = 64; } @@ -661,8 +661,8 @@ export const getBBox = function (elem) { const bb = { width, height, - x: x + parseFloat(selected.getAttribute('x') || 0), - y: y + parseFloat(selected.getAttribute('y') || 0) + x: x + Number.parseFloat(selected.getAttribute('x') || 0), + y: y + Number.parseFloat(selected.getAttribute('y') || 0) }; ret = bb; } @@ -1220,6 +1220,7 @@ export const getElem = (supportsSelectors()) } : function (id) { // jQuery lookup: twice as slow as xpath in FF + // eslint-disable-next-line unicorn/no-fn-reference-in-iterator return $(svgroot_).find('[id=' + id + ']')[0]; }; @@ -1237,7 +1238,14 @@ export const assignAttributes = function (elem, attrs, suspendLength, unitCheck) const ns = (key.substr(0, 4) === 'xml:' ? NS.XML : key.substr(0, 6) === 'xlink:' ? NS.XLINK : null); - + if (isNullish(value)) { + if (ns) { + elem.removeAttributeNS(ns, key); + } else { + elem.removeAttribute(key); + } + continue; + } if (ns) { elem.setAttributeNS(ns, key, value); } else if (!unitCheck) { @@ -1388,6 +1396,9 @@ export const isNullish = (val) => { * Overwrite methods for unit testing. * @function module:utilities.mock * @param {PlainObject} mockMethods +* @param {module:utilities.getHref} mockMethods.getHref +* @param {module:utilities.setHref} mockMethods.setHref +* @param {module:utilities.getRotationAngle} mockMethods.getRotationAngle * @returns {void} */ export const mock = ({ diff --git a/editor/xdomain-svg-editor-es.html b/editor/xdomain-svg-editor-es.html index b894fe50..bd624504 100644 --- a/editor/xdomain-svg-editor-es.html +++ b/editor/xdomain-svg-editor-es.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<!-- AUTO-GENERATED FROM svg-editor-es.html; DO NOT EDIT; use build-html.js to build --> +<!-- AUTO-GENERATED FROM svg-editor-es.html; DO NOT EDIT; use build/build-html.js to build --> <html> <head> <meta charset="utf-8" /> @@ -7,6 +7,10 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="apple-mobile-web-app-capable" content="yes" /> + + <!-- No-op until loaded dynamically (could make configurable) --> + <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon" /> + <!-- STYLESHEETS (others loaded dynamically) --> <style id="styleoverrides" media="screen"></style> @@ -109,15 +113,11 @@ New Image (N) </li> <li id="tool_open" style="display:none;"> - <div id="fileinputs"> - <div></div> - </div> + <div></div> Open SVG </li> <li id="tool_import" style="display:none;"> - <div id="fileinputs_import"> - <div></div> - </div> + <div></div> Import Image </li> <li id="tool_save"> @@ -132,15 +132,15 @@ <div></div> Document Properties (D) </li> + <li id="tool_editor_prefs"> + <div></div> + Editor Preferences + </li> + <li id="tool_editor_homepage"> + <div></div> + SVG-Edit Home Page + </li> </ul> - <p> - <a href="https://github.com/SVG-Edit/svgedit" target="_blank"> - SVG-edit Home Page - </a> - </p> - <button id="tool_prefs_option"> - Editor Options - </button> </div> </div> <div id="tools_top" class="tools_panel"> @@ -367,6 +367,9 @@ <li style="font-family:cursive">Cursive</li> <li style="font-family:fantasy">Fantasy</li> <li style="font-family:monospace">Monospace</li> + <li style="font-family:courier">Courier</li> + <li style="font-family:helvetica">Helvetica</li> + <li style="font-family:times">Times</li> </ul> </div> </div> diff --git a/editor/xdomain-svg-editor.html b/editor/xdomain-svg-editor.html index 58fac21b..2a97354b 100644 --- a/editor/xdomain-svg-editor.html +++ b/editor/xdomain-svg-editor.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<!-- AUTO-GENERATED FROM xdomain-svg-editor-es.html; DO NOT EDIT; use build-html.js to build --> +<!-- AUTO-GENERATED FROM xdomain-svg-editor-es.html; DO NOT EDIT; use build/build-html.js to build --> <html> <head> <meta charset="utf-8" /> @@ -7,6 +7,10 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="apple-mobile-web-app-capable" content="yes" /> + + <!-- No-op until loaded dynamically (could make configurable) --> + <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon" /> + <!-- STYLESHEETS (others loaded dynamically) --> <style id="styleoverrides" media="screen"></style> @@ -109,15 +113,11 @@ New Image (N) </li> <li id="tool_open" style="display:none;"> - <div id="fileinputs"> - <div></div> - </div> + <div></div> Open SVG </li> <li id="tool_import" style="display:none;"> - <div id="fileinputs_import"> - <div></div> - </div> + <div></div> Import Image </li> <li id="tool_save"> @@ -132,15 +132,15 @@ <div></div> Document Properties (D) </li> + <li id="tool_editor_prefs"> + <div></div> + Editor Preferences + </li> + <li id="tool_editor_homepage"> + <div></div> + SVG-Edit Home Page + </li> </ul> - <p> - <a href="https://github.com/SVG-Edit/svgedit" target="_blank"> - SVG-edit Home Page - </a> - </p> - <button id="tool_prefs_option"> - Editor Options - </button> </div> </div> <div id="tools_top" class="tools_panel"> @@ -367,6 +367,9 @@ <li style="font-family:cursive">Cursive</li> <li style="font-family:fantasy">Fantasy</li> <li style="font-family:monospace">Monospace</li> + <li style="font-family:courier">Courier</li> + <li style="font-family:helvetica">Helvetica</li> + <li style="font-family:times">Times</li> </ul> </div> </div> diff --git a/editor/xdomain-svgedit-config-iife.js b/editor/xdomain-svgedit-config-iife.js index 5d39eb68..d6cc7fe2 100644 --- a/editor/xdomain-svgedit-config-iife.js +++ b/editor/xdomain-svgedit-config-iife.js @@ -2,6 +2,8 @@ 'use strict'; function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function (obj) { return typeof obj; @@ -122,6 +124,19 @@ return _setPrototypeOf(o, p); } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); + return true; + } catch (e) { + return false; + } + } + function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); @@ -138,20 +153,35 @@ return _assertThisInitialized(self); } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + + return function () { + var Super = _getPrototypeOf(Derived), + result; + + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + + return _possibleConstructorReturn(this, result); + }; + } + function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - - return arr2; - } + if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayWithHoles(arr) { @@ -159,14 +189,11 @@ } function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } function _iterableToArrayLimit(arr, i) { - if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { - return; - } - + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; @@ -192,12 +219,84 @@ return _arr; } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; + } + function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + function _createForOfIteratorHelper(o) { + if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { + if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { + var i = 0; + + var F = function () {}; + + return { + s: F, + n: function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function (e) { + throw e; + }, + f: F + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + var it, + normalCompletion = true, + didErr = false, + err; + return { + s: function () { + it = o[Symbol.iterator](); + }, + n: function () { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function (e) { + didErr = true; + err = e; + }, + f: function () { + try { + if (!normalCompletion && it.return != null) it.return(); + } finally { + if (didErr) throw err; + } + } + }; } // http://ross.posterous.com/2008/08/19/iphone-touch-events-in-javascript/ @@ -269,13 +368,13 @@ document.addEventListener('touchcancel', touchHandler, true); /** - * Namespaces or tools therefor + * Namespaces or tools therefor. * @module namespaces * @license MIT */ /** - * Common namepaces constants in alpha order + * Common namepaces constants in alpha order. * @enum {string} * @type {PlainObject} * @memberof module:namespaces @@ -327,16 +426,14 @@ * Chrome 46. */ - /* eslint-disable no-shadow, class-methods-use-this */ + /* eslint-disable no-shadow, class-methods-use-this, jsdoc/require-jsdoc */ // Linting: We avoid `no-shadow` as ESLint thinks these are still available globals // Linting: We avoid `class-methods-use-this` as this is a polyfill that must // follow the conventions (function () { if (!('SVGPathSeg' in window)) { // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGPathSeg - var _SVGPathSeg = - /*#__PURE__*/ - function () { + var _SVGPathSeg = /*#__PURE__*/function () { function _SVGPathSeg(type, typeAsLetter, owningPathSegList) { _classCallCheck(this, _SVGPathSeg); @@ -380,15 +477,15 @@ _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18; _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19; - var _SVGPathSegClosePath = - /*#__PURE__*/ - function (_SVGPathSeg2) { + var _SVGPathSegClosePath = /*#__PURE__*/function (_SVGPathSeg2) { _inherits(_SVGPathSegClosePath, _SVGPathSeg2); + var _super = _createSuper(_SVGPathSegClosePath); + function _SVGPathSegClosePath(owningPathSegList) { _classCallCheck(this, _SVGPathSegClosePath); - return _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegClosePath).call(this, _SVGPathSeg.PATHSEG_CLOSEPATH, 'z', owningPathSegList)); + return _super.call(this, _SVGPathSeg.PATHSEG_CLOSEPATH, 'z', owningPathSegList); } _createClass(_SVGPathSegClosePath, [{ @@ -411,17 +508,17 @@ return _SVGPathSegClosePath; }(_SVGPathSeg); - var _SVGPathSegMovetoAbs = - /*#__PURE__*/ - function (_SVGPathSeg3) { + var _SVGPathSegMovetoAbs = /*#__PURE__*/function (_SVGPathSeg3) { _inherits(_SVGPathSegMovetoAbs, _SVGPathSeg3); + var _super2 = _createSuper(_SVGPathSegMovetoAbs); + function _SVGPathSegMovetoAbs(owningPathSegList, x, y) { var _this; _classCallCheck(this, _SVGPathSegMovetoAbs); - _this = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegMovetoAbs).call(this, _SVGPathSeg.PATHSEG_MOVETO_ABS, 'M', owningPathSegList)); + _this = _super2.call(this, _SVGPathSeg.PATHSEG_MOVETO_ABS, 'M', owningPathSegList); _this._x = x; _this._y = y; return _this; @@ -472,17 +569,17 @@ } }); - var _SVGPathSegMovetoRel = - /*#__PURE__*/ - function (_SVGPathSeg4) { + var _SVGPathSegMovetoRel = /*#__PURE__*/function (_SVGPathSeg4) { _inherits(_SVGPathSegMovetoRel, _SVGPathSeg4); + var _super3 = _createSuper(_SVGPathSegMovetoRel); + function _SVGPathSegMovetoRel(owningPathSegList, x, y) { var _this2; _classCallCheck(this, _SVGPathSegMovetoRel); - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegMovetoRel).call(this, _SVGPathSeg.PATHSEG_MOVETO_REL, 'm', owningPathSegList)); + _this2 = _super3.call(this, _SVGPathSeg.PATHSEG_MOVETO_REL, 'm', owningPathSegList); _this2._x = x; _this2._y = y; return _this2; @@ -533,17 +630,17 @@ } }); - var _SVGPathSegLinetoAbs = - /*#__PURE__*/ - function (_SVGPathSeg5) { + var _SVGPathSegLinetoAbs = /*#__PURE__*/function (_SVGPathSeg5) { _inherits(_SVGPathSegLinetoAbs, _SVGPathSeg5); + var _super4 = _createSuper(_SVGPathSegLinetoAbs); + function _SVGPathSegLinetoAbs(owningPathSegList, x, y) { var _this3; _classCallCheck(this, _SVGPathSegLinetoAbs); - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegLinetoAbs).call(this, _SVGPathSeg.PATHSEG_LINETO_ABS, 'L', owningPathSegList)); + _this3 = _super4.call(this, _SVGPathSeg.PATHSEG_LINETO_ABS, 'L', owningPathSegList); _this3._x = x; _this3._y = y; return _this3; @@ -594,17 +691,17 @@ } }); - var _SVGPathSegLinetoRel = - /*#__PURE__*/ - function (_SVGPathSeg6) { + var _SVGPathSegLinetoRel = /*#__PURE__*/function (_SVGPathSeg6) { _inherits(_SVGPathSegLinetoRel, _SVGPathSeg6); + var _super5 = _createSuper(_SVGPathSegLinetoRel); + function _SVGPathSegLinetoRel(owningPathSegList, x, y) { var _this4; _classCallCheck(this, _SVGPathSegLinetoRel); - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegLinetoRel).call(this, _SVGPathSeg.PATHSEG_LINETO_REL, 'l', owningPathSegList)); + _this4 = _super5.call(this, _SVGPathSeg.PATHSEG_LINETO_REL, 'l', owningPathSegList); _this4._x = x; _this4._y = y; return _this4; @@ -655,17 +752,17 @@ } }); - var _SVGPathSegCurvetoCubicAbs = - /*#__PURE__*/ - function (_SVGPathSeg7) { + var _SVGPathSegCurvetoCubicAbs = /*#__PURE__*/function (_SVGPathSeg7) { _inherits(_SVGPathSegCurvetoCubicAbs, _SVGPathSeg7); + var _super6 = _createSuper(_SVGPathSegCurvetoCubicAbs); + function _SVGPathSegCurvetoCubicAbs(owningPathSegList, x, y, x1, y1, x2, y2) { var _this5; _classCallCheck(this, _SVGPathSegCurvetoCubicAbs); - _this5 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoCubicAbs).call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, 'C', owningPathSegList)); + _this5 = _super6.call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, 'C', owningPathSegList); _this5._x = x; _this5._y = y; _this5._x1 = x1; @@ -764,17 +861,17 @@ } }); - var _SVGPathSegCurvetoCubicRel = - /*#__PURE__*/ - function (_SVGPathSeg8) { + var _SVGPathSegCurvetoCubicRel = /*#__PURE__*/function (_SVGPathSeg8) { _inherits(_SVGPathSegCurvetoCubicRel, _SVGPathSeg8); + var _super7 = _createSuper(_SVGPathSegCurvetoCubicRel); + function _SVGPathSegCurvetoCubicRel(owningPathSegList, x, y, x1, y1, x2, y2) { var _this6; _classCallCheck(this, _SVGPathSegCurvetoCubicRel); - _this6 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoCubicRel).call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, 'c', owningPathSegList)); + _this6 = _super7.call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, 'c', owningPathSegList); _this6._x = x; _this6._y = y; _this6._x1 = x1; @@ -873,17 +970,17 @@ } }); - var _SVGPathSegCurvetoQuadraticAbs = - /*#__PURE__*/ - function (_SVGPathSeg9) { + var _SVGPathSegCurvetoQuadraticAbs = /*#__PURE__*/function (_SVGPathSeg9) { _inherits(_SVGPathSegCurvetoQuadraticAbs, _SVGPathSeg9); + var _super8 = _createSuper(_SVGPathSegCurvetoQuadraticAbs); + function _SVGPathSegCurvetoQuadraticAbs(owningPathSegList, x, y, x1, y1) { var _this7; _classCallCheck(this, _SVGPathSegCurvetoQuadraticAbs); - _this7 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoQuadraticAbs).call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, 'Q', owningPathSegList)); + _this7 = _super8.call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, 'Q', owningPathSegList); _this7._x = x; _this7._y = y; _this7._x1 = x1; @@ -958,17 +1055,17 @@ } }); - var _SVGPathSegCurvetoQuadraticRel = - /*#__PURE__*/ - function (_SVGPathSeg10) { + var _SVGPathSegCurvetoQuadraticRel = /*#__PURE__*/function (_SVGPathSeg10) { _inherits(_SVGPathSegCurvetoQuadraticRel, _SVGPathSeg10); + var _super9 = _createSuper(_SVGPathSegCurvetoQuadraticRel); + function _SVGPathSegCurvetoQuadraticRel(owningPathSegList, x, y, x1, y1) { var _this8; _classCallCheck(this, _SVGPathSegCurvetoQuadraticRel); - _this8 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoQuadraticRel).call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, 'q', owningPathSegList)); + _this8 = _super9.call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, 'q', owningPathSegList); _this8._x = x; _this8._y = y; _this8._x1 = x1; @@ -1043,17 +1140,17 @@ } }); - var _SVGPathSegArcAbs = - /*#__PURE__*/ - function (_SVGPathSeg11) { + var _SVGPathSegArcAbs = /*#__PURE__*/function (_SVGPathSeg11) { _inherits(_SVGPathSegArcAbs, _SVGPathSeg11); + var _super10 = _createSuper(_SVGPathSegArcAbs); + function _SVGPathSegArcAbs(owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) { var _this9; _classCallCheck(this, _SVGPathSegArcAbs); - _this9 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegArcAbs).call(this, _SVGPathSeg.PATHSEG_ARC_ABS, 'A', owningPathSegList)); + _this9 = _super10.call(this, _SVGPathSeg.PATHSEG_ARC_ABS, 'A', owningPathSegList); _this9._x = x; _this9._y = y; _this9._r1 = r1; @@ -1164,17 +1261,17 @@ } }); - var _SVGPathSegArcRel = - /*#__PURE__*/ - function (_SVGPathSeg12) { + var _SVGPathSegArcRel = /*#__PURE__*/function (_SVGPathSeg12) { _inherits(_SVGPathSegArcRel, _SVGPathSeg12); + var _super11 = _createSuper(_SVGPathSegArcRel); + function _SVGPathSegArcRel(owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) { var _this10; _classCallCheck(this, _SVGPathSegArcRel); - _this10 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegArcRel).call(this, _SVGPathSeg.PATHSEG_ARC_REL, 'a', owningPathSegList)); + _this10 = _super11.call(this, _SVGPathSeg.PATHSEG_ARC_REL, 'a', owningPathSegList); _this10._x = x; _this10._y = y; _this10._r1 = r1; @@ -1285,17 +1382,17 @@ } }); - var _SVGPathSegLinetoHorizontalAbs = - /*#__PURE__*/ - function (_SVGPathSeg13) { + var _SVGPathSegLinetoHorizontalAbs = /*#__PURE__*/function (_SVGPathSeg13) { _inherits(_SVGPathSegLinetoHorizontalAbs, _SVGPathSeg13); + var _super12 = _createSuper(_SVGPathSegLinetoHorizontalAbs); + function _SVGPathSegLinetoHorizontalAbs(owningPathSegList, x) { var _this11; _classCallCheck(this, _SVGPathSegLinetoHorizontalAbs); - _this11 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegLinetoHorizontalAbs).call(this, _SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, 'H', owningPathSegList)); + _this11 = _super12.call(this, _SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, 'H', owningPathSegList); _this11._x = x; return _this11; } @@ -1332,17 +1429,17 @@ enumerable: true }); - var _SVGPathSegLinetoHorizontalRel = - /*#__PURE__*/ - function (_SVGPathSeg14) { + var _SVGPathSegLinetoHorizontalRel = /*#__PURE__*/function (_SVGPathSeg14) { _inherits(_SVGPathSegLinetoHorizontalRel, _SVGPathSeg14); + var _super13 = _createSuper(_SVGPathSegLinetoHorizontalRel); + function _SVGPathSegLinetoHorizontalRel(owningPathSegList, x) { var _this12; _classCallCheck(this, _SVGPathSegLinetoHorizontalRel); - _this12 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegLinetoHorizontalRel).call(this, _SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, 'h', owningPathSegList)); + _this12 = _super13.call(this, _SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, 'h', owningPathSegList); _this12._x = x; return _this12; } @@ -1379,17 +1476,17 @@ enumerable: true }); - var _SVGPathSegLinetoVerticalAbs = - /*#__PURE__*/ - function (_SVGPathSeg15) { + var _SVGPathSegLinetoVerticalAbs = /*#__PURE__*/function (_SVGPathSeg15) { _inherits(_SVGPathSegLinetoVerticalAbs, _SVGPathSeg15); + var _super14 = _createSuper(_SVGPathSegLinetoVerticalAbs); + function _SVGPathSegLinetoVerticalAbs(owningPathSegList, y) { var _this13; _classCallCheck(this, _SVGPathSegLinetoVerticalAbs); - _this13 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegLinetoVerticalAbs).call(this, _SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, 'V', owningPathSegList)); + _this13 = _super14.call(this, _SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, 'V', owningPathSegList); _this13._y = y; return _this13; } @@ -1426,17 +1523,17 @@ enumerable: true }); - var _SVGPathSegLinetoVerticalRel = - /*#__PURE__*/ - function (_SVGPathSeg16) { + var _SVGPathSegLinetoVerticalRel = /*#__PURE__*/function (_SVGPathSeg16) { _inherits(_SVGPathSegLinetoVerticalRel, _SVGPathSeg16); + var _super15 = _createSuper(_SVGPathSegLinetoVerticalRel); + function _SVGPathSegLinetoVerticalRel(owningPathSegList, y) { var _this14; _classCallCheck(this, _SVGPathSegLinetoVerticalRel); - _this14 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegLinetoVerticalRel).call(this, _SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, 'v', owningPathSegList)); + _this14 = _super15.call(this, _SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, 'v', owningPathSegList); _this14._y = y; return _this14; } @@ -1473,17 +1570,17 @@ enumerable: true }); - var _SVGPathSegCurvetoCubicSmoothAbs = - /*#__PURE__*/ - function (_SVGPathSeg17) { + var _SVGPathSegCurvetoCubicSmoothAbs = /*#__PURE__*/function (_SVGPathSeg17) { _inherits(_SVGPathSegCurvetoCubicSmoothAbs, _SVGPathSeg17); + var _super16 = _createSuper(_SVGPathSegCurvetoCubicSmoothAbs); + function _SVGPathSegCurvetoCubicSmoothAbs(owningPathSegList, x, y, x2, y2) { var _this15; _classCallCheck(this, _SVGPathSegCurvetoCubicSmoothAbs); - _this15 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoCubicSmoothAbs).call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, 'S', owningPathSegList)); + _this15 = _super16.call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, 'S', owningPathSegList); _this15._x = x; _this15._y = y; _this15._x2 = x2; @@ -1558,17 +1655,17 @@ } }); - var _SVGPathSegCurvetoCubicSmoothRel = - /*#__PURE__*/ - function (_SVGPathSeg18) { + var _SVGPathSegCurvetoCubicSmoothRel = /*#__PURE__*/function (_SVGPathSeg18) { _inherits(_SVGPathSegCurvetoCubicSmoothRel, _SVGPathSeg18); + var _super17 = _createSuper(_SVGPathSegCurvetoCubicSmoothRel); + function _SVGPathSegCurvetoCubicSmoothRel(owningPathSegList, x, y, x2, y2) { var _this16; _classCallCheck(this, _SVGPathSegCurvetoCubicSmoothRel); - _this16 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoCubicSmoothRel).call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, 's', owningPathSegList)); + _this16 = _super17.call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, 's', owningPathSegList); _this16._x = x; _this16._y = y; _this16._x2 = x2; @@ -1643,17 +1740,17 @@ } }); - var _SVGPathSegCurvetoQuadraticSmoothAbs = - /*#__PURE__*/ - function (_SVGPathSeg19) { + var _SVGPathSegCurvetoQuadraticSmoothAbs = /*#__PURE__*/function (_SVGPathSeg19) { _inherits(_SVGPathSegCurvetoQuadraticSmoothAbs, _SVGPathSeg19); + var _super18 = _createSuper(_SVGPathSegCurvetoQuadraticSmoothAbs); + function _SVGPathSegCurvetoQuadraticSmoothAbs(owningPathSegList, x, y) { var _this17; _classCallCheck(this, _SVGPathSegCurvetoQuadraticSmoothAbs); - _this17 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoQuadraticSmoothAbs).call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, 'T', owningPathSegList)); + _this17 = _super18.call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, 'T', owningPathSegList); _this17._x = x; _this17._y = y; return _this17; @@ -1704,17 +1801,17 @@ } }); - var _SVGPathSegCurvetoQuadraticSmoothRel = - /*#__PURE__*/ - function (_SVGPathSeg20) { + var _SVGPathSegCurvetoQuadraticSmoothRel = /*#__PURE__*/function (_SVGPathSeg20) { _inherits(_SVGPathSegCurvetoQuadraticSmoothRel, _SVGPathSeg20); + var _super19 = _createSuper(_SVGPathSegCurvetoQuadraticSmoothRel); + function _SVGPathSegCurvetoQuadraticSmoothRel(owningPathSegList, x, y) { var _this18; _classCallCheck(this, _SVGPathSegCurvetoQuadraticSmoothRel); - _this18 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoQuadraticSmoothRel).call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, 't', owningPathSegList)); + _this18 = _super19.call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, 't', owningPathSegList); _this18._x = x; _this18._y = y; return _this18; @@ -1902,9 +1999,7 @@ if (!('SVGPathSegList' in window) || !('appendItem' in window.SVGPathSegList.prototype)) { // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGPathSegList - var SVGPathSegList = - /*#__PURE__*/ - function () { + var SVGPathSegList = /*#__PURE__*/function () { function SVGPathSegList(pathElement) { _classCallCheck(this, SVGPathSegList); @@ -2088,9 +2183,7 @@ var owningPathSegList = this; // eslint-disable-line consistent-this - var Builder = - /*#__PURE__*/ - function () { + var Builder = /*#__PURE__*/function () { function Builder() { _classCallCheck(this, Builder); @@ -2107,9 +2200,7 @@ return Builder; }(); - var Source = - /*#__PURE__*/ - function () { + var Source = /*#__PURE__*/function () { function Source(string) { _classCallCheck(this, Source); @@ -2650,7 +2741,7 @@ var isChrome_ = userAgent.includes('Chrome/'); var isWindows_ = userAgent.includes('Windows'); var isMac_ = userAgent.includes('Macintosh'); - var isTouch_ = 'ontouchstart' in window; + var isTouch_ = ('ontouchstart' in window); var supportsSelectors_ = function () { return Boolean(svg.querySelector); @@ -2906,7 +2997,7 @@ }; /** - * jQuery module to work with SVG attributes + * A jQuery module to work with SVG attributes. * @module jQueryAttr * @license MIT */ @@ -3076,14 +3167,14 @@ */ /** - * (DOES NOT THROW DOMException, INDEX_SIZE_ERR) + * DOES NOT THROW DOMException, INDEX_SIZE_ERR. * @function module:SVGTransformList.SVGEditTransformList#getItem * @param {Integer} index unsigned long * @returns {SVGTransform} */ /** - * (DOES NOT THROW DOMException, INDEX_SIZE_ERR) + * DOES NOT THROW DOMException, INDEX_SIZE_ERR. * @function module:SVGTransformList.SVGEditTransformList#insertItemBefore * @param {SVGTransform} newItem * @param {Integer} index unsigned long @@ -3091,7 +3182,7 @@ */ /** - * (DOES NOT THROW DOMException, INDEX_SIZE_ERR) + * DOES NOT THROW DOMException, INDEX_SIZE_ERR. * @function module:SVGTransformList.SVGEditTransformList#replaceItem * @param {SVGTransform} newItem * @param {Integer} index unsigned long @@ -3099,7 +3190,7 @@ */ /** - * (DOES NOT THROW DOMException, INDEX_SIZE_ERR) + * DOES NOT THROW DOMException, INDEX_SIZE_ERR. * @function module:SVGTransformList.SVGEditTransformList#removeItem * @param {Integer} index unsigned long * @returns {SVGTransform} @@ -3112,7 +3203,7 @@ */ /** - * NOT IMPLEMENTED + * NOT IMPLEMENTED. * @ignore * @function module:SVGTransformList.SVGEditTransformList#createSVGTransformFromMatrix * @param {SVGMatrix} matrix @@ -3120,7 +3211,7 @@ */ /** - * NOT IMPLEMENTED + * NOT IMPLEMENTED. * @ignore * @function module:SVGTransformList.SVGEditTransformList#consolidate * @returns {SVGTransform} @@ -3134,9 +3225,7 @@ * @implements {module:SVGTransformList.SVGEditTransformList} */ - var SVGTransformList = - /*#__PURE__*/ - function () { + var SVGTransformList = /*#__PURE__*/function () { // eslint-disable-line no-shadow /** @@ -3205,7 +3294,7 @@ var mtx = svgroot.createSVGMatrix(); Object.values(valArr).forEach(function (item, i) { - valArr[i] = parseFloat(item); + valArr[i] = Number.parseFloat(item); if (name === 'matrix') { mtx[letters[i]] = valArr[i]; @@ -3472,7 +3561,7 @@ }; /** - * Tools for working with units + * Tools for working with units. * @module units * @license MIT * @@ -3576,7 +3665,7 @@ }; }; /** - * Group: Unit conversion functions + * Group: Unit conversion functions. */ /** @@ -3615,7 +3704,7 @@ return shortFloat(val[0]) + ',' + shortFloat(val[1]); } - return parseFloat(val).toFixed(digits) - 0; + return Number.parseFloat(val).toFixed(digits) - 0; }; /** * Converts the number to given unit or baseUnit. @@ -3758,7 +3847,7 @@ }; /** - * Group: Undo/Redo history management + * Group: Undo/Redo history management. */ var HistoryEventTypes = { @@ -3772,9 +3861,7 @@ * Base class for commands. */ - var Command = - /*#__PURE__*/ - function () { + var Command = /*#__PURE__*/function () { function Command() { _classCallCheck(this, Command); } @@ -3801,43 +3888,43 @@ */ /** - * Applies + * Applies. * * @function module:history.HistoryCommand#apply - * @param {module:history.HistoryEventHandler} + * @param {module:history.HistoryEventHandler} handler * @fires module:history~Command#event:history * @returns {void|true} */ /** * - * Unapplies + * Unapplies. * @function module:history.HistoryCommand#unapply - * @param {module:history.HistoryEventHandler} + * @param {module:history.HistoryEventHandler} handler * @fires module:history~Command#event:history * @returns {void|true} */ /** - * Returns the elements + * Returns the elements. * @function module:history.HistoryCommand#elements * @returns {Element[]} */ /** - * Gets the text + * Gets the text. * @function module:history.HistoryCommand#getText * @returns {string} */ /** - * Gives the type + * Gives the type. * @function module:history.HistoryCommand.type * @returns {string} */ /** - * Gives the type + * Gives the type. * @function module:history.HistoryCommand#type * @returns {string} */ @@ -3865,24 +3952,26 @@ /** * History command for an element that had its DOM position changed. * @implements {module:history.HistoryCommand} - * @param {Element} elem - The DOM element that was moved - * @param {Element} oldNextSibling - The element's next sibling before it was moved - * @param {Element} oldParent - The element's parent before it was moved - * @param {string} [text] - An optional string visible to user related to this change */ - var MoveElementCommand = - /*#__PURE__*/ - function (_Command) { + var MoveElementCommand = /*#__PURE__*/function (_Command) { _inherits(MoveElementCommand, _Command); + var _super = _createSuper(MoveElementCommand); + + /** + * @param {Element} elem - The DOM element that was moved + * @param {Element} oldNextSibling - The element's next sibling before it was moved + * @param {Element} oldParent - The element's parent before it was moved + * @param {string} [text] - An optional string visible to user related to this change + */ function MoveElementCommand(elem, oldNextSibling, oldParent, text) { var _this; _classCallCheck(this, MoveElementCommand); - _this = _possibleConstructorReturn(this, _getPrototypeOf(MoveElementCommand).call(this)); + _this = _super.call(this); _this.elem = elem; _this.text = text ? 'Move ' + elem.tagName + ' to ' + text : 'Move ' + elem.tagName; _this.oldNextSibling = oldNextSibling; @@ -3891,6 +3980,10 @@ _this.newParent = elem.parentNode; return _this; } + /** + * @returns {"svgedit.history.MoveElementCommand"} + */ + _createClass(MoveElementCommand, [{ key: "type", @@ -3956,28 +4049,33 @@ /** * History command for an element that was added to the DOM. * @implements {module:history.HistoryCommand} - * - * @param {Element} elem - The newly added DOM element - * @param {string} text - An optional string visible to user related to this change */ - var InsertElementCommand = - /*#__PURE__*/ - function (_Command2) { + var InsertElementCommand = /*#__PURE__*/function (_Command2) { _inherits(InsertElementCommand, _Command2); + var _super2 = _createSuper(InsertElementCommand); + + /** + * @param {Element} elem - The newly added DOM element + * @param {string} text - An optional string visible to user related to this change + */ function InsertElementCommand(elem, text) { var _this2; _classCallCheck(this, InsertElementCommand); - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(InsertElementCommand).call(this)); + _this2 = _super2.call(this); _this2.elem = elem; _this2.text = text || 'Create ' + elem.tagName; _this2.parent = elem.parentNode; _this2.nextSibling = _this2.elem.nextSibling; return _this2; } + /** + * @returns {"svgedit.history.InsertElementCommand"} + */ + _createClass(InsertElementCommand, [{ key: "type", @@ -4020,7 +4118,7 @@ } this.parent = this.elem.parentNode; - this.elem = this.elem.parentNode.removeChild(this.elem); + this.elem = this.elem.remove(); if (handler) { handler.handleHistoryEvent(HistoryEventTypes.AFTER_UNAPPLY, this); @@ -4043,23 +4141,25 @@ /** * History command for an element removed from the DOM. * @implements {module:history.HistoryCommand} - * @param {Element} elem - The removed DOM element - * @param {Node} oldNextSibling - The DOM element's nextSibling when it was in the DOM - * @param {Element} oldParent - The DOM element's parent - * @param {string} [text] - An optional string visible to user related to this change */ - var RemoveElementCommand = - /*#__PURE__*/ - function (_Command3) { + var RemoveElementCommand = /*#__PURE__*/function (_Command3) { _inherits(RemoveElementCommand, _Command3); + var _super3 = _createSuper(RemoveElementCommand); + + /** + * @param {Element} elem - The removed DOM element + * @param {Node} oldNextSibling - The DOM element's nextSibling when it was in the DOM + * @param {Element} oldParent - The DOM element's parent + * @param {string} [text] - An optional string visible to user related to this change + */ function RemoveElementCommand(elem, oldNextSibling, oldParent, text) { var _this3; _classCallCheck(this, RemoveElementCommand); - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(RemoveElementCommand).call(this)); + _this3 = _super3.call(this); _this3.elem = elem; _this3.text = text || 'Delete ' + elem.tagName; _this3.nextSibling = oldNextSibling; @@ -4068,6 +4168,10 @@ removeElementFromListMap(elem); return _this3; } + /** + * @returns {"svgedit.history.RemoveElementCommand"} + */ + _createClass(RemoveElementCommand, [{ key: "type", @@ -4091,7 +4195,7 @@ removeElementFromListMap(this.elem); this.parent = this.elem.parentNode; - this.elem = this.parent.removeChild(this.elem); + this.elem = this.elem.remove(); if (handler) { handler.handleHistoryEvent(HistoryEventTypes.AFTER_APPLY, this); @@ -4151,22 +4255,24 @@ * History command to make a change to an element. * Usually an attribute change, but can also be textcontent. * @implements {module:history.HistoryCommand} - * @param {Element} elem - The DOM element that was changed - * @param {module:history.CommandAttributes} attrs - Attributes to be changed with the values they had *before* the change - * @param {string} text - An optional string visible to user related to this change */ - var ChangeElementCommand = - /*#__PURE__*/ - function (_Command4) { + var ChangeElementCommand = /*#__PURE__*/function (_Command4) { _inherits(ChangeElementCommand, _Command4); + var _super4 = _createSuper(ChangeElementCommand); + + /** + * @param {Element} elem - The DOM element that was changed + * @param {module:history.CommandAttributes} attrs - Attributes to be changed with the values they had *before* the change + * @param {string} text - An optional string visible to user related to this change + */ function ChangeElementCommand(elem, attrs, text) { var _this4; _classCallCheck(this, ChangeElementCommand); - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(ChangeElementCommand).call(this)); + _this4 = _super4.call(this); _this4.elem = elem; _this4.text = text ? 'Change ' + elem.tagName + ' ' + text : 'Change ' + elem.tagName; _this4.newValues = {}; @@ -4184,6 +4290,10 @@ return _this4; } + /** + * @returns {"svgedit.history.ChangeElementCommand"} + */ + _createClass(ChangeElementCommand, [{ key: "type", @@ -4342,11 +4452,11 @@ * @implements {module:history.HistoryCommand} */ - var BatchCommand = - /*#__PURE__*/ - function (_Command5) { + var BatchCommand = /*#__PURE__*/function (_Command5) { _inherits(BatchCommand, _Command5); + var _super5 = _createSuper(BatchCommand); + /** * @param {string} [text] - An optional string visible to user related to this change */ @@ -4355,11 +4465,15 @@ _classCallCheck(this, BatchCommand); - _this7 = _possibleConstructorReturn(this, _getPrototypeOf(BatchCommand).call(this)); + _this7 = _super5.call(this); _this7.text = text || 'Batch Command'; _this7.stack = []; return _this7; } + /** + * @returns {"svgedit.history.BatchCommand"} + */ + _createClass(BatchCommand, [{ key: "type", @@ -4466,9 +4580,7 @@ * */ - var UndoManager = - /*#__PURE__*/ - function () { + var UndoManager = /*#__PURE__*/function () { /** * @param {module:history.HistoryEventHandler} historyEventHandler */ @@ -4666,7 +4778,7 @@ }); /** - * Mathematical utilities + * Mathematical utilities. * @module math * @license MIT * @@ -4830,8 +4942,8 @@ min = min || 0; max = max || tlist.numberOfItems - 1; - min = parseInt(min); - max = parseInt(max); + min = Number.parseInt(min); + max = Number.parseInt(max); if (min > max) { var temp = max; @@ -4962,7 +5074,7 @@ */ /** - * Object with the following keys/values + * Object with the following keys/values. * @typedef {PlainObject} module:path.SVGElementJSON * @property {string} element - Tag name of the SVG element to create * @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement. @@ -4991,7 +5103,7 @@ */ /** - * Note: This doesn't round to an integer necessarily + * Note: This doesn't round to an integer necessarily. * @function module:path.EditorContext#round * @param {Float} val * @returns {Float} Rounded value to nearest value based on `currentZoom` @@ -5089,19 +5201,19 @@ */ /** - * Returns the last created DOM element ID string + * Returns the last created DOM element ID string. * @function module:path.EditorContext#getId * @returns {string} */ /** - * Creates and returns a unique ID string for a DOM element + * Creates and returns a unique ID string for a DOM element. * @function module:path.EditorContext#getNextId * @returns {string} */ /** - * Gets the desired element from a mouse event + * Gets the desired element from a mouse event. * @function module:path.EditorContext#getMouseTarget * @param {external:MouseEvent} evt - Event object from the mouse event * @returns {Element} DOM element we want @@ -5607,9 +5719,7 @@ * */ - var Segment = - /*#__PURE__*/ - function () { + var Segment = /*#__PURE__*/function () { /** * @param {Integer} index * @param {SVGPathSeg} item @@ -5837,9 +5947,7 @@ * */ - var Path = - /*#__PURE__*/ - function () { + var Path = /*#__PURE__*/function () { /** * @param {SVGPathElement} elem * @throws {Error} If constructed without a path element @@ -6552,7 +6660,7 @@ } }; /** - * This is how we map paths to our preferred relative segment types + * This is how we map paths to our preferred relative segment types. * @name module:path.pathMap * @type {GenericArray} */ @@ -6585,7 +6693,7 @@ x2 = seg.x2 || 0, y2 = seg.y2 || 0; var type = seg.pathSegType; - var letter = pathMap[type]['to' + (toRel ? 'Lower' : 'Upper') + 'Case'](); + var letter = pathMap[type][toRel ? 'toLowerCase' : 'toUpperCase'](); switch (type) { case 1: @@ -6607,16 +6715,18 @@ case 13: // relative horizontal line (h) if (toRel) { + y = 0; curx += x; letter = 'l'; } else { + y = cury; x += curx; curx = x; letter = 'L'; } // Convert to "line" for easier editing - d += pathDSegment(letter, [[x, cury]]); + d += pathDSegment(letter, [[x, y]]); break; case 14: @@ -6627,16 +6737,18 @@ case 15: // relative vertical line (v) if (toRel) { + x = 0; cury += y; letter = 'l'; } else { + x = curx; y += cury; cury = y; letter = 'L'; } // Convert to "line" for easier editing - d += pathDSegment(letter, [[curx, y]]); + d += pathDSegment(letter, [[x, y]]); break; case 2: // absolute move (M) @@ -6805,15 +6917,18 @@ return segment; } + /* eslint-disable jsdoc/require-property */ + /** - * Group: Path edit functions - * Functions relating to editing path elements + * Group: Path edit functions. + * Functions relating to editing path elements. * @namespace {PlainObject} pathActions * @memberof module:path */ var pathActions = function () { + /* eslint-enable jsdoc/require-property */ var subpath = false; var newPoint, firstCtrl; var currentPath = null; @@ -7108,7 +7223,7 @@ if (id.substr(0, 14) === 'pathpointgrip_') { // Select this point - curPt = path.cur_pt = parseInt(id.substr(14)); + curPt = path.cur_pt = Number.parseInt(id.substr(14)); path.dragging = [startX, startY]; var seg = path.segs[curPt]; // only clear selection if shift is not pressed (otherwise, add // node to selection) @@ -7140,11 +7255,10 @@ rubberBox = editorContext_.setRubberBox(editorContext_.selectorManager.getRubberBandBox()); } - var _currentZoom = editorContext_.getCurrentZoom(); - + var currentZoom = editorContext_.getCurrentZoom(); assignAttributes(rubberBox, { - x: startX * _currentZoom, - y: startY * _currentZoom, + x: startX * currentZoom, + y: startY * currentZoom, width: 0, height: 0, display: 'inline' @@ -7790,15 +7904,19 @@ path.endChanges('Delete path node(s)'); }, + + /* eslint-disable jsdoc/require-returns */ // Can't seem to use `@borrows` here, so using `@see` /** - * Smooth polyline into path + * Smooth polyline into path. * @function module:path.pathActions.smoothPolylineIntoPath * @see module:path~smoothPolylineIntoPath */ smoothPolylineIntoPath: smoothPolylineIntoPath, + /* eslint-enable jsdoc/require-returns */ + /** * @param {?Integer} v See {@link https://www.w3.org/TR/SVG/single-page.html#paths-InterfaceSVGPathSeg} * @returns {void} @@ -7868,14 +7986,18 @@ editorContext_.resetD(elem); } }, + + /* eslint-disable jsdoc/require-returns */ // Can't seem to use `@borrows` here, so using `@see` /** - * Convert a path to one with only absolute or relative values + * Convert a path to one with only absolute or relative values. * @function module:path.pathActions.convertPath * @see module:path.convertPath */ convertPath: convertPath + /* eslint-enable jsdoc/require-returns */ + } ); }(); // end pathActions @@ -7892,7 +8014,7 @@ var domcontainer_ = null; var svgroot_ = null; /** - * Object with the following keys/values + * Object with the following keys/values. * @typedef {PlainObject} module:utilities.SVGElementJSON * @property {string} element - Tag name of the SVG element to create * @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement. @@ -7916,7 +8038,7 @@ /** * Create a new SVG element based on the given object keys/values and add it * to the current layer. - * The element will be run through `cleanupElement` before being returned + * The element will be run through `cleanupElement` before being returned. * @function module:utilities.EditorContext#addSVGElementFromJson * @param {module:utilities.SVGElementJSON} data * @returns {Element} The new element @@ -7966,13 +8088,13 @@ }; /** * Used to prevent the [Billion laughs attack]{@link https://en.wikipedia.org/wiki/Billion_laughs_attack}. - * @function module:utilities.dropXMLInteralSubset + * @function module:utilities.dropXMLInternalSubset * @param {string} str String to be processed * @returns {string} The string with entity declarations in the internal subset removed * @todo This might be needed in other places `parseFromString` is used even without LGTM flagging */ - var dropXMLInteralSubset = function dropXMLInteralSubset(str) { + var dropXMLInternalSubset = function dropXMLInternalSubset(str) { return str.replace(/(<!DOCTYPE\s+\w*\s*\[).*(\?]>)/, '$1$2'); // return str.replace(/(?<doctypeOpen><!DOCTYPE\s+\w*\s*\[).*(?<doctypeClose>\?\]>)/, '$<doctypeOpen>$<doctypeClose>'); }; /** @@ -8025,10 +8147,10 @@ var enc4 = chr3 & 63; /* eslint-enable no-bitwise */ - if (isNaN(chr2)) { + if (Number.isNaN(chr2)) { enc3 = 64; enc4 = 64; - } else if (isNaN(chr3)) { + } else if (Number.isNaN(chr3)) { enc4 = 64; } @@ -8562,8 +8684,8 @@ var bb = { width: width, height: height, - x: x + parseFloat(selected.getAttribute('x') || 0), - y: y + parseFloat(selected.getAttribute('y') || 0) + x: x + Number.parseFloat(selected.getAttribute('x') || 0), + y: y + Number.parseFloat(selected.getAttribute('y') || 0) }; ret = bb; } @@ -9135,6 +9257,7 @@ }, 9, null).singleNodeValue; } : function (id) { // jQuery lookup: twice as slow as xpath in FF + // eslint-disable-next-line unicorn/no-fn-reference-in-iterator return $$2(svgroot_).find('[id=' + id + ']')[0]; }; /** @@ -9155,6 +9278,16 @@ var ns = key.substr(0, 4) === 'xml:' ? NS.XML : key.substr(0, 6) === 'xlink:' ? NS.XLINK : null; + if (isNullish(value)) { + if (ns) { + elem.removeAttributeNS(ns, key); + } else { + elem.removeAttribute(key); + } + + continue; + } + if (ns) { elem.setAttributeNS(ns, key, value); } else if (!unitCheck) { @@ -9313,7 +9446,7 @@ /* globals jQuery */ /** - * Adds context menu functionality + * Adds context menu functionality. * @module contextmenu * @license Apache-2.0 * @author Adam Bender @@ -9367,11 +9500,12 @@ }); }; - // MIT License - // From: https://github.com/uupaa/dynamic-import-polyfill/blob/master/importModule.js + /* eslint-disable jsdoc/require-file-overview */ /** + * Adapted from {@link https://github.com/uupaa/dynamic-import-polyfill/blob/master/importModule.js}. * @module importModule + * @license MIT */ /** @@ -9441,9 +9575,7 @@ */ function _importSetGlobal() { - _importSetGlobal = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee(url, _ref) { + _importSetGlobal = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url, _ref) { var glob, returnDefault, modularVersion; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { @@ -9598,6 +9730,94 @@ }); } + /** + * Created by alexey2baranov on 28.01.17. + */ + + /* + An extraction of the deparam method from Ben Alman's jQuery BBQ + http://benalman.com/projects/jquery-bbq-plugin/ + */ + var coerce_types = { + 'true': !0, + 'false': !1, + 'null': null + }; + + function deparam(params, coerce) { + // console.log(params) + var obj = {}; // Iterate over all name=value pairs. + + params.replace(/\+/g, ' ').split('&').forEach(function (v) { + var param = v.split('='); + var key = decodeURIComponent(param[0]), + // If key is more complex than 'foo', like 'a[]' or 'a[b][c]', split it + // into its component parts. + keys = key.split(']['), + keys_last = keys.length - 1; // If the first keys part contains [ and the last ends with ], then [] + // are correctly balanced. + + if (/\[/.test(keys[0]) && /\]$/.test(keys[keys_last])) { + // Remove the trailing ] from the last keys part. + keys[keys_last] = keys[keys_last].replace(/\]$/, ''); // Split first keys part into two parts on the [ and add them back onto + // the beginning of the keys array. + + keys = keys.shift().split('[').concat(keys); + keys_last = keys.length - 1; + } else { + // Basic 'foo' style key. + keys_last = 0; + } // Are we dealing with a name=value pair, or just a name? + + + if (param.length >= 2) { + var val = decodeURIComponent(param.slice(1).join('=')); // Coerce values. + + if (coerce) { + val = val && !isNaN(val) ? +val // number + : val === 'undefined' ? undefined // undefined + : coerce_types[val] !== undefined ? coerce_types[val] // true, false, null + : val; // string + } + + if (keys_last) { + var cur = obj; // Complex key, build deep object structure based on a few rules: + // * The 'cur' pointer starts at the object top-level. + // * [] = array push (n is set to array length), [n] = array if n is + // numeric, otherwise object. + // * If at the last keys part, set the value. + // * For each keys part, if the current level is undefined create an + // object or array based on the type of the next keys part. + // * Move the 'cur' pointer to the next level. + // * Rinse & repeat. + + for (var i = 0; i <= keys_last; i++) { + key = keys[i] === '' ? cur.length : keys[i]; + cur = cur[key] = i < keys_last ? cur[key] || (keys[i + 1] && isNaN(keys[i + 1]) ? {} : []) : val; + } + } else { + // Simple key, even simpler rules, since only scalars and shallow + // arrays are allowed. + if (Array.isArray(obj[key])) { + // val is already an array, so push on the next value. + obj[key].push(val); + } else if (obj[key] !== undefined) { + // val isn't an array, but since a second value has been specified, + // convert val into an array. + obj[key] = [obj[key], val]; + } else { + // val is a scalar. + obj[key] = val; + } + } + } else if (key) { + // No value was defined, so set something meaningful. + obj[key] = coerce ? undefined : ''; + } + }); + return obj; + } + /** * @module jQueryPluginDBox */ @@ -9816,9 +10036,7 @@ * @memberof module:layer */ - var Layer = - /*#__PURE__*/ - function () { + var Layer = /*#__PURE__*/function () { /** * @param {string} name - Layer name * @param {SVGGElement|null} group - An existing SVG group element or null. @@ -9936,7 +10154,7 @@ return 1; } - return parseFloat(opacity); + return Number.parseFloat(opacity); } /** * Sets the opacity of this layer. If opacity is not a value between 0.0 and 1.0, @@ -9961,28 +10179,18 @@ }, { key: "appendChildren", value: function appendChildren(children) { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + var _iterator = _createForOfIteratorHelper(children), + _step; try { - for (var _iterator = children[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + for (_iterator.s(); !(_step = _iterator.n()).done;) { var child = _step.value; this.group_.append(child); } } catch (err) { - _didIteratorError = true; - _iteratorError = err; + _iterator.e(err); } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + _iterator.f(); } } /** @@ -10043,8 +10251,7 @@ }, { key: "removeGroup", value: function removeGroup() { - var parent = this.group_.parentNode; - var group = parent.removeChild(this.group_); + var group = this.group_.remove(); this.group_ = undefined; return group; } @@ -10094,7 +10301,7 @@ * * The following will record history: insert, batch, insert. * @example - * hrService = new history.HistoryRecordingService(this.undoMgr); + * hrService = new HistoryRecordingService(this.undoMgr); * hrService.insertElement(elem, text); // add simple command to history. * hrService.startBatchCommand('create two elements'); * hrService.changeElement(elem, attrs, text); // add to batchCommand @@ -10113,9 +10320,7 @@ * @memberof module:history */ - var HistoryRecordingService = - /*#__PURE__*/ - function () { + var HistoryRecordingService = /*#__PURE__*/function () { /** * @param {history.UndoManager|null} undoManager - The undo manager. * A value of `null` is valid for cases where no history recording is required. @@ -10328,9 +10533,7 @@ */ - var Drawing = - /*#__PURE__*/ - function () { + var Drawing = /*#__PURE__*/function () { /** * @param {SVGSVGElement} svgElem - The SVG DOM Element that this JS object * encapsulates. If the svgElem has a se:nonce attribute on it, then @@ -10421,6 +10624,7 @@ // querySelector lookup return this.svgElem_.querySelector('#' + id); } // jQuery lookup: twice as slow as xpath in FF + // eslint-disable-next-line unicorn/no-fn-reference-in-iterator return $$5(this.svgElem_).find('[id=' + id + ']')[0]; @@ -10537,7 +10741,7 @@ } // extract the obj_num of this id - var num = parseInt(id.substr(front.length)); // if we didn't get a positive number or we already released this number + var num = Number.parseInt(id.substr(front.length)); // if we didn't get a positive number or we already released this number // then return false. if (typeof num !== 'number' || num <= 0 || this.releasedNums.includes(num)) { @@ -11071,7 +11275,7 @@ }; // Layer API Functions /** - * Group: Layers + * Group: Layers. */ /** @@ -11119,7 +11323,7 @@ */ /** - * Run the callback function associated with the given event + * Run the callback function associated with the given event. * @function module:draw.DrawCanvasInit#call * @param {"changed"|"contextset"} ev - String with the event name * @param {module:svgcanvas.SvgCanvas#event:changed|module:svgcanvas.SvgCanvas#event:contextset} arg - Argument to pass through to the callback @@ -11443,7 +11647,7 @@ /** * This defines which elements and attributes that we support (or at least - * don't remove) + * don't remove). * @type {PlainObject} */ @@ -11814,8 +12018,8 @@ // therefore [T'] = [M_inv][T][M] var existing = transformListToTransform(selected).matrix, tNew = matrixMultiply(existing.inverse(), m, existing); - changes.x = parseFloat(changes.x) + tNew.e; - changes.y = parseFloat(changes.y) + tNew.f; + changes.x = Number.parseFloat(changes.x) + tNew.e; + changes.y = Number.parseFloat(changes.y) + tNew.f; } else { // we just absorb all matrices into the element and don't do any remapping var chlist = getTransformList(selected); @@ -12997,9 +13201,7 @@ * Private class for DOM element selection boxes. */ - var Selector = - /*#__PURE__*/ - function () { + var Selector = /*#__PURE__*/function () { /** * @param {Integer} id - Internally identify the selector * @param {Element} elem - DOM element associated with this selector @@ -13246,9 +13448,10 @@ * Manage all selector objects (selection boxes). */ - var SelectorManager = - /*#__PURE__*/ - function () { + var SelectorManager = /*#__PURE__*/function () { + /** + * Sets up properties and calls `initGroup`. + */ function SelectorManager() { _classCallCheck(this, SelectorManager); @@ -13654,7 +13857,7 @@ var svgroot = svgdoc.importNode(text2xml('<svg id="svgroot" xmlns="' + NS.SVG + '" xlinkns="' + NS.XLINK + '" ' + 'width="' + dimensions[0] + '" height="' + dimensions[1] + '" x="' + dimensions[0] + '" y="' + dimensions[1] + '" overflow="visible">' + '<defs>' + '<filter id="canvashadow" filterUnits="objectBoundingBox">' + '<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>' + '<feOffset in="blur" dx="5" dy="5" result="offsetBlur"/>' + '<feMerge>' + '<feMergeNode in="offsetBlur"/>' + '<feMergeNode in="SourceGraphic"/>' + '</feMerge>' + '</filter>' + '</defs>' + '</svg>').documentElement, true); container.append(svgroot); /** - * The actual element that represents the final output SVG element + * The actual element that represents the final output SVG element. * @name module:svgcanvas~svgcontent * @type {SVGSVGElement} */ @@ -13699,7 +13902,7 @@ idprefix = p; }; /** - * Current draw.Drawing object + * Current `draw.Drawing` object. * @type {module:draw.Drawing} * @name module:svgcanvas.SvgCanvas#current_drawing_ */ @@ -13716,7 +13919,7 @@ return canvas.current_drawing_; }; /** - * Float displaying the current zoom level (1 = 100%, .5 = 50%, etc) + * Float displaying the current zoom level (1 = 100%, .5 = 50%, etc.). * @type {Float} */ @@ -13852,8 +14055,8 @@ return curConfig.baseUnit; }; /** - * initialize from units.js. - * Send in an object implementing the ElementContainer interface (see units.js) + * Initialize from units.js. + * Send in an object implementing the ElementContainer interface (see units.js). */ @@ -14080,12 +14283,12 @@ var round = this.round = function (val) { - return parseInt(val * currentZoom) / currentZoom; + return Number.parseInt(val * currentZoom) / currentZoom; }; init$6(curConfig, /** - * Export to select.js + * Export to select.js. * @implements {module:select.SVGFactory} */ { @@ -14101,7 +14304,7 @@ getCurrentZoom: getCurrentZoom }); /** - * This object manages selectors for us + * This object manages selectors for us. * @name module:svgcanvas.SvgCanvas#selectorManager * @type {module:select.SelectorManager} */ @@ -14220,6 +14423,10 @@ } } + if (!selectedElements.length) { + return; + } + call('selected', selectedElements); if (showGrips || selectedElements.length === 1) { @@ -14697,8 +14904,8 @@ /** * @typedef {PlainObject} module:svgcanvas.ExtensionInitArgs - * @param {external:jQuery} initArgs.$ - * @param {module:SVGEditor~ImportLocale} initArgs.importLocale + * @property {external:jQuery} $ + * @property {module:SVGEditor~ImportLocale} importLocale */ /** @@ -14714,12 +14921,8 @@ */ - this.addExtension = - /*#__PURE__*/ - function () { - var _ref4 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee(name, extInitFunc, _ref3) { + this.addExtension = /*#__PURE__*/function () { + var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(name, extInitFunc, _ref3) { var jq, importLocale, argObj, extObj; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { @@ -14774,8 +14977,7 @@ if (extObj) { extObj.name = name; - } // eslint-disable-next-line require-atomic-updates - + } extensions[name] = extObj; return _context.abrupt("return", call('extension_added', extObj)); @@ -14834,8 +15036,8 @@ if (!isIE()) { if (typeof svgroot.getIntersectionList === 'function') { // Offset the bbox of the rubber box by the offset of the svgcontent element. - rubberBBox.x += parseInt(svgcontent.getAttribute('x')); - rubberBBox.y += parseInt(svgcontent.getAttribute('y')); + rubberBBox.x += Number.parseInt(svgcontent.getAttribute('x')); + rubberBBox.y += Number.parseInt(svgcontent.getAttribute('y')); resultList = svgroot.getIntersectionList(rubberBBox, parent); } } @@ -14919,26 +15121,26 @@ var events = {}; canvas.call = call; /** - * Array of what was changed (elements, layers) + * Array of what was changed (elements, layers). * @event module:svgcanvas.SvgCanvas#event:changed * @type {Element[]} */ /** - * Array of selected elements + * Array of selected elements. * @event module:svgcanvas.SvgCanvas#event:selected * @type {Element[]} */ /** - * Array of selected elements + * Array of selected elements. * @event module:svgcanvas.SvgCanvas#event:transition * @type {Element[]} */ /** * The Element is always `SVGGElement`? - * If not `null`, will be the set current group element + * If not `null`, will be the set current group element. * @event module:svgcanvas.SvgCanvas#event:contextset * @type {null|Element} */ @@ -14999,7 +15201,7 @@ */ /** - * SVG canvas converted to string + * SVG canvas converted to string. * @event module:svgcanvas.SvgCanvas#event:saved * @type {string} */ @@ -15043,7 +15245,7 @@ /** * The promise return, if present, resolves to `undefined` - * (`extension_added`, `exported`, `saved`) + * (`extension_added`, `exported`, `saved`). * @typedef {Promise<void>|void} module:svgcanvas.EventHandlerReturn */ @@ -15130,7 +15332,7 @@ this.setRotationAngle = function (val, preventUndo) { // ensure val is the proper type - val = parseFloat(val); + val = Number.parseFloat(val); var elem = selectedElements[0]; var oldTransform = elem.getAttribute('transform'); var bbox = getBBox(elem); @@ -15222,7 +15424,7 @@ var rootSctm = null; /** - * Group: Selection + * Group: Selection. */ // TODO: do we need to worry about selectedBBoxes here? @@ -15468,12 +15670,11 @@ if (!rightClick) { // insert a dummy transform so if the element(s) are moved it will have // a transform to use for its translate - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + var _iterator = _createForOfIteratorHelper(selectedElements), + _step; try { - for (var _iterator = selectedElements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + for (_iterator.s(); !(_step = _iterator.n()).done;) { var selectedElement = _step.value; if (isNullish(selectedElement)) { @@ -15489,18 +15690,9 @@ } } } catch (err) { - _didIteratorError = true; - _iteratorError = err; + _iterator.e(err); } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + _iterator.f(); } } } else if (!rightClick) { @@ -15621,6 +15813,14 @@ case 'fhpath': start.x = realX; start.y = realY; + controllPoint1 = { + x: 0, + y: 0 + }; + controllPoint2 = { + x: 0, + y: 0 + }; started = true; dAttr = realX + ',' + realY + ' '; // Commented out as doing nothing now: // strokeW = parseFloat(curShape.stroke_width) === 0 ? 1 : curShape.stroke_width; @@ -15789,7 +15989,7 @@ break; } /** - * The main (left) mouse button is held down on the canvas area + * The main (left) mouse button is held down on the canvas area. * @event module:svgcanvas.SvgCanvas#event:ext_mouseDown * @type {PlainObject} * @property {MouseEvent} event The event object @@ -16332,7 +16532,7 @@ } } /** - * The mouse has moved on the canvas area + * The mouse has moved on the canvas area. * @event module:svgcanvas.SvgCanvas#event:ext_mouseMove * @type {PlainObject} * @property {MouseEvent} event The event object @@ -16649,7 +16849,7 @@ } } /** - * The main (left) mouse button is released (anywhere) + * The main (left) mouse button is released (anywhere). * @event module:svgcanvas.SvgCanvas#event:ext_mouseUp * @type {PlainObject} * @property {MouseEvent} event The event object @@ -16703,7 +16903,7 @@ var aniDur = 0.2; var cAni; - if (opacAni.beginElement && parseFloat(element.getAttribute('opacity')) !== curShape.opacity) { + if (opacAni.beginElement && Number.parseFloat(element.getAttribute('opacity')) !== curShape.opacity) { cAni = $$9(opacAni).clone().attr({ to: curShape.opacity, dur: aniDur @@ -16878,15 +17078,18 @@ call('zoomDone'); }); })(); + /* eslint-disable jsdoc/require-property */ + /** * Group: Text edit functions - * Functions relating to editing text elements + * Functions relating to editing text elements. * @namespace {PlainObject} textActions * @memberof module:svgcanvas.SvgCanvas# */ var textActions = canvas.textActions = function () { + /* eslint-enable jsdoc/require-property */ var curtext; var textinput; var cursor; @@ -17404,7 +17607,7 @@ ); }(); /** - * Group: Serialization + * Group: Serialization. */ /** @@ -17634,6 +17837,16 @@ continue; } + if (_attrVal === 'null') { + var styleName = _attr.localName.replace(/-[a-z]/g, function (s) { + return s[1].toUpperCase(); + }); + + if (Object.prototype.hasOwnProperty.call(elem.style, styleName)) { + continue; + } + } + if (_attrVal !== '') { if (_attrVal.startsWith('pointer-events')) { continue; @@ -17688,7 +17901,7 @@ case 1: // element node out.push('\n'); - out.push(this.svgToString(childs.item(_i4), indent)); + out.push(this.svgToString(child, indent)); break; case 3: @@ -17747,7 +17960,7 @@ }; // end svgToString() /** - * Function to run when image data is found + * Function to run when image data is found. * @callback module:svgcanvas.ImageEmbeddedCallback * @param {string|false} result Data URL * @returns {void} @@ -17912,12 +18125,8 @@ * @returns {Promise<module:svgcanvas.ImageExportedResults>} Resolves to {@link module:svgcanvas.ImageExportedResults} */ - this.rasterExport = - /*#__PURE__*/ - function () { - var _ref5 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee2(imgType, quality, exportWindowName) { + this.rasterExport = /*#__PURE__*/function () { + var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(imgType, quality, exportWindowName) { var opts, type, mimeType, @@ -17925,7 +18134,7 @@ issues, issueCodes, svg, - _ref6, + _yield$importSetGloba, c, _args2 = arguments; @@ -17950,8 +18159,8 @@ }); case 8: - _ref6 = _context2.sent; - canvg = _ref6.canvg; + _yield$importSetGloba = _context2.sent; + canvg = _yield$importSetGloba.canvg; case 10: if (!$$9('#export_canvas').length) { @@ -18060,12 +18269,8 @@ */ - this.exportPDF = - /*#__PURE__*/ - function () { - var _ref7 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee3(exportWindowName) { + this.exportPDF = /*#__PURE__*/function () { + var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(exportWindowName) { var outputType, modularVersion, res, @@ -18094,7 +18299,8 @@ _context3.next = 4; return importScript([// We do not currently have these paths configurable as they are // currently global-only, so not Rolled-up - 'jspdf/underscore-min.js', 'jspdf/jspdf.min.js']); + 'jspdf/underscore-min.js', // 'jspdf/jspdf.min.js', + '../../svgedit-myfix/editor/jspdf/jspdf-1.0.150.debug.js']); case 4: modularVersion = !('svgEditor' in window) || !window.svgEditor || window.svgEditor.modules !== false; // Todo: Switch to `import()` when widely supported and available (also allow customization of path) @@ -18154,7 +18360,7 @@ })); return function (_x7) { - return _ref7.apply(this, arguments); + return _ref6.apply(this, arguments); }; }(); /** @@ -18570,7 +18776,8 @@ var _svgcontent = svgcontent, nextSibling = _svgcontent.nextSibling; - var oldzoom = svgroot.removeChild(svgcontent); + svgcontent.remove(); + var oldzoom = svgcontent; batchCmd.addSubCommand(new RemoveElementCommand$1(oldzoom, nextSibling, svgroot)); // set new svg document // If DOM3 adoptNode() available, use it. Otherwise fall back to DOM2 importNode() @@ -18805,29 +19012,20 @@ } var attrs = svg.attributes; - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + + var _iterator2 = _createForOfIteratorHelper(attrs), + _step2; try { - for (var _iterator2 = attrs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var attr = _step2.value; // Ok for `NamedNodeMap` symbol.setAttribute(attr.nodeName, attr.value); } } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; + _iterator2.e(err); } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } + _iterator2.f(); } symbol.id = getNextId(); // Store data @@ -18883,10 +19081,10 @@ leaveContext: leaveContext, setContext: setContext }; - Object.entries(dr).forEach(function (_ref8) { - var _ref9 = _slicedToArray(_ref8, 2), - prop = _ref9[0], - propVal = _ref9[1]; + Object.entries(dr).forEach(function (_ref7) { + var _ref8 = _slicedToArray(_ref7, 2), + prop = _ref8[0], + propVal = _ref8[1]; canvas[prop] = propVal; }); @@ -18920,7 +19118,7 @@ } }); /** - * Group: Document functions + * Group: Document functions. */ /** @@ -19050,12 +19248,12 @@ elem = $$9(elem).data('gsvg') || $$9(elem).data('symbol') || elem; var childs = elem.childNodes; - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; + + var _iterator3 = _createForOfIteratorHelper(childs), + _step3; try { - for (var _iterator3 = childs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { var child = _step3.value; if (child.nodeName === 'title') { @@ -19063,18 +19261,9 @@ } } } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; + _iterator3.e(err); } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { - _iterator3["return"](); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } + _iterator3.f(); } return ''; @@ -19140,12 +19329,12 @@ var docTitle = false, oldTitle = ''; var batchCmd = new BatchCommand$1('Change Image Title'); - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; + + var _iterator4 = _createForOfIteratorHelper(childs), + _step4; try { - for (var _iterator4 = childs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { + for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { var child = _step4.value; if (child.nodeName === 'title') { @@ -19155,18 +19344,9 @@ } } } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; + _iterator4.e(err); } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { - _iterator4["return"](); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } + _iterator4.f(); } if (!docTitle) { @@ -19387,7 +19567,7 @@ */ /** - * The bottom panel was updated + * The bottom panel was updated. * @event module:svgcanvas.SvgCanvas#event:ext_toolButtonStateUpdate * @type {PlainObject} * @property {boolean} nofill Indicates fill is disabled @@ -19395,7 +19575,7 @@ */ /** - * The element selection has changed (elements were added/removed from selection) + * The element selection has changed (elements were added/removed from selection). * @event module:svgcanvas.SvgCanvas#event:ext_selectedChanged * @type {PlainObject} * @property {Element[]} elems Array of the newly selected elements @@ -19412,14 +19592,14 @@ */ /** - * One or more elements were changed + * One or more elements were changed. * @event module:svgcanvas.SvgCanvas#event:ext_elementChanged * @type {PlainObject} * @property {Element[]} elems Array of the affected elements */ /** - * Invoked as soon as the locale is ready + * Invoked as soon as the locale is ready. * @event module:svgcanvas.SvgCanvas#event:ext_langReady * @type {PlainObject} * @property {string} lang The two-letter language code @@ -19442,13 +19622,13 @@ */ /** - * Called when new image is created + * Called when new image is created. * @event module:svgcanvas.SvgCanvas#event:ext_onNewDocument * @type {void} */ /** - * Called when sidepanel is resized or toggled + * Called when sidepanel is resized or toggled. * @event module:svgcanvas.SvgCanvas#event:ext_workareaResized * @type {void} */ @@ -19509,7 +19689,7 @@ currentMode = name; }; /** - * Group: Element Styling + * Group: Element Styling. */ /** @@ -20382,7 +20562,7 @@ canvas.ungroupSelectedElement(); }; /** - * Group: Element manipulation + * Group: Element manipulation. */ /** @@ -20641,7 +20821,8 @@ var _t = t, nextSibling = _t.nextSibling; - var elem = parent.removeChild(t); + t.remove(); + var elem = t; selectedCopy.push(selected); // for the copy batchCmd.addSubCommand(new RemoveElementCommand$1(elem, nextSibling, parent)); @@ -20668,18 +20849,62 @@ canvas.copySelectedElements(); canvas.deleteSelectedElements(); }; + + var CLIPBOARD_ID = 'svgedit_clipboard'; + /** + * Flash the clipboard data momentarily on localStorage so all tabs can see. + * @returns {void} + */ + + function flashStorage() { + var data = sessionStorage.getItem(CLIPBOARD_ID); + localStorage.setItem(CLIPBOARD_ID, data); + setTimeout(function () { + localStorage.removeItem(CLIPBOARD_ID); + }, 1); + } + /** + * Transfers sessionStorage from one tab to another. + * @param {!Event} ev Storage event. + * @returns {void} + */ + + + function storageChange(ev) { + if (!ev.newValue) return; // This is a call from removeItem. + + if (ev.key === CLIPBOARD_ID + '_startup') { + // Another tab asked for our sessionStorage. + localStorage.removeItem(CLIPBOARD_ID + '_startup'); + flashStorage(); + } else if (ev.key === CLIPBOARD_ID) { + // Another tab sent data. + sessionStorage.setItem(CLIPBOARD_ID, ev.newValue); + } + } // Listen for changes to localStorage. + + + window.addEventListener('storage', storageChange, false); // Ask other tabs for sessionStorage (this is ONLY to trigger event). + + localStorage.setItem(CLIPBOARD_ID + '_startup', Math.random()); /** * Remembers the current selected elements on the clipboard. * @function module:svgcanvas.SvgCanvas#copySelectedElements * @returns {void} */ - this.copySelectedElements = function () { - localStorage.setItem('svgedit_clipboard', JSON.stringify(selectedElements.map(function (x) { + var data = JSON.stringify(selectedElements.map(function (x) { return getJsonFromSvgElement(x); - }))); - $$9('#cmenu_canvas').enableContextMenuItems('#paste,#paste_in_place'); + })); // Use sessionStorage for the clipboard data. + + sessionStorage.setItem(CLIPBOARD_ID, data); + flashStorage(); + var menu = $$9('#cmenu_canvas'); // Context menu might not exist (it is provided by editor.js). + + if (menu.enableContextMenuItems) { + menu.enableContextMenuItems('#paste,#paste_in_place'); + } }; /** * @function module:svgcanvas.SvgCanvas#pasteElements @@ -20693,13 +20918,10 @@ this.pasteElements = function (type, x, y) { - var clipb = JSON.parse(localStorage.getItem('svgedit_clipboard')); + var clipb = JSON.parse(sessionStorage.getItem(CLIPBOARD_ID)); + if (!clipb) return; var len = clipb.length; - - if (!len) { - return; - } - + if (!len) return; var pasted = []; var batchCmd = new BatchCommand$1('Paste elements'); // const drawing = getCurrentDrawing(); @@ -20731,7 +20953,7 @@ clipb.forEach(checkIDs); // Give extensions like the connector extension a chance to reflect new IDs and remove invalid elements /** - * Triggered when `pasteElements` is called from a paste action (context menu or key) + * Triggered when `pasteElements` is called from a paste action (context menu or key). * @event module:svgcanvas.SvgCanvas#event:ext_IDsUpdated * @type {PlainObject} * @property {module:svgcanvas.SVGAsJSON[]} elems @@ -21116,14 +21338,19 @@ var oldParent = elem.parentNode; // Remove child title elements if (elem.tagName === 'title') { - var _elem2 = elem, - nextSibling = _elem2.nextSibling; + var nextSibling = elem.nextSibling; batchCmd.addSubCommand(new RemoveElementCommand$1(elem, nextSibling, oldParent)); elem.remove(); continue; } - children[i++] = elem = parent.insertBefore(elem, anchor); + if (anchor) { + anchor.before(elem); + } else { + g.after(elem); + } + + children[i++] = elem; batchCmd.addSubCommand(new MoveElementCommand$1(elem, oldNextSibling, oldParent)); } // remove the group from the selection @@ -21131,7 +21358,7 @@ clearSelection(); // delete the group element (but make undo-able) var gNextSibling = g.nextSibling; - g = parent.removeChild(g); + g.remove(); batchCmd.addSubCommand(new RemoveElementCommand$1(g, gNextSibling, parent)); if (!batchCmd.isEmpty()) { @@ -21535,7 +21762,7 @@ this.moveSelectedElements(dx, dy); }; /** - * Group: Additional editor tools + * Group: Additional editor tools. */ /** @@ -21647,7 +21874,29 @@ var bg = getElem('canvasBackground'); var border = $$9(bg).find('rect')[0]; var bgImg = getElem('background_image'); - border.setAttribute('fill', color); + var bgPattern = getElem('background_pattern'); + border.setAttribute('fill', color === 'chessboard' ? '#fff' : color); + + if (color === 'chessboard') { + if (!bgPattern) { + bgPattern = svgdoc.createElementNS(NS.SVG, 'foreignObject'); + assignAttributes(bgPattern, { + id: 'background_pattern', + width: '100%', + height: '100%', + preserveAspectRatio: 'xMinYMin', + style: 'pointer-events:none' + }); + var div = document.createElement('div'); + assignAttributes(div, { + style: 'pointer-events:none;width:100%;height:100%;background-image:url(data:image/gif;base64,R0lGODlhEAAQAIAAAP///9bW1iH5BAAAAAAALAAAAAAQABAAAAIfjG+gq4jM3IFLJgpswNly/XkcBpIiVaInlLJr9FZWAQA7);' + }); + bgPattern.appendChild(div); + bg.append(bgPattern); + } + } else if (bgPattern) { + bgPattern.remove(); + } if (url) { if (!bgImg) { @@ -21720,7 +21969,7 @@ * @property {module:history.HistoryCommand} BatchCommand * @property {module:history.HistoryCommand} ChangeElementCommand * @property {module:utilities.decode64} decode64 - * @property {module:utilities.dropXMLInteralSubset} dropXMLInteralSubset + * @property {module:utilities.dropXMLInternalSubset} dropXMLInternalSubset * @property {module:utilities.encode64} encode64 * @property {module:svgcanvas~ffClone} ffClone * @property {module:svgcanvas~findDuplicateGradient} findDuplicateGradient @@ -21762,7 +22011,7 @@ BatchCommand: BatchCommand$1, ChangeElementCommand: ChangeElementCommand$1, decode64: decode64, - dropXMLInteralSubset: dropXMLInteralSubset, + dropXMLInternalSubset: dropXMLInternalSubset, encode64: encode64, ffClone: ffClone, findDefs: findDefs, @@ -21950,369 +22199,8 @@ return b; } - /* - * Todo: Update to latest at https://github.com/cowboy/jquery-bbq ? - * jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010 - * http://benalman.com/projects/jquery-bbq-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ - // For sake of modules, added this wrapping export and changed `this` to `window` - function jQueryPluginBBQ (jQuery) { - (function ($, p) { - var i, - m = Array.prototype.slice, - r = decodeURIComponent, - a = $.param, - c, - l, - v, - b = $.bbq = $.bbq || {}, - q, - u, - j, - e = $.event.special, - d = "hashchange", - A = "querystring", - D = "fragment", - y = "elemUrlAttr", - g = "location", - k = "href", - t = "src", - x = /^.*\?|#.*$/g, - w = /^.*\#/, - h, - C = {}; - - function E(F) { - return typeof F === "string"; - } - - function B(G) { - var F = m.call(arguments, 1); - return function () { - return G.apply(this, F.concat(m.call(arguments))); - }; - } - - function n(F) { - return F.replace(/^[^#]*#?(.*)$/, "$1"); - } - - function o(F) { - return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/, "$1"); - } - - function f(H, M, F, I, G) { - var O, L, K, N, J; - - if (I !== i) { - K = F.match(H ? /^([^#]*)\#?(.*)$/ : /^([^#?]*)\??([^#]*)(#?.*)/); - J = K[3] || ""; - - if (G === 2 && E(I)) { - L = I.replace(H ? w : x, ""); - } else { - N = l(K[2]); - I = E(I) ? l[H ? D : A](I) : I; - L = G === 2 ? I : G === 1 ? $.extend({}, I, N) : $.extend({}, N, I); - L = a(L); - - if (H) { - L = L.replace(h, r); - } - } - - O = K[1] + (H ? "#" : L || !K[1] ? "?" : "") + L + J; - } else { - O = M(F !== i ? F : p[g][k]); - } - - return O; - } - - a[A] = B(f, 0, o); - a[D] = c = B(f, 1, n); - - c.noEscape = function (G) { - G = G || ""; - var F = $.map(G.split(""), encodeURIComponent); - h = new RegExp(F.join("|"), "g"); - }; - - c.noEscape(",/"); - - $.deparam = l = function l(I, F) { - var H = {}, - G = { - "true": !0, - "false": !1, - "null": null - }; - $.each(I.replace(/\+/g, " ").split("&"), function (L, Q) { - var K = Q.split("="), - P = r(K[0]), - J, - O = H, - M = 0, - R = P.split("]["), - N = R.length - 1; - - if (/\[/.test(R[0]) && /\]$/.test(R[N])) { - R[N] = R[N].replace(/\]$/, ""); - R = R.shift().split("[").concat(R); - N = R.length - 1; - } else { - N = 0; - } - - if (K.length === 2) { - J = r(K[1]); - - if (F) { - J = J && !isNaN(J) ? +J : J === "undefined" ? i : G[J] !== i ? G[J] : J; - } - - if (N) { - for (; M <= N; M++) { - P = R[M] === "" ? O.length : R[M]; - O = O[P] = M < N ? O[P] || (R[M + 1] && isNaN(R[M + 1]) ? {} : []) : J; - } - } else { - if ($.isArray(H[P])) { - H[P].push(J); - } else { - if (H[P] !== i) { - H[P] = [H[P], J]; - } else { - H[P] = J; - } - } - } - } else { - if (P) { - H[P] = F ? i : ""; - } - } - }); - return H; - }; - - function z(H, F, G) { - if (F === i || typeof F === "boolean") { - G = F; - F = a[H ? D : A](); - } else { - F = E(F) ? F.replace(H ? w : x, "") : F; - } - - return l(F, G); - } - - l[A] = B(z, 0); - l[D] = v = B(z, 1); - $[y] || ($[y] = function (F) { - return $.extend(C, F); - })({ - a: k, - base: k, - iframe: t, - img: t, - input: t, - form: "action", - link: k, - script: t - }); - j = $[y]; - - function s(I, G, H, F) { - if (!E(H) && _typeof(H) !== "object") { - F = H; - H = G; - G = i; - } - - return this.each(function () { - var L = $(this), - J = G || j()[(this.nodeName || "").toLowerCase()] || "", - K = J && L.attr(J) || ""; - L.attr(J, a[I](K, H, F)); - }); - } - - $.fn[A] = B(s, A); - $.fn[D] = B(s, D); - - b.pushState = q = function q(I, F) { - if (E(I) && /^#/.test(I) && F === i) { - F = 2; - } - - var H = I !== i, - G = c(p[g][k], H ? I : {}, H ? F : 2); - p[g][k] = G + (/#/.test(G) ? "" : "#"); - }; - - b.getState = u = function u(F, G) { - return F === i || typeof F === "boolean" ? v(F) : v(G)[F]; - }; - - b.removeState = function (F) { - var G = {}; - - if (F !== i) { - G = u(); - $.each($.isArray(F) ? F : arguments, function (I, H) { - delete G[H]; - }); - } - - q(G, 2); - }; - - e[d] = $.extend(e[d], { - add: function add(F) { - var H; - - function G(J) { - var I = J[D] = c(); - - J.getState = function (K, L) { - return K === i || typeof K === "boolean" ? l(I, K) : l(I, L)[K]; - }; - - H.apply(this, arguments); - } - - if ($.isFunction(F)) { - H = F; - return G; - } else { - H = F.handler; - F.handler = G; - } - } - }); - })(jQuery, window); - /* - * jQuery hashchange event - v1.2 - 2/11/2010 - * http://benalman.com/projects/jquery-hashchange-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ - - - (function ($, i, b) { - var j, - k = $.event.special, - c = "location", - d = "hashchange", - l = "href", - f = $.browser, - g = document.documentMode, - h = f.msie && (g === b || g < 8), - e = "on" + d in i && !h; - - function a(m) { - m = m || i[c][l]; - return m.replace(/^[^#]*#?(.*)$/, "$1"); - } - - $[d + "Delay"] = 100; - k[d] = $.extend(k[d], { - setup: function setup() { - if (e) { - return false; - } - - $(j.start); - }, - teardown: function teardown() { - if (e) { - return false; - } - - $(j.stop); - } - }); - - j = function () { - var m = {}, - r, - n, - o, - q; - - function p() { - o = q = function q(s) { - return s; - }; - - if (h) { - n = $('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow; - - q = function q() { - return a(n.document[c][l]); - }; - - o = function o(u, s) { - if (u !== s) { - var t = n.document; - t.open().close(); - t[c].hash = "#" + u; - } - }; - - o(a()); - } - } - - m.start = function () { - if (r) { - return; - } - - var t = a(); - o || p(); - - (function s() { - var v = a(), - u = q(t); - - if (v !== t) { - o(t = v, u); - $(i).trigger(d); - } else { - if (u !== t) { - i[c][l] = i[c][l].replace(/#.*/, "") + "#" + u; - } - } - - r = setTimeout(s, $[d + "Delay"]); - })(); - }; - - m.stop = function () { - if (!n) { - r && clearTimeout(r); - r = 0; - } - }; - - return m; - }(); - })(jQuery, window); - - return jQuery; - } - - // Todo: Move to own module (and have it import a modular base64 encoder) /** - * SVG Icon Loader 2.0 + * @file SVG Icon Loader 2.0 * * jQuery Plugin for loading SVG icons from a single file * @@ -22396,7 +22284,6 @@ }); }); */ - var isOpera$1 = Boolean(window.opera); var fixIDs = function fixIDs(svgEl, svgNum, force) { @@ -22459,6 +22346,7 @@ /** * @callback module:jQuerySVGIcons.SVGIconsLoadedCallback * @param {PlainObject<string, external:jQuery>} svgIcons IDs keyed to jQuery objects of images + * @returns {void} */ /** @@ -22472,13 +22360,13 @@ var svgIcons = {}; /** * Map of raster images with each key being the SVG icon ID - * to replace, and the value the image file name + * to replace, and the value the image file name. * @typedef {PlainObject<string, string>} external:jQuery.svgIcons.Fallback */ /** * Map of raster images with each key being the SVG icon ID - * whose `alt` will be set, and the value being the `alt` text + * whose `alt` will be set, and the value being the `alt` text. * @typedef {PlainObject<string, string>} external:jQuery.svgIcons.Alts */ @@ -22893,7 +22781,7 @@ } /** - * jGraduate 0.4 + * @file jGraduate 0.4 * * jQuery Plugin for a gradient picker * @@ -22911,6 +22799,8 @@ * @example $.jGraduate.Paint({hex: '#rrggbb', linearGradient: o}); // throws an exception? */ + /* eslint-disable jsdoc/require-property */ + /** * The jQuery namespace. * @external jQuery @@ -22922,6 +22812,8 @@ * @memberof external:jQuery * @see {@link http://learn.jquery.com/plugins/|jQuery Plugins} */ + + /* eslint-enable jsdoc/require-property */ var ns = { svg: 'http://www.w3.org/2000/svg', xlink: 'http://www.w3.org/1999/xlink' @@ -22959,11 +22851,11 @@ } /** * @typedef {PlainObject} module:jGraduate.jGraduatePaintOptions - * @param {Float} [alpha] - * @param {module:jGraduate~Paint} [copy] Copy paint object - * @param {SVGLinearGradientElement} [linearGradient] - * @param {SVGRadialGradientElement} [radialGradient] - * @param {string} [solidColor] + * @property {Float} [alpha] + * @property {module:jGraduate~Paint} [copy] Copy paint object + * @property {SVGLinearGradientElement} [linearGradient] + * @property {SVGRadialGradientElement} [radialGradient] + * @property {string} [solidColor] */ /** @@ -22988,14 +22880,14 @@ */ this.type = options.copy.type; /** - * Represents opacity (0-100) + * Represents opacity (0-100). * @name module:jGraduate~Paint#alpha * @type {Float} */ this.alpha = options.copy.alpha; /** - * Represents #RRGGBB hex of color + * Represents #RRGGBB hex of color. * @name module:jGraduate~Paint#solidColor * @type {string} */ @@ -23051,6 +22943,8 @@ this.radialGradient = null; } }; + /* eslint-disable jsdoc/require-property */ + /** * @namespace {PlainObject} jGraduate * @memberof external:jQuery @@ -23060,6 +22954,8 @@ $.jGraduate = /** @lends external:jQuery.jGraduate */ { + /* eslint-enable jsdoc/require-property */ + /** * @class external:jQuery.jGraduate.Paint * @see module:jGraduate~Paint @@ -23077,7 +22973,7 @@ /** @lends external:jQuery.fn.jGraduateDefaults */ { /** - * Creates an object with a 'none' color + * Creates an object with a 'none' color. * @type {external:jQuery.jGraduate.Paint} * @see module:jGraduate.Options */ @@ -23343,7 +23239,7 @@ for (var i = 0; i < 6; i += 2) { // const ch = color.substr(i, 2); - var inv = (255 - parseInt(color.substr(i, 2), 16)).toString(16); + var inv = (255 - Number.parseInt(color.substr(i, 2), 16)).toString(16); if (inv.length < 2) inv = 0 + inv; inverted += inv; } @@ -23366,14 +23262,14 @@ } } - var x1 = parseFloat(grad.getAttribute('x1') || 0.0), - y1 = parseFloat(grad.getAttribute('y1') || 0.0), - x2 = parseFloat(grad.getAttribute('x2') || 1.0), - y2 = parseFloat(grad.getAttribute('y2') || 0.0); - var cx = parseFloat(grad.getAttribute('cx') || 0.5), - cy = parseFloat(grad.getAttribute('cy') || 0.5), - fx = parseFloat(grad.getAttribute('fx') || cx), - fy = parseFloat(grad.getAttribute('fy') || cy); + var x1 = Number.parseFloat(grad.getAttribute('x1') || 0.0), + y1 = Number.parseFloat(grad.getAttribute('y1') || 0.0), + x2 = Number.parseFloat(grad.getAttribute('x2') || 1.0), + y2 = Number.parseFloat(grad.getAttribute('y2') || 0.0); + var cx = Number.parseFloat(grad.getAttribute('cx') || 0.5), + cy = Number.parseFloat(grad.getAttribute('cy') || 0.5), + fx = Number.parseFloat(grad.getAttribute('fx') || cx), + fy = Number.parseFloat(grad.getAttribute('fy') || cy); var previewRect = mkElem('rect', { id: id + '_jgraduate_rect', x: MARGINX, @@ -23436,7 +23332,7 @@ attrInput[attr] = $('#' + id + '_jGraduate_' + attr).val(attrval).change(function () { // TODO: Support values < 0 and > 1 (zoomable preview?) - if (isNaN(parseFloat(this.value)) || this.value < 0) { + if (isNaN(Number.parseFloat(this.value)) || this.value < 0) { this.value = 0.0; } else if (this.value > 1) { this.value = 1.0; @@ -23506,7 +23402,7 @@ var stopOpacity = Number(stop.getAttribute('stop-opacity')) || 1; var stopColor = stop.getAttribute('stop-color') || 1; - var thisAlpha = (parseFloat(stopOpacity) * 255).toString(16); + var thisAlpha = (Number.parseFloat(stopOpacity) * 255).toString(16); while (thisAlpha.length < 2) { thisAlpha = '0' + thisAlpha; @@ -23864,7 +23760,7 @@ var _slider = slider, left = _slider.offset.left; var div = slider.parent; - var x = e.pageX - left - parseInt(div.css('border-left-width')); + var x = e.pageX - left - Number.parseInt(div.css('border-left-width')); if (x > SLIDERW) x = SLIDERW; if (x <= 0) x = 0; var posx = x - 5; @@ -23879,7 +23775,7 @@ break; case 'opacity': - $this.paint.alpha = parseInt(x * 100); + $this.paint.alpha = Number.parseInt(x * 100); previewRect.setAttribute('fill-opacity', x); break; @@ -24176,55 +24072,57 @@ } /** - * SpinButton control + * SpinButton control. * * Adds bells and whistles to any ordinary textbox to * make it look and feel like a SpinButton Control. * - * Supplies {@link external:jQuery.fn.SpinButton} (and also {@link external:jQuery.loadingStylesheets}) + * Supplies {@link external:jQuery.fn.SpinButton} (and also {@link external:jQuery.loadingStylesheets}). * - * Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006. - * - Added min/max options - * - Added step size option - * - Added bigStep (page up/down) option + * Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006: + * - Added min/max options. + * - Added step size option. + * - Added bigStep (page up/down) option. * * Modifications made by Mark Gibson, (mgibson@designlinks.net) September 2006: - * - Converted to jQuery plugin - * - Allow limited or unlimited min/max values - * - Allow custom class names, and add class to input element - * - Removed global vars - * - Reset (to original or through config) when invalid value entered - * - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat) - * - Support mouse wheel in Firefox - * - Fix double click in IE - * - Refactored some code and renamed some vars + * - Converted to jQuery plugin. + * - Allow limited or unlimited min/max values. + * - Allow custom class names, and add class to input element. + * - Removed global vars. + * - Reset (to original or through config) when invalid value entered. + * - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat). + * - Support mouse wheel in Firefox. + * - Fix double click in IE. + * - Refactored some code and renamed some vars. * * Modifications by Jeff Schiller, June 2009: * - provide callback function for when the value changes based on the following - * {@link https://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html} + * {@link https://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html}. * * Modifications by Jeff Schiller, July 2009: - * - improve styling for widget in Opera - * - consistent key-repeat handling cross-browser + * - improve styling for widget in Opera. + * - consistent key-repeat handling cross-browser. * * Modifications by Alexis Deveria, October 2009: - * - provide "stepfunc" callback option to allow custom function to run when changing a value + * - provide "stepfunc" callback option to allow custom function to run when changing a value. * - Made adjustValue(0) only run on certain keyup events, not all. * - * Tested in IE6, Opera9, Firefox 1.5 + * Tested in IE6, Opera9, Firefox 1.5. * - * | Version | Date | Author | Notes - * |---------|------|--------|------| - * | v1.0 | 11 Aug 2006 | George Adamson | First release - * | v1.1 | Aug 2006 | George Adamson | Minor enhancements - * | v1.2 | 27 Sep 2006 | Mark Gibson | Major enhancements - * | v1.3a | 28 Sep 2006 | George Adamson | Minor enhancements - * | v1.4 | 18 Jun 2009 | Jeff Schiller | Added callback function - * | v1.5 | 06 Jul 2009 | Jeff Schiller | Fixes for Opera. - * | v1.6 | 13 Oct 2009 | Alexis Deveria | Added stepfunc function - * | v1.7 | 21 Oct 2009 | Alexis Deveria | Minor fixes.<br />Fast-repeat for keys and live updating as you type. - * | v1.8 | 12 Jan 2010 | Benjamin Thomas | Fixes for mouseout behavior.<br />Added smallStep + * | Version | Date | Author | Notes | + * |---------|------|--------|-------| + * | v1.0 | 11 Aug 2006 | George Adamson | First release | + * | v1.1 | Aug 2006 | George Adamson | Minor enhancements | + * | v1.2 | 27 Sep 2006 | Mark Gibson | Major enhancements | + * | v1.3a | 28 Sep 2006 | George Adamson | Minor enhancements | + * | v1.4 | 18 Jun 2009 | Jeff Schiller | Added callback function | + * | v1.5 | 06 Jul 2009 | Jeff Schiller | Fixes for Opera. | + * | v1.6 | 13 Oct 2009 | Alexis Deveria | Added stepfunc function | + * | v1.7 | 21 Oct 2009 | Alexis Deveria | Minor fixes.<br />Fast-repeat for keys and live updating as you type. | + * | v1.8 | 12 Jan 2010 | Benjamin Thomas | Fixes for mouseout behavior.<br />Added smallStep | * | v1.9 | 20 May 2018 | Brett Zamir | Avoid SVGEdit dependency via `stateObj` config;<br />convert to ES6 module | + * . + * * @module jQuerySpinButton * @example // Create group of settings to initialise spinbutton(s). (Optional) @@ -24328,9 +24226,9 @@ this.spinCfg = { // min: cfg.min ? Number(cfg.min) : null, // max: cfg.max ? Number(cfg.max) : null, - min: !isNaN(parseFloat(cfg.min)) ? Number(cfg.min) : null, + min: !isNaN(Number.parseFloat(cfg.min)) ? Number(cfg.min) : null, // Fixes bug with min:0 - max: !isNaN(parseFloat(cfg.max)) ? Number(cfg.max) : null, + max: !isNaN(Number.parseFloat(cfg.max)) ? Number(cfg.max) : null, step: cfg.step ? Number(cfg.step) : 1, stepfunc: cfg.stepfunc || false, page: cfg.page ? Number(cfg.page) : 10, @@ -24545,29 +24443,12 @@ return $; } - /** - * jQuery Context Menu Plugin - * Cory S.N. LaViska - * A Beautiful Site ({@link https://abeautifulsite.net/}) - * Modified by Alexis Deveria - * - * More info: {@link https://abeautifulsite.net/2008/09/jquery-context-menu-plugin/} - * - * @module jQueryContextMenu - * @todo Update to latest version and adapt (and needs jQuery update as well): {@link https://github.com/swisnl/jQuery-contextMenu} - * @version 1.0.1 - * - * @license (MIT OR GPL-2.0-or-later) - * - * This plugin is dual-licensed under the GNU General Public License - * and the MIT License and is copyright A Beautiful Site, LLC. - * - */ /** * @callback module:jQueryContextMenu.jQueryContextMenuListener * @param {string} href The `href` value after the first character (for bypassing an initial `#`) * @param {external:jQuery} srcElement The wrapped jQuery srcElement * @param {{x: Float, y: Float, docX: Float, docY: Float}} coords + * @returns {void} */ /** @@ -24761,28 +24642,20 @@ $(this).each(function () { if (o !== undefined) { var d = o.split(','); - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + + var _iterator = _createForOfIteratorHelper(d), + _step; try { - for (var _iterator = d[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + for (_iterator.s(); !(_step = _iterator.n()).done;) { var href = _step.value; + // eslint-disable-next-line unicorn/no-fn-reference-in-iterator $(this).find('A[href="' + href + '"]').parent().addClass('disabled'); } } catch (err) { - _didIteratorError = true; - _iteratorError = err; + _iterator.e(err); } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + _iterator.f(); } } }); @@ -24805,28 +24678,20 @@ $(this).each(function () { if (o !== undefined) { var d = o.split(','); - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + + var _iterator2 = _createForOfIteratorHelper(d), + _step2; try { - for (var _iterator2 = d[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var href = _step2.value; + // eslint-disable-next-line unicorn/no-fn-reference-in-iterator $(this).find('A[href="' + href + '"]').parent().removeClass('disabled'); } } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; + _iterator2.e(err); } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } + _iterator2.f(); } } }); @@ -24877,7 +24742,7 @@ /* eslint-disable no-bitwise */ /** - * jPicker (Adapted from version 1.1.6) + * @file jPicker (Adapted from version 1.1.6) * * jQuery Plugin for Photoshop style color picker * @@ -24954,13 +24819,15 @@ * Encapsulate slider functionality for the ColorMap and ColorBar - * could be useful to use a jQuery UI draggable for this with certain extensions. * @memberof module:jPicker - * @param {external:jQuery} bar - * @param {module:jPicker.SliderOptions} options - * @returns {void} */ - var Slider = function Slider(bar, options) { + var Slider = + /** + * @param {external:jQuery} bar + * @param {module:jPicker.SliderOptions} options + */ + function Slider(bar, options) { _classCallCheck(this, Slider); var that = this; @@ -25366,14 +25233,17 @@ }; /** * Controls for all the input elements for the typing in color values. + */ + + + var ColorValuePicker = + /** * @param {external:jQuery} picker * @param {external:jQuery.jPicker.Color} color * @param {external:jQuery.fn.$.fn.jPicker} bindedHex * @param {Float} alphaPrecision */ - - - var ColorValuePicker = function ColorValuePicker(picker, color, bindedHex, alphaPrecision) { + function ColorValuePicker(picker, color, bindedHex, alphaPrecision) { _classCallCheck(this, ColorValuePicker); var that = this; // private properties and methods @@ -25439,12 +25309,12 @@ case alpha && alpha.get(0): switch (e.keyCode) { case 38: - alpha.val(setValueInRange.call(that, parseFloat(alpha.val()) + 1, 0, 100)); + alpha.val(setValueInRange.call(that, Number.parseFloat(alpha.val()) + 1, 0, 100)); color.val('a', toFixedNumeric(alpha.val() * 255 / 100, alphaPrecision), e.target); return false; case 40: - alpha.val(setValueInRange.call(that, parseFloat(alpha.val()) - 1, 0, 100)); + alpha.val(setValueInRange.call(that, Number.parseFloat(alpha.val()) - 1, 0, 100)); color.val('a', toFixedNumeric(alpha.val() * 255 / 100, alphaPrecision), e.target); return false; } @@ -25561,7 +25431,7 @@ case ahex && ahex.get(0): ahex.val(ahex.val().replace(/[^a-fA-F\d]/g, '').toLowerCase().substring(0, 2)); - color.val('a', !isNullish$1(ahex.val()) ? parseInt(ahex.val(), 16) : null, e.target); + color.val('a', !isNullish$1(ahex.val()) ? Number.parseInt(ahex.val(), 16) : null, e.target); break; } @@ -25725,6 +25595,8 @@ * @property {string} [ahex] */ + /* eslint-disable jsdoc/require-property */ + /** * @namespace {PlainObject} jPicker * @memberof external:jQuery @@ -25734,8 +25606,10 @@ $.jPicker = /** @lends external:jQuery.jPicker */ { + /* eslint-enable jsdoc/require-property */ + /** - * Array holding references to each active instance of the jPicker control + * Array holding references to each active instance of the jPicker control. * @type {external:jQuery.fn.$.fn.jPicker[]} */ List: [], @@ -26129,7 +26003,7 @@ }, /** - * color conversion methods - make public to give use to external scripts + * Color conversion methods - make public to give use to external scripts. * @namespace */ ColorMethods: { @@ -26227,7 +26101,7 @@ * @returns {Integer} */ hexToInt: function hexToInt(hex) { - return parseInt(hex, 16); + return Number.parseInt(hex, 16); }, /** @@ -26270,7 +26144,7 @@ if (!hsv.s) hsv.h = 0;else { delta = max - min; if (r === max) hsv.h = (g - b) / delta;else if (g === max) hsv.h = 2 + (b - r) / delta;else hsv.h = 4 + (r - g) / delta; - hsv.h = parseInt(hsv.h * 60); + hsv.h = Number.parseInt(hsv.h * 60); if (hsv.h < 0) hsv.h += 360; } hsv.s = hsv.s * 100 | 0; @@ -26358,13 +26232,17 @@ List = _$$jPicker.List, ColorMethods = _$$jPicker.ColorMethods; // local copies for YUI compressor + /* eslint-disable jsdoc/require-returns */ + /** * @function external:jQuery.fn.jPicker * @see {@link external:jQuery.fn.$.fn.jPicker} */ + /* eslint-enable jsdoc/require-returns */ + /** - * Will be bound to active {@link jQuery.jPicker.Color} + * Will be bound to active {@link jQuery.jPicker.Color}. * @callback module:jPicker.LiveCallback * @param {external:jQuery} ui * @param {Element} context @@ -26438,7 +26316,7 @@ settings.window.liveUpdate = false; // Basic control binding for inline use - You will need to override the liveCallback or commitCallback function to retrieve results } - var isLessThanIE7 = parseFloat(navigator.appVersion.split('MSIE')[1]) < 7 && document.body.filters; // needed to run the AlphaImageLoader function for IE6 + var isLessThanIE7 = Number.parseFloat(navigator.appVersion.split('MSIE')[1]) < 7 && document.body.filters; // needed to run the AlphaImageLoader function for IE6 // set color mode and update visuals for the new color mode /** @@ -27181,6 +27059,7 @@ function radioClicked(e) { + // eslint-disable-next-line unicorn/no-fn-reference-in-iterator $(this).parents('tbody:first').find('input:radio[value!="' + e.target.value + '"]').removeAttr('checked'); setColorMode.call(that, e.target.value); } @@ -27267,8 +27146,8 @@ function moveBarMouseDown(e) { // const {element} = settings.window, // local copies for YUI compressor // {page} = settings.window; - elementStartX = parseInt(container.css('left')); - elementStartY = parseInt(container.css('top')); + elementStartX = Number.parseInt(container.css('left')); + elementStartY = Number.parseInt(container.css('top')); pageStartX = e.pageX; pageStartY = e.pageY; // bind events to document to move window - we will unbind these on mouseup @@ -27450,9 +27329,9 @@ }); container.css( // positions must be set and display set to absolute before source code injection or IE will size the container to fit the window { - left: win.position.x === 'left' ? popup.offset().left - 530 - (win.position.y === 'center' ? 25 : 0) + 'px' : win.position.x === 'center' ? popup.offset().left - 260 + 'px' : win.position.x === 'right' ? popup.offset().left - 10 + (win.position.y === 'center' ? 25 : 0) + 'px' : win.position.x === 'screenCenter' ? ($(document).width() >> 1) - 260 + 'px' : popup.offset().left + parseInt(win.position.x) + 'px', + left: win.position.x === 'left' ? popup.offset().left - 530 - (win.position.y === 'center' ? 25 : 0) + 'px' : win.position.x === 'center' ? popup.offset().left - 260 + 'px' : win.position.x === 'right' ? popup.offset().left - 10 + (win.position.y === 'center' ? 25 : 0) + 'px' : win.position.x === 'screenCenter' ? ($(document).width() >> 1) - 260 + 'px' : popup.offset().left + Number.parseInt(win.position.x) + 'px', position: 'absolute', - top: win.position.y === 'top' ? popup.offset().top - 312 + 'px' : win.position.y === 'center' ? popup.offset().top - 156 + 'px' : win.position.y === 'bottom' ? popup.offset().top + 25 + 'px' : popup.offset().top + parseInt(win.position.y) + 'px' + top: win.position.y === 'top' ? popup.offset().top - 312 + 'px' : win.position.y === 'center' ? popup.offset().top - 156 + 'px' : win.position.y === 'bottom' ? popup.offset().top + 25 + 'px' : popup.offset().top + Number.parseInt(win.position.y) + 'px' }); } else { container = $(that); @@ -27756,7 +27635,7 @@ * @property {"left"|"center"|"right"|"screenCenter"|Float} window.position.x Relative px value * @property {"top"|"bottom"|"center"|Float} window.position.y Relative px value * @property {boolean} window.expandable Defaults to large static picker - set to `true` to make an expandable - * picker (small icon with popup) - set automatically when binded to input element + * picker (small icon with popup) - set automatically when binded to input element; added by `$.fn.jPicker` * @property {boolean} window.liveUpdate Set `false` if you want the user to have to click "OK" before the * binded input box updates values (always `true` for expandable picker) * @property {boolean} window.alphaSupport Set to `true` to enable alpha picking @@ -27764,7 +27643,6 @@ * not map directly to percentage integers - range 0-2 * @property {boolean} window.updateInputColor Set to `false` to prevent binded input colors from changing * @property {boolean} [window.bindToInput] Added by `$.fn.jPicker` - * @property {boolean} [window.expandable] Added by `$.fn.jPicker` * @property {external:jQuery} [window.input] Added by `$.fn.jPicker` * @property {PlainObject} color * @property {"h"|"s"|"v"|"r"|"g"|"b"|"a"} color.mode Symbols stand for "h" (hue), "s" (saturation), "v" (value), "r" (red), "g" (green), "b" (blue), "a" (alpha) @@ -27803,8 +27681,8 @@ */ /** - * jPicker defaults - you can change anything in this section (such as the - * clientPath to your images) without fear of breaking the program + * The jPicker defaults - you can change anything in this section (such as the + * clientPath to your images) without fear of breaking the program. * @namespace {external:jQuery.fn.jPickerOptions} defaults * @memberof external:jQuery.fn.$.fn.jPicker * @borrows external:jQuery.fn.jPickerOptions as external:jQuery.fn.jPicker.defaults @@ -28237,6 +28115,8 @@ if (!val) { console.log(sel); // eslint-disable-line no-console + + return; // keep old text when has no translation } if (ids) { @@ -28278,7 +28158,7 @@ }; /** * The "data" property is generally set to an an array of objects with - * "id" and "title" or "textContent" properties + * "id" and "title" or "textContent" properties. * @typedef {PlainObject} module:locale.AddLangExtensionLocaleData * @property {module:locale.LocaleStrings[]} data See {@tutorial LocaleDocs} */ @@ -28318,12 +28198,8 @@ * @returns {Promise<module:locale.LangAndData>} Resolves to [`LangAndData`]{@link module:locale.LangAndData} */ - var readLang = - /*#__PURE__*/ - function () { - var _ref3 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee(langData) { + var readLang = /*#__PURE__*/function () { + var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(langData) { var more, _langData, tools, properties, config, layers, common, ui, opts, ariaLabels; return regeneratorRuntime.wrap(function _callee$(_context) { @@ -28399,6 +28275,8 @@ tool_import: tools.import_doc, tool_open: tools.open_doc, tool_save: tools.save_doc, + tool_editor_prefs: config.editor_prefs, + tool_editor_homepage: tools.editor_homepage, svginfo_units_rulers: config.units_and_rulers, svginfo_rulers_onoff: config.show_rulers, svginfo_unit: config.base_unit, @@ -28571,12 +28449,8 @@ * @returns {Promise<module:locale.LangAndData>} Resolves to result of {@link module:locale.readLang} */ - var putLocale = - /*#__PURE__*/ - function () { - var _ref8 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee2(givenParam, goodLangs, conf) { + var putLocale = /*#__PURE__*/function () { + var _ref8 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(givenParam, goodLangs, conf) { var url; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { @@ -28584,44 +28458,33 @@ case 0: if (givenParam) { langParam = givenParam; - } else { - langParam = $$a.pref('lang'); + } else if (navigator.userLanguage) { + // Explorer + langParam = navigator.userLanguage; + } else if (navigator.language) { + // FF, Opera, ... + langParam = navigator.language; + } - if (!langParam) { - if (navigator.userLanguage) { - // Explorer - langParam = navigator.userLanguage; - } else if (navigator.language) { - // FF, Opera, ... - langParam = navigator.language; - } - } - - console.log('Lang: ' + langParam); // eslint-disable-line no-console - // Set to English if language is not in list of good langs - - if (!goodLangs.includes(langParam) && langParam !== 'test') { - langParam = 'en'; - } // don't bother on first run if language is English - // The following line prevents setLang from running - // extensions which depend on updated uiStrings, - // so commenting it out. - // if (langParam.startsWith('en')) {return;} + console.log('Lang: ' + langParam); // eslint-disable-line no-console + // Set to English if language is not in list of good langs + if (!goodLangs.includes(langParam) && langParam !== 'test') { + langParam = 'en'; } url = conf.langPath + 'lang.' + langParam + '.js'; _context2.t0 = readLang; - _context2.next = 5; + _context2.next = 7; return importSetGlobalDefault(url, { global: 'svgEditorLang_' + langParam.replace(/-/g, '_') }); - case 5: + case 7: _context2.t1 = _context2.sent; return _context2.abrupt("return", (0, _context2.t0)(_context2.t1)); - case 7: + case 9: case "end": return _context2.stop(); } @@ -28795,24 +28658,8 @@ })); } - /** - * The main module for the visual SVG Editor - * - * @license MIT - * - * @copyright 2010 Alexis Deveria - * 2010 Pavol Rusnak - * 2010 Jeff Schiller - * 2010 Narendra Sisodiya - * 2014 Brett Zamir - * @exports module:SVGEditor - * @borrows module:locale.putLocale as putLocale - * @borrows module:locale.readLang as readLang - * @borrows module:locale.setStrings as setStrings - */ - var editor = {}; - var $$b = [jQueryPluginJSHotkeys, jQueryPluginBBQ, jQueryPluginSVGIcons, jQueryPluginJGraduate, jQueryPluginSpinButton, jQueryPluginSVG, jQueryContextMenu, jPicker].reduce(function (jq, func) { + var $$b = [jQueryPluginJSHotkeys, jQueryPluginSVGIcons, jQueryPluginJGraduate, jQueryPluginSpinButton, jQueryPluginSVG, jQueryContextMenu, jPicker].reduce(function (jq, func) { return func(jq); }, jQuery); /* @@ -28821,6 +28668,7 @@ } */ + var homePage = 'https://github.com/SVG-Edit/svgedit'; var stylesheet = 'svg-editor.css'; if (!$$b.loadingStylesheets.includes(stylesheet)) { @@ -28875,7 +28723,7 @@ */ /** - * Preferences + * Preferences. * @interface module:SVGEditor.Prefs * @property {string} [lang="en"] Two-letter language code. The language must exist in the Editor Preferences language list. Defaults to "en" if `locale.js` detection does not detect another language. * @property {module:SVGEditor.IconSize} [iconsize="s"|"m"] Size of the toolbar icons. Will default to 's' if the window height is smaller than the minimum height and 'm' otherwise. @@ -28899,13 +28747,13 @@ // EDITOR OPTIONS (DIALOG) /** - * Default to "en" if locale.js detection does not detect another language + * Default to "en" if locale.js detection does not detect another language. */ lang: '', /** - * Will default to 's' if the window height is smaller than the minimum height and - * 'm' otherwise + * Will default to 's' if the window height is smaller than the minimum + * height and 'm' otherwise. */ iconsize: '', bkgd_color: '#FFF', @@ -29073,13 +28921,13 @@ }, /** - * LOCALE + * LOCALE. * @name module:SVGEditor.uiStrings * @type {PlainObject} */ uiStrings$1 = editor.uiStrings = {}; var svgCanvas, - urldata, + urldata = {}, isReady = false, customExportImage = false, customExportPDF = false, @@ -29133,10 +28981,8 @@ function _loadSvgString() { - _loadSvgString = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee23(str) { - var _ref46, + _loadSvgString = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee23(str) { + var _ref42, noAlert, success, _args23 = arguments; @@ -29145,7 +28991,7 @@ while (1) { switch (_context23.prev = _context23.next) { case 0: - _ref46 = _args23.length > 1 && _args23[1] !== undefined ? _args23[1] : {}, noAlert = _ref46.noAlert; + _ref42 = _args23.length > 1 && _args23[1] !== undefined ? _args23[1] : {}, noAlert = _ref42.noAlert; success = svgCanvas.setSvgString(str) !== false; if (!success) { @@ -29191,80 +29037,79 @@ * @param {string} [localeInfo.lang=defaultLang] Defaults to `defaultLang` of {@link module:SVGEditor~getImportLocale} * @returns {Promise<module:locale.LocaleStrings>} Resolves to {@link module:locale.LocaleStrings} */ - return ( - /*#__PURE__*/ - function () { - var _importLocaleDefaulting = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee() { - var _ref2, - _ref2$name, - name, - _ref2$lang, - lang, - importLocale, - _args = arguments; + return /*#__PURE__*/function () { + var _importLocaleDefaulting = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var _ref2, + _ref2$name, + name, + _ref2$lang, + lang, + importLocale, + _args = arguments; - return regeneratorRuntime.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - importLocale = function _ref3(language) { - var url = "".concat(curConfig.extPath, "ext-locale/").concat(name, "/").concat(language, ".js"); - return importSetGlobalDefault(url, { - global: "svgEditorExtensionLocale_".concat(name, "_").concat(language.replace(/-/g, '_')) - }); - }; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + importLocale = function _importLocale(language) { + var url = "".concat(curConfig.extPath, "ext-locale/").concat(name, "/").concat(language, ".js"); + return importSetGlobalDefault(url, { + global: "svgEditorExtensionLocale_".concat(name, "_").concat(language.replace(/-/g, '_')) + }); + }; - _ref2 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, _ref2$name = _ref2.name, name = _ref2$name === void 0 ? defaultName : _ref2$name, _ref2$lang = _ref2.lang, lang = _ref2$lang === void 0 ? defaultLang : _ref2$lang; - _context.prev = 2; - _context.next = 5; - return importLocale(lang); + _ref2 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, _ref2$name = _ref2.name, name = _ref2$name === void 0 ? defaultName : _ref2$name, _ref2$lang = _ref2.lang, lang = _ref2$lang === void 0 ? defaultLang : _ref2$lang; + _context.prev = 2; + _context.next = 5; + return importLocale(lang); - case 5: - return _context.abrupt("return", _context.sent); + case 5: + return _context.abrupt("return", _context.sent); - case 8: - _context.prev = 8; - _context.t0 = _context["catch"](2); - return _context.abrupt("return", importLocale('en')); + case 8: + _context.prev = 8; + _context.t0 = _context["catch"](2); + return _context.abrupt("return", importLocale('en')); - case 11: - case "end": - return _context.stop(); - } + case 11: + case "end": + return _context.stop(); } - }, _callee, null, [[2, 8]]); - })); + } + }, _callee, null, [[2, 8]]); + })); - function importLocaleDefaulting() { - return _importLocaleDefaulting.apply(this, arguments); - } + function importLocaleDefaulting() { + return _importLocaleDefaulting.apply(this, arguments); + } - return importLocaleDefaulting; - }() - ); + return importLocaleDefaulting; + }(); } /** - * EXPORTS + * EXPORTS. */ /** * Store and retrieve preferences. + * @function module:SVGEditor.pref * @param {string} key The preference name to be retrieved or set - * @param {string} [val] The value. If the value supplied is missing or falsey, no change to the preference will be made. - * @returns {string|void} If val is missing or falsey, the value of the previously stored preference will be returned. - * @todo Can we change setting on the jQuery namespace (onto editor) to avoid conflicts? + * @param {string} [val] The value. If the value supplied is missing or falsey, no change to the preference will + * be made unless `mayBeEmpty` is set. + * @param {boolean} [mayBeEmpty] If value may be falsey. + * @returns {string|void} If val is missing or falsey and `mayBeEmpty` is not set, the + * value of the previously stored preference will be returned. * @todo Review whether any remaining existing direct references to - * getting `curPrefs` can be changed to use `$.pref()` getting to ensure - * `defaultPrefs` fallback (also for sake of `allowInitialUserOverride`); specifically, `bkgd_color` could be changed so that - * the pref dialog has a button to auto-calculate background, but otherwise uses `$.pref()` to be able to get default prefs - * or overridable settings + * getting `curPrefs` can be changed to use `svgEditor.pref()` getting to ensure + * `defaultPrefs` fallback (also for sake of `allowInitialUserOverride`); + * specifically, `bkgd_color` could be changed so that the pref dialog has a + * button to auto-calculate background, but otherwise uses `svgEditor.pref()` to + * be able to get default prefs or overridable settings */ - $$b.pref = function (key, val) { - if (val) { + editor.pref = function (key, val, mayBeEmpty) { + if (mayBeEmpty || val) { curPrefs[key] = val; /** * @name curPrefs @@ -29294,6 +29139,7 @@ * storage. This will override URL settings (for security reasons) but * not `svgedit-config-iife.js` configuration (unless initial user * overriding is explicitly permitted there via `allowInitialUserOverride`). + * @function module:SVGEditor.loadContentAndPrefs * @todo Split `allowInitialUserOverride` into `allowOverrideByURL` and * `allowOverrideByUserStorage` so `svgedit-config-iife.js` can disallow some * individual items for URL setting but allow for user storage AND/OR @@ -29340,6 +29186,7 @@ }; /** * Allows setting of preferences or configuration (including extensions). + * @function module:SVGEditor.setConfig * @param {module:SVGEditor.Config|module:SVGEditor.Prefs} opts The preferences or configuration (including extensions). See the tutorial on {@tutorial ConfigOptions} for info on config and preferences. * @param {PlainObject} [cfgCfg] Describes configuration which applies to the * particular batch of supplied options @@ -29378,12 +29225,12 @@ } } - $$b.each(opts, function (key, val) { - if (!{}.hasOwnProperty.call(opts, key)) { - return; - } // Only allow prefs defined in defaultPrefs - + Object.entries(opts).forEach(function (_ref3) { + var _ref4 = _slicedToArray(_ref3, 2), + key = _ref4[0], + val = _ref4[1]; + // Only allow prefs defined in defaultPrefs or... if ({}.hasOwnProperty.call(defaultPrefs, key)) { if (cfgCfg.overwrite === false && (curConfig.preventAllURLConfig || {}.hasOwnProperty.call(curPrefs, key))) { return; @@ -29392,7 +29239,7 @@ if (cfgCfg.allowInitialUserOverride === true) { defaultPrefs[key] = val; } else { - $$b.pref(key, val); + editor.pref(key, val); } } else if (['extensions', 'stylesheets', 'allowedOrigins'].includes(key)) { if (cfgCfg.overwrite === false && (curConfig.preventAllURLConfig || ['allowedOrigins', 'stylesheets'].includes(key) || key === 'extensions' && curConfig.lockExtensions)) { @@ -29432,7 +29279,7 @@ editor.curConfig = curConfig; // Update exported value }; /** - * All methods are optional + * All methods are optional. * @interface module:SVGEditor.CustomHandler * @type {PlainObject} */ @@ -29451,7 +29298,7 @@ * Its responsibilities are: * - accept the string contents of the current document * - invoke a file chooser dialog in 'save' mode - * - save the file to location chosen by the user + * - save the file to location chosen by the user. * @function module:SVGEditor.CustomHandler#save * @param {external:Window} win * @param {module:svgcanvas.SvgCanvas#event:saved} svgStr A string of the SVG @@ -29484,6 +29331,7 @@ /** * Allows one to override default SVGEdit `open`, `save`, and * `export` editor behaviors. + * @function module:SVGEditor.setCustomHandlers * @param {module:SVGEditor.CustomHandler} opts Extension mechanisms may call `setCustomHandlers` with three functions: `opts.open`, `opts.save`, and `opts.exportImage` * @returns {Promise<void>} */ @@ -29514,9 +29362,10 @@ }); }; /** - * @param {boolean} arg - * @returns {void} - */ + * @function module:SVGEditor.randomizeIds + * @param {boolean} arg + * @returns {void} + */ editor.randomizeIds = function (arg) { @@ -29524,6 +29373,7 @@ }; /** * Auto-run after a Promise microtask. + * @function module:SVGEditor.init * @returns {void} */ @@ -29604,20 +29454,31 @@ (function () { // Load config/data from URL if given - var src, qstr; - urldata = $$b.deparam.querystring(true); + var _URL = new URL(location), + search = _URL.search, + searchParams = _URL.searchParams; + + if (search) { + urldata = deparam(searchParams.toString(), true); + ['initStroke', 'initFill'].forEach(function (prop) { + if (searchParams.has("".concat(prop, "[color]"))) { + // Restore back to original non-deparamed value to avoid color + // strings being converted to numbers + urldata[prop].color = searchParams.get("".concat(prop, "[color]")); + } + }); + + if (searchParams.has('bkgd_color')) { + urldata.bkgd_color = '#' + searchParams.get('bkgd_color'); + } - if (!$$b.isEmptyObject(urldata)) { if (urldata.dimensions) { urldata.dimensions = urldata.dimensions.split(','); } - if (urldata.bkgd_color) { - urldata.bkgd_color = '#' + urldata.bkgd_color; - } - if (urldata.extensions) { - // For security reasons, disallow cross-domain or cross-folder extensions via URL + // For security reasons, disallow cross-domain or cross-folder + // extensions via URL urldata.extensions = urldata.extensions.match(/[:/\\]/) ? '' : urldata.extensions.split(','); } // Disallowing extension paths via URL for // security reasons, even for same-domain @@ -29629,29 +29490,32 @@ if (urldata[pathConfig]) { delete urldata[pathConfig]; } - }); + }); // Note: `source` and `url` (as with `storagePrompt` later) are not + // set on config but are used below + editor.setConfig(urldata, { overwrite: false - }); // Note: source and url (as with storagePrompt later) are not set on config but are used below - + }); setupCurConfig(); if (!curConfig.preventURLContentLoading) { - src = urldata.source; - qstr = $$b.param.querystring(); + var _urldata = urldata, + source = _urldata.source; - if (!src) { + if (!source) { // urldata.source may have been null if it ended with '=' - if (qstr.includes('source=data:')) { - src = qstr.match(/source=(data:[^&]*)/)[1]; // ({src} = qstr.match(/source=(?<src>data:[^&]*)/).groups); + var src = searchParams.get('source'); + + if (src && src.startsWith('data:')) { + source = src; } } - if (src) { - if (src.startsWith('data:')) { - editor.loadFromDataURI(src); + if (source) { + if (source.startsWith('data:')) { + editor.loadFromDataURI(source); } else { - editor.loadFromString(src); + editor.loadFromString(source); } return; @@ -29670,18 +29534,18 @@ setupCurConfig(); editor.loadContentAndPrefs(); } - - setupCurPrefs(); })(); + + setupCurPrefs(); /** * Called internally. + * @function module:SVGEditor.setIcon * @param {string|Element|external:jQuery} elem * @param {string|external:jQuery} iconId * @param {Float} forcedSize Not in use * @returns {void} */ - var setIcon = editor.setIcon = function (elem, iconId, forcedSize) { var icon = typeof iconId === 'string' ? $$b.getSvgIcon(iconId, true) : iconId.clone(); @@ -29703,25 +29567,21 @@ */ - var extAndLocaleFunc = - /*#__PURE__*/ - function () { - var _ref4 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee3() { - var _ref5, langParam, langData, _uiStrings$common, ok, cancel; + var extAndLocaleFunc = /*#__PURE__*/function () { + var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + var _yield$editor$putLoca, langParam, langData, _uiStrings$common, ok, cancel; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; - return editor.putLocale(null, goodLangs, curConfig); + return editor.putLocale(editor.pref('lang'), goodLangs, curConfig); case 2: - _ref5 = _context3.sent; - langParam = _ref5.langParam; - langData = _ref5.langData; + _yield$editor$putLoca = _context3.sent; + langParam = _yield$editor$putLoca.langParam; + langData = _yield$editor$putLoca.langData; _context3.next = 7; return setLang(langParam, langData); @@ -29735,12 +29595,8 @@ _context3.prev = 10; _context3.next = 13; - return Promise.all(curConfig.extensions.map( - /*#__PURE__*/ - function () { - var _ref6 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee2(extname) { + return Promise.all(curConfig.extensions.map( /*#__PURE__*/function () { + var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(extname) { var extName, url, imported, _imported$name, _name2, init, importLocale; return regeneratorRuntime.wrap(function _callee2$(_context2) { @@ -29858,7 +29714,7 @@ })); return function extAndLocaleFunc() { - return _ref4.apply(this, arguments); + return _ref5.apply(this, arguments); }; }(); @@ -29935,7 +29791,7 @@ var cur = el.data('orig_margin-' + s); if (isNullish(cur)) { - cur = parseInt(el.css('margin-' + s)); // Cache the original margin + cur = Number.parseInt(el.css('margin-' + s)); // Cache the original margin el.data('orig_margin-' + s, cur); } @@ -29954,6 +29810,7 @@ }; /** * Called internally. + * @function module:SVGEditor.setIconSize * @param {module:SVGEditor.IconSize} size * @returns {void} */ @@ -29992,7 +29849,7 @@ scaleElements(elems, scale); hiddenPs.css('visibility', 'visible').hide(); // return; - $$b.pref('iconsize', size); + editor.pref('iconsize', size); $$b('#iconsize').val(size); // Change icon size // $('.tool_button, .push_button, .tool_button_current, .disabled, .icon_label, #url_notice, #tool_open') // .find('> svg, > img').each(function () { @@ -30251,17 +30108,20 @@ warning: 'warning.png', node_delete: 'node_delete.png', node_clone: 'node_clone.png', - globe_link: 'globe_link.png' + globe_link: 'globe_link.png', + config: 'config.png' }, placement: { '#logo': 'logo', '#tool_clear div,#layer_new': 'new_image', '#tool_save div': 'save', '#tool_export div': 'export', - '#tool_open div div': 'open', - '#tool_import div div': 'import', + '#tool_open div': 'open', + '#tool_import div': 'import', '#tool_source': 'source', '#tool_docprops > div': 'docprops', + '#tool_editor_prefs > div': 'config', + '#tool_editor_homepage > div': 'globe_link', '#tool_wireframe': 'wireframe', '#tool_undo': 'undo', '#tool_redo': 'redo', @@ -30339,17 +30199,15 @@ '.stroke_tool div div .svg_icon': 20, '#tools_bottom label .svg_icon': 18 }, - callback: function () { - var _callback = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee4(icons) { + callback: function callback(icons) { + return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var tleft, minHeight, size, getStylesheetPriority, stylesheets, idx, _stylesheets; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: - getStylesheetPriority = function _ref8(stylesheetFile) { + getStylesheetPriority = function _getStylesheetPriorit(stylesheetFile) { switch (stylesheetFile) { case 'jgraduate/css/jPicker.css': return 1; @@ -30377,7 +30235,7 @@ minHeight = tleft.offset().top + tleft.outerHeight(); } - size = $$b.pref('iconsize'); + size = editor.pref('iconsize'); editor.setIconSize(size || ($$b(window).height() < minHeight ? 's' : 'm')); // Look for any missing flyout icons from plugins $$b('.tools_flyout').each(function () { @@ -30449,14 +30307,8 @@ } } }, _callee4); - })); - - function callback(_x3) { - return _callback.apply(this, arguments); - } - - return callback; - }() + }))(); + } }); } /** @@ -30538,7 +30390,7 @@ var rIntervals = []; - for (var i = 0.1; i < 1E5; i *= 10) { + for (var i = 0.1; i < 1e5; i *= 10) { rIntervals.push(i); rIntervals.push(2 * i); rIntervals.push(5 * i); @@ -30714,7 +30566,7 @@ a.click(); // Alert will only appear the first time saved OR the // first time the bug is encountered - var done = $$b.pref('save_notice_done'); + var done = editor.pref('save_notice_done'); if (done !== 'all') { var note = uiStrings$1.notification.saveFromBrowser.replace('%s', 'SVG'); // Check if FF and has <defs/> @@ -30723,13 +30575,13 @@ if (svg.includes('<defs')) { // warning about Mozilla bug #308590 when applicable (seems to be fixed now in Feb 2013) note += '\n\n' + uiStrings$1.notification.defsFailOnSave; - $$b.pref('save_notice_done', 'all'); + editor.pref('save_notice_done', 'all'); done = 'all'; } else { - $$b.pref('save_notice_done', 'part'); + editor.pref('save_notice_done', 'part'); } } else { - $$b.pref('save_notice_done', 'all'); + editor.pref('save_notice_done', 'all'); } if (done !== 'part') { @@ -30757,7 +30609,7 @@ } exportWindow.location.href = data.bloburl || data.datauri; - var done = $$b.pref('export_notice_done'); + var done = editor.pref('export_notice_done'); if (done !== 'all') { var note = uiStrings$1.notification.saveFromBrowser.replace('%s', data.type); // Check if there are issues @@ -30769,7 +30621,7 @@ // May want to find a way to deal with that without annoying the user - $$b.pref('export_notice_done', 'all'); + editor.pref('export_notice_done', 'all'); exportWindow.alert(note); } }; @@ -30817,7 +30669,7 @@ * - Removes the `tool_button_current` class from whatever tool currently has it. * - Hides any flyouts. * - Adds the `tool_button_current` class to the button passed in. - * @function module:SVGEDitor.toolButtonClick + * @function module:SVGEditor.toolButtonClick * @param {string|Element} button The DOM element or string selector representing the toolbar button * @param {boolean} noHiding Whether not to hide any flyouts * @returns {boolean} Whether the button was disabled or not @@ -30899,9 +30751,9 @@ function setBackground(color, url) { - // if (color == $.pref('bkgd_color') && url == $.pref('bkgd_url')) { return; } - $$b.pref('bkgd_color', color); - $$b.pref('bkgd_url', url); // This should be done in svgcanvas.js for the borderRect fill + // if (color == editor.pref('bkgd_color') && url == editor.pref('bkgd_url')) { return; } + editor.pref('bkgd_color', color); + editor.pref('bkgd_url', url, true); // This should be done in svgcanvas.js for the borderRect fill svgCanvas.setBackground(color, url); } @@ -30922,11 +30774,9 @@ function _promptImgURL() { - _promptImgURL = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee18() { - var _ref32, - _ref32$cancelDeletes, + _promptImgURL = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee18() { + var _ref28, + _ref28$cancelDeletes, cancelDeletes, curhref, url, @@ -30936,7 +30786,7 @@ while (1) { switch (_context18.prev = _context18.next) { case 0: - _ref32 = _args18.length > 0 && _args18[0] !== undefined ? _args18[0] : {}, _ref32$cancelDeletes = _ref32.cancelDeletes, cancelDeletes = _ref32$cancelDeletes === void 0 ? false : _ref32$cancelDeletes; + _ref28 = _args18.length > 0 && _args18[0] !== undefined ? _args18[0] : {}, _ref28$cancelDeletes = _ref28.cancelDeletes, cancelDeletes = _ref28$cancelDeletes === void 0 ? false : _ref28$cancelDeletes; curhref = svgCanvas.getHref(selectedElement); curhref = curhref.startsWith('data:') ? '' : curhref; _context18.next = 5; @@ -31013,7 +30863,7 @@ $hcanv.siblings().remove(); // Create multiple canvases when necessary (due to browser limits) if (rulerLen >= limit) { - ctxArrNum = parseInt(rulerLen / limit) + 1; + ctxArrNum = Number.parseInt(rulerLen / limit) + 1; ctxArr = []; ctxArr[0] = ctx; var copy = void 0; @@ -31944,10 +31794,10 @@ // Get this button's options var idSel = '#' + this.getAttribute('id'); - var _Object$entries$find = Object.entries(btnOpts).find(function (_ref9) { - var _ref10 = _slicedToArray(_ref9, 2), - _ = _ref10[0], - sel = _ref10[1].sel; + var _Object$entries$find = Object.entries(btnOpts).find(function (_ref8) { + var _ref9 = _slicedToArray(_ref8, 2), + _ = _ref9[0], + sel = _ref9[1].sel; return sel === idSel; }), @@ -31974,10 +31824,10 @@ if (ev.type === 'keydown') { var flyoutIsSelected = $$b(options.parent + '_show').hasClass('tool_button_current'); var currentOperation = $$b(options.parent + '_show').attr('data-curopt'); - Object.entries(holders[opts.parent]).some(function (_ref11) { - var _ref12 = _slicedToArray(_ref11, 2), - j = _ref12[0], - tool = _ref12[1]; + Object.entries(holders[opts.parent]).some(function (_ref10) { + var _ref11 = _slicedToArray(_ref10, 2), + j = _ref11[0], + tool = _ref11[1]; if (tool.sel !== currentOperation) { return false; @@ -31987,7 +31837,7 @@ options = tool; } else { // If flyout is selected, allow shift key to iterate through subitems - j = parseInt(j); // Use `allHolders` to include both extension `includeWith` and toolbarButtons + j = Number.parseInt(j); // Use `allHolders` to include both extension `includeWith` and toolbarButtons options = allHolders[opts.parent][j + 1] || holders[opts.parent][0]; } @@ -32036,8 +31886,7 @@ shower.attr('data-curopt', btnOpts[0].sel); } - var timer; - var pos = $$b(showSel).position(); // Clicking the "show" icon should set the current mode + var timer; // Clicking the "show" icon should set the current mode shower.mousedown(function (evt) { if (shower.hasClass('disabled')) { @@ -32045,6 +31894,7 @@ } var holder = $$b(holdSel); + var pos = $$b(showSel).position(); var l = pos.left + 34; var w = holder.width() * -1; var time = holder.data('shown_popop') ? 200 : 0; @@ -32187,18 +32037,14 @@ * @returns {Promise<void>|void} Resolves to `undefined` */ - var extAdded = - /*#__PURE__*/ - function () { - var _ref13 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee5(win, ext) { + var extAdded = /*#__PURE__*/function () { + var _ref12 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(win, ext) { var cbCalled, resizeDone, lang, prepResize, runCallback, btnSelects, svgicons, fallbackObj, altsObj, placementObj, holders; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: - prepResize = function _ref14() { + prepResize = function _prepResize() { if (resizeTimer) { clearTimeout(resizeTimer); resizeTimer = null; @@ -32207,7 +32053,7 @@ if (!resizeDone) { resizeTimer = setTimeout(function () { resizeDone = true; - setIconSize($$b.pref('iconsize')); + setIconSize(editor.pref('iconsize')); }, 50); } }; @@ -32234,7 +32080,7 @@ } // We check for this since the "lang" pref could have been set by storage - lang = $$b.pref('lang'); + lang = editor.pref('lang'); _context5.next = 10; return ext.langReady({ lang: lang, @@ -32651,7 +32497,7 @@ callback: function callback(icons) { // Non-ideal hack to make the icon match the current size // if (curPrefs.iconsize && curPrefs.iconsize !== 'm') { - if ($$b.pref('iconsize') !== 'm') { + if (editor.pref('iconsize') !== 'm') { prepResize(); } @@ -32672,8 +32518,8 @@ }, _callee5); })); - return function extAdded(_x4, _x5) { - return _ref13.apply(this, arguments); + return function extAdded(_x3, _x4) { + return _ref12.apply(this, arguments); }; }(); /** @@ -32748,9 +32594,9 @@ * @listens module:svgcanvas.SvgCanvas#event:updateCanvas * @returns {void} */ - function (win, _ref15) { - var center = _ref15.center, - newCtr = _ref15.newCtr; + function (win, _ref13) { + var center = _ref13.center, + newCtr = _ref13.newCtr; updateCanvas(center, newCtr); }); svgCanvas.bind('contextset', contextChanged); @@ -32761,13 +32607,15 @@ str += '<div class="palette_item" style="background-color: ' + item + ';" data-rgb="' + item + '"></div>'; }); $$b('#palette').append(str); // Set up editor background functionality - // TODO add checkerboard as "pattern" - - var colorBlocks = ['#FFF', '#888', '#000']; // ,'url(data:image/gif;base64,R0lGODlhEAAQAIAAAP%2F%2F%2F9bW1iH5BAAAAAAALAAAAAAQABAAAAIfjG%2Bgq4jM3IFLJgpswNly%2FXkcBpIiVaInlLJr9FZWAQA7)']; + var colorBlocks = ['#FFF', '#888', '#000', 'chessboard']; str = ''; - $$b.each(colorBlocks, function () { - str += '<div class="color_block" style="background-color:' + this + ';"></div>'; + $$b.each(colorBlocks, function (i, e) { + if (e === 'chessboard') { + str += '<div class="color_block" data-bgcolor="' + e + '" style="background-image:url(data:image/gif;base64,R0lGODlhEAAQAIAAAP///9bW1iH5BAAAAAAALAAAAAAQABAAAAIfjG+gq4jM3IFLJgpswNly/XkcBpIiVaInlLJr9FZWAQA7);"></div>'; + } else { + str += '<div class="color_block" data-bgcolor="' + e + '" style="background-color:' + e + ';"></div>'; + } }); $$b('#bg_blocks').append(str); var blocks = $$b('#bg_blocks div'); @@ -32779,8 +32627,8 @@ $$b(this).addClass(curBg); }); }); - setBackground($$b.pref('bkgd_color'), $$b.pref('bkgd_url')); - $$b('#image_save_opts input').val([$$b.pref('img_save')]); + setBackground(editor.pref('bkgd_color'), editor.pref('bkgd_url')); + $$b('#image_save_opts input').val([editor.pref('img_save')]); /** * @type {module:jQuerySpinButton.ValueCallback} */ @@ -32817,7 +32665,7 @@ var changeRotationAngle = function changeRotationAngle(ctl) { svgCanvas.setRotationAngle(ctl.value); - $$b('#tool_reorient').toggleClass('disabled', parseInt(ctl.value) === 0); + $$b('#tool_reorient').toggleClass('disabled', Number.parseInt(ctl.value) === 0); }; /** * @param {external:jQuery.fn.SpinButton} ctl Spin Button @@ -32881,11 +32729,7 @@ }); // fired when user wants to move elements to another layer var promptMoveLayerOnce = false; - $$b('#selLayerNames').change( - /*#__PURE__*/ - _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee6() { + $$b('#selLayerNames').change( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var destLayer, confirmStr, moveToLayer, ok; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { @@ -33096,9 +32940,10 @@ } }); /** - * @param {boolean} active - * @returns {void} - */ + * @function module:SVGEditor.setPanning + * @param {boolean} active + * @returns {void} + */ editor.setPanning = function (active) { svgCanvas.spaceKey = keypan = active; @@ -33187,7 +33032,7 @@ // TODO: Group UI functions into a public editor.ui interface. /** - * See {@link http://api.jquery.com/bind/#bind-eventType-eventData-handler} + * See {@link http://api.jquery.com/bind/#bind-eventType-eventData-handler}. * @callback module:SVGEditor.DropDownCallback * @param {external:jQuery.Event} ev See {@link http://api.jquery.com/Types/#Event} * @listens external:jQuery.Event @@ -33195,6 +33040,7 @@ */ /** + * @function module:SVGEditor.addDropDown * @param {Element|string} elem DOM Element or selector * @param {module:SVGEditor.DropDownCallback} callback Mouseup callback * @param {boolean} dropUp @@ -33260,7 +33106,7 @@ return; } - var perc = parseInt($$b(this).text().split('%')[0]); + var perc = Number.parseInt($$b(this).text().split('%')[0]); changeOpacity(false, perc); }, true); // For slider usage, see: http://jqueryui.com/demos/slider/ @@ -33302,7 +33148,7 @@ zoomChanged(window, val); } else { changeZoom({ - value: parseFloat(item.text()) + value: Number.parseFloat(item.text()) }); } }, true); @@ -33628,12 +33474,8 @@ */ - var makeHyperlink = - /*#__PURE__*/ - function () { - var _ref17 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee7() { + var makeHyperlink = /*#__PURE__*/function () { + var _ref15 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var url; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { @@ -33663,7 +33505,7 @@ })); return function makeHyperlink() { - return _ref17.apply(this, arguments); + return _ref15.apply(this, arguments); }; }(); /** @@ -33773,7 +33615,7 @@ step *= -1; } - var angle = parseFloat($$b('#angle').val()) + step; + var angle = Number.parseFloat($$b('#angle').val()) + step; svgCanvas.setRotationAngle(angle); updateContextPanel(); }; @@ -33783,12 +33625,8 @@ */ - var clickClear = - /*#__PURE__*/ - function () { - var _ref18 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee8() { + var clickClear = /*#__PURE__*/function () { + var _ref16 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { var _curConfig$dimensions, x, y, ok; return regeneratorRuntime.wrap(function _callee8$(_context8) { @@ -33829,7 +33667,7 @@ })); return function clickClear() { - return _ref18.apply(this, arguments); + return _ref16.apply(this, arguments); }; }(); /** @@ -33863,7 +33701,7 @@ var clickSave = function clickSave() { // In the future, more options can be provided here var saveOpts = { - images: $$b.pref('img_save'), + images: editor.pref('img_save'), round_digits: 6 }; svgCanvas.save(saveOpts); @@ -33875,18 +33713,14 @@ * @returns {Promise<void>} Resolves to `undefined` */ - var clickExport = - /*#__PURE__*/ - function () { - var _ref19 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee9() { + var clickExport = /*#__PURE__*/function () { + var _ref17 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { var imgType, exportWindowName, openExportWindow, chrome, quality; return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: - openExportWindow = function _ref20() { + openExportWindow = function _openExportWindow() { var loadingImage = uiStrings$1.notification.loadingImage; if (curConfig.exportWindowType === 'new') { @@ -33962,7 +33796,7 @@ openExportWindow(); } - quality = parseInt($$b('#image-slider').val()) / 100; + quality = Number.parseInt($$b('#image-slider').val()) / 100; /* const results = */ _context9.next = 16; @@ -33977,7 +33811,7 @@ })); return function clickExport() { - return _ref19.apply(this, arguments); + return _ref17.apply(this, arguments); }; }(); /** @@ -34101,7 +33935,7 @@ docprops = true; // This selects the correct radio button by using the array notation - $$b('#image_save_opts input').val([$$b.pref('img_save')]); // update resolution option with actual resolution + $$b('#image_save_opts input').val([editor.pref('img_save')]); // update resolution option with actual resolution var res = svgCanvas.getResolution(); @@ -34130,15 +33964,11 @@ $$b('#main_menu').hide(); // Update background color with current one var canvasBg = curPrefs.bkgd_color; - var url = $$b.pref('bkgd_url'); + var url = editor.pref('bkgd_url'); blocks.each(function () { var blk = $$b(this); - var isBg = blk.css('background-color') === canvasBg; + var isBg = blk.data('bgcolor') === canvasBg; blk.toggleClass(curBg, isBg); - - if (isBg) { - $$b('#canvas_bg_url').removeClass(curBg); - } }); if (!canvasBg) { @@ -34160,6 +33990,15 @@ */ + var openHomePage = function openHomePage() { + window.open(homePage, '_blank'); + }; + /** + * + * @returns {void} + */ + + var hideSourceEditor = function hideSourceEditor() { $$b('#svg_source_editor').hide(); editingsource = false; @@ -34171,12 +34010,8 @@ */ - var saveSourceEditor = - /*#__PURE__*/ - function () { - var _ref21 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee10() { + var saveSourceEditor = /*#__PURE__*/function () { + var _ref18 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { var saveChanges, ok; return regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) { @@ -34234,7 +34069,7 @@ })); return function saveSourceEditor() { - return _ref21.apply(this, arguments); + return _ref18.apply(this, arguments); }; }(); /** @@ -34247,7 +34082,7 @@ $$b('#svg_docprops').hide(); $$b('#canvas_width,#canvas_height').removeAttr('disabled'); $$b('#resolution')[0].selectedIndex = 0; - $$b('#image_save_opts input').val([$$b.pref('img_save')]); + $$b('#image_save_opts input').val([editor.pref('img_save')]); docprops = false; }; /** @@ -34304,7 +34139,7 @@ } // Set image save option - $$b.pref('img_save', $$b('#image_save_opts :checked').val()); + editor.pref('img_save', $$b('#image_save_opts :checked').val()); updateCanvas(); hideDocProperties(); return true; @@ -34316,24 +34151,20 @@ */ - var savePreferences = editor.savePreferences = - /*#__PURE__*/ - _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee11() { - var color, lang, _ref23, langParam, langData; + var savePreferences = editor.savePreferences = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee11() { + var color, lang, _yield$editor$putLoca2, langParam, langData; return regeneratorRuntime.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: // Set background - color = $$b('#bg_blocks div.cur_background').css('background-color') || '#FFF'; + color = $$b('#bg_blocks div.cur_background').data('bgcolor') || '#FFF'; setBackground(color, $$b('#canvas_bg_url').val()); // set language lang = $$b('#lang_select').val(); - if (!(lang !== $$b.pref('lang'))) { + if (!(lang && lang !== editor.pref('lang'))) { _context11.next = 11; break; } @@ -34342,30 +34173,25 @@ return editor.putLocale(lang, goodLangs, curConfig); case 6: - _ref23 = _context11.sent; - langParam = _ref23.langParam; - langData = _ref23.langData; + _yield$editor$putLoca2 = _context11.sent; + langParam = _yield$editor$putLoca2.langParam; + langData = _yield$editor$putLoca2.langData; _context11.next = 11; return setLang(langParam, langData); case 11: // set icon size - setIconSize($$b('#iconsize').val()); - /* eslint-disable require-atomic-updates */ - // set grid setting + setIconSize($$b('#iconsize').val()); // set grid setting curConfig.gridSnapping = $$b('#grid_snapping_on')[0].checked; curConfig.snappingStep = $$b('#grid_snapping_step').val(); curConfig.gridColor = $$b('#grid_color').val(); curConfig.showRulers = $$b('#show_rulers')[0].checked; - /* eslint-enable require-atomic-updates */ - $$b('#rulers').toggle(curConfig.showRulers); if (curConfig.showRulers) { updateRulers(); - } // eslint-disable-next-line require-atomic-updates - + } curConfig.baseUnit = $$b('#base_unit').val(); svgCanvas.setConfig(curConfig); @@ -34386,12 +34212,8 @@ * @returns {Promise<void>} Resolves to `undefined` */ - var cancelOverlays = - /*#__PURE__*/ - function () { - var _ref24 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee12() { + var cancelOverlays = /*#__PURE__*/function () { + var _ref20 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee12() { var ok; return regeneratorRuntime.wrap(function _callee12$(_context12) { while (1) { @@ -34460,7 +34282,7 @@ })); return function cancelOverlays() { - return _ref24.apply(this, arguments); + return _ref20.apply(this, arguments); }; }(); @@ -34603,10 +34425,16 @@ $$b('#color_picker').hide(); }); }; + /** + * Paint box class. + */ - var PaintBox = - /*#__PURE__*/ - function () { + + var PaintBox = /*#__PURE__*/function () { + /** + * @param {string|Element|external:jQuery} container + * @param {"fill"} type + */ function PaintBox(container, type) { _classCallCheck(this, PaintBox); @@ -34624,6 +34452,12 @@ }); this.type = type; } + /** + * @param {module:jGraduate~Paint} paint + * @param {boolean} apply + * @returns {void} + */ + _createClass(PaintBox, [{ key: "setPaint", @@ -34657,6 +34491,11 @@ svgCanvas.setPaintOpacity(this.type, this._paintOpacity, true); } } + /** + * @param {boolean} apply + * @returns {void} + */ + }, { key: "update", value: function update(apply) { @@ -34705,9 +34544,9 @@ default: { - this._paintOpacity = parseFloat(selectedElement.getAttribute(type + '-opacity')); + this._paintOpacity = Number.parseFloat(selectedElement.getAttribute(type + '-opacity')); - if (isNaN(this._paintOpacity)) { + if (Number.isNaN(this._paintOpacity)) { this._paintOpacity = 1.0; } @@ -34726,6 +34565,10 @@ this.setPaint(paint); } + /** + * @returns {void} + */ + }, { key: "prep", value: function prep() { @@ -34788,7 +34631,7 @@ // Disable option $$b('#image_save_opts [value=embed]').attr('disabled', 'disabled'); $$b('#image_save_opts input').val(['ref']); - $$b.pref('img_save', 'ref'); + editor.pref('img_save', 'ref'); $$b('#image_opt_embed').css('color', '#666').attr('title', uiStrings$1.notification.featNotSupported); } }); @@ -34830,11 +34673,7 @@ $$b(this).removeClass('push_button_pressed').addClass('push_button'); }); // ask for a layer name - $$b('#layer_new').click( - /*#__PURE__*/ - _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee13() { + $$b('#layer_new').click( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee13() { var uniqName, i, newName; return regeneratorRuntime.wrap(function _callee13$(_context13) { while (1) { @@ -34913,9 +34752,7 @@ function _cloneLayer() { - _cloneLayer = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee19() { + _cloneLayer = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee19() { var name, newName; return regeneratorRuntime.wrap(function _callee19$(_context19) { while (1) { @@ -34993,11 +34830,7 @@ $$b('#layer_down').click(function () { moveLayer(1); }); - $$b('#layer_rename').click( - /*#__PURE__*/ - _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee14() { + $$b('#layer_rename').click( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee14() { var oldName, newName; return regeneratorRuntime.wrap(function _callee14$(_context14) { while (1) { @@ -35054,8 +34887,8 @@ var rulerX = $$b('#ruler_x'); $$b('#sidepanels').width('+=' + delta); $$b('#layerpanel').width('+=' + delta); - rulerX.css('right', parseInt(rulerX.css('right')) + delta); - workarea.css('right', parseInt(workarea.css('right')) + delta); + rulerX.css('right', Number.parseInt(rulerX.css('right')) + delta); + workarea.css('right', Number.parseInt(workarea.css('right')) + delta); svgCanvas.runExtensions('workareaResized'); }; /** @@ -35232,12 +35065,16 @@ $$b('input,select').attr('autocomplete', 'off'); var dialogSelectors = ['#tool_source_cancel', '#tool_docprops_cancel', '#tool_prefs_cancel', '.overlay']; + /* eslint-disable jsdoc/require-property */ + /** - * Associate all button actions as well as non-button keyboard shortcuts + * Associate all button actions as well as non-button keyboard shortcuts. * @namespace {PlainObject} module:SVGEditor~Actions */ var Actions = function () { + /* eslint-enable jsdoc/require-property */ + /** * @typedef {PlainObject} module:SVGEditor.ToolButton * @property {string} sel The CSS selector for the tool @@ -35395,18 +35232,31 @@ }, { sel: '#tool_docprops', fn: showDocProperties, - evt: 'mouseup' + evt: 'click' }, { sel: '#tool_prefs_save', fn: savePreferences, evt: 'click' }, { - sel: '#tool_prefs_option', + sel: '#tool_editor_prefs', + fn: showPreferences, + evt: 'click' + }, { + sel: '#tool_editor_homepage', + fn: openHomePage, + evt: 'click' + }, { + sel: '#tool_open', fn: function fn() { - showPreferences(); - return false; + window.dispatchEvent(new CustomEvent('openImage')); }, - evt: 'mouseup' + evt: 'click' + }, { + sel: '#tool_import', + fn: function fn() { + window.dispatchEvent(new CustomEvent('importImage')); + }, + evt: 'click' }, { sel: '#tool_delete,#tool_delete_multi', fn: deleteSelected, @@ -35839,8 +35689,11 @@ var tool; var itool = curConfig.initTool, container = $$b('#tools_left, #svg_editor .tools_flyout'), - preTool = container.find('#tool_' + itool), + + /* eslint-disable unicorn/no-fn-reference-in-iterator */ + preTool = container.find('#tool_' + itool), regTool = container.find('#' + itool); + /* eslint-enable unicorn/no-fn-reference-in-iterator */ if (preTool.length) { tool = preTool; @@ -36083,9 +35936,10 @@ return uiStrings$1; }; /** - * @returns {Promise<boolean>} Resolves to boolean indicating `true` if there were no changes - * and `false` after the user confirms. - */ + * @function module:SVGEditor.openPrep + * @returns {boolean|Promise<boolean>} Resolves to boolean indicating `true` if there were no changes + * and `false` after the user confirms. + */ editor.openPrep = function () { @@ -36185,8 +36039,8 @@ // bitmap handling reader = new FileReader(); - reader.onloadend = function (_ref27) { - var result = _ref27.target.result; + reader.onloadend = function (_ref23) { + var result = _ref23.target.result; /** * Insert the new image until we know its dimensions. @@ -36235,12 +36089,8 @@ workarea[0].addEventListener('dragover', onDragOver); workarea[0].addEventListener('dragleave', onDragLeave); workarea[0].addEventListener('drop', importImage); - var open = $$b('<input type="file">').change( - /*#__PURE__*/ - function () { - var _ref28 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee16(e) { + var open = $$b('<input type="file">').change( /*#__PURE__*/function () { + var _ref24 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee16(e) { var ok, reader; return regeneratorRuntime.wrap(function _callee16$(_context16) { while (1) { @@ -36266,18 +36116,14 @@ $$b.process_cancel(uiStrings$1.notification.loadingImage); reader = new FileReader(); - reader.onloadend = - /*#__PURE__*/ - function () { - var _ref30 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee15(_ref29) { + reader.onloadend = /*#__PURE__*/function () { + var _ref26 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee15(_ref25) { var target; return regeneratorRuntime.wrap(function _callee15$(_context15) { while (1) { switch (_context15.prev = _context15.next) { case 0: - target = _ref29.target; + target = _ref25.target; _context15.next = 3; return loadSvgString(target.result); @@ -36292,8 +36138,8 @@ }, _callee15); })); - return function (_x7) { - return _ref30.apply(this, arguments); + return function (_x6) { + return _ref26.apply(this, arguments); }; }(); @@ -36308,13 +36154,19 @@ }, _callee16, this); })); - return function (_x6) { - return _ref28.apply(this, arguments); + return function (_x5) { + return _ref24.apply(this, arguments); }; }()); - $$b('#tool_open').show().prepend(open); + $$b('#tool_open').show(); + $$b(window).on('openImage', function () { + return open.click(); + }); var imgImport = $$b('<input type="file">').change(importImage); - $$b('#tool_import').show().prepend(imgImport); + $$b('#tool_import').show(); + $$b(window).on('importImage', function () { + return imgImport.click(); + }); } updateCanvas(true); // const revnums = 'svg-editor.js ($Rev$) '; @@ -36331,19 +36183,15 @@ * @returns {Promise<void>} A Promise which resolves to `undefined` */ - var setLang = editor.setLang = - /*#__PURE__*/ - function () { - var _ref31 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee17(lang, allStrings) { + var setLang = editor.setLang = /*#__PURE__*/function () { + var _ref27 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee17(lang, allStrings) { var oldLayerName, renameLayer, elems; return regeneratorRuntime.wrap(function _callee17$(_context17) { while (1) { switch (_context17.prev = _context17.next) { case 0: editor.langChanged = true; - $$b.pref('lang', lang); + editor.pref('lang', lang); $$b('#lang_select').val(lang); if (allStrings) { @@ -36394,7 +36242,6 @@ })); case 15: - // eslint-disable-next-line require-atomic-updates extsPreLang.length = 0; _context17.next = 19; break; @@ -36442,8 +36289,8 @@ }, _callee17); })); - return function (_x8, _x9) { - return _ref31.apply(this, arguments); + return function (_x7, _x8) { + return _ref27.apply(this, arguments); }; }(); @@ -36502,6 +36349,7 @@ * Queues a callback to be invoked when the editor is ready (or * to be invoked immediately if it is already ready--i.e., * if `runCallbacks` has been run). + * @function module:SVGEditor.ready * @param {module:SVGEditor.ReadyCallback} cb Callback to be queued to invoke * @returns {Promise<ArbitraryCallbackResult>} Resolves when all callbacks, including the supplied have resolved */ @@ -36512,7 +36360,7 @@ return new Promise(function (resolve, reject) { // eslint-disable-line promise/avoid-new if (isReady) { - resolve(cb()); // eslint-disable-line callback-return, promise/prefer-await-to-callbacks + resolve(cb()); // eslint-disable-line node/callback-return, promise/prefer-await-to-callbacks return; } @@ -36522,24 +36370,21 @@ }; /** * Invokes the callbacks previous set by `svgEditor.ready` + * @function module:SVGEditor.runCallbacks * @returns {Promise<void>} Resolves to `undefined` if all callbacks succeeded and rejects otherwise */ - editor.runCallbacks = - /*#__PURE__*/ - _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee20() { + editor.runCallbacks = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee20() { return regeneratorRuntime.wrap(function _callee20$(_context20) { while (1) { switch (_context20.prev = _context20.next) { case 0: _context20.prev = 0; _context20.next = 3; - return Promise.all(callbacks.map(function (_ref34) { - var _ref35 = _slicedToArray(_ref34, 1), - cb = _ref35[0]; + return Promise.all(callbacks.map(function (_ref30) { + var _ref31 = _slicedToArray(_ref30, 1), + cb = _ref31[0]; return cb(); // eslint-disable-line promise/prefer-await-to-callbacks })); @@ -36551,18 +36396,18 @@ case 5: _context20.prev = 5; _context20.t0 = _context20["catch"](0); - callbacks.forEach(function (_ref36) { - var _ref37 = _slicedToArray(_ref36, 3), - reject = _ref37[2]; + callbacks.forEach(function (_ref32) { + var _ref33 = _slicedToArray(_ref32, 3), + reject = _ref33[2]; reject(); }); throw _context20.t0; case 9: - callbacks.forEach(function (_ref38) { - var _ref39 = _slicedToArray(_ref38, 2), - resolve = _ref39[1]; + callbacks.forEach(function (_ref34) { + var _ref35 = _slicedToArray(_ref34, 2), + resolve = _ref35[1]; resolve(); }); @@ -36576,21 +36421,18 @@ }, _callee20, null, [[0, 5]]); })); /** - * @param {string} str The SVG string to load - * @param {PlainObject} [opts={}] - * @param {boolean} [opts.noAlert=false] Option to avoid alert to user and instead get rejected promise - * @returns {Promise<void>} - */ + * @function module:SVGEditor.loadFromString + * @param {string} str The SVG string to load + * @param {PlainObject} [opts={}] + * @param {boolean} [opts.noAlert=false] Option to avoid alert to user and instead get rejected promise + * @returns {Promise<void>} + */ editor.loadFromString = function (str) { - var _ref40 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - noAlert = _ref40.noAlert; + var _ref36 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + noAlert = _ref36.noAlert; - return editor.ready( - /*#__PURE__*/ - _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee21() { + return editor.ready( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee21() { return regeneratorRuntime.wrap(function _callee21$(_context21) { while (1) { switch (_context21.prev = _context21.next) { @@ -36626,6 +36468,7 @@ }; /** * Not presently in use. + * @function module:SVGEditor.disableUI * @param {PlainObject} featList * @returns {void} */ @@ -36643,20 +36486,21 @@ */ /** - * @param {string} url URL from which to load an SVG string via Ajax - * @param {PlainObject} [opts={}] May contain properties: `cache`, `callback` - * @param {boolean} [opts.cache] - * @param {boolean} [opts.noAlert] - * @returns {Promise<void>} Resolves to `undefined` or rejects upon bad loading of - * the SVG (or upon failure to parse the loaded string) when `noAlert` is - * enabled - */ + * @function module:SVGEditor.loadFromURL + * @param {string} url URL from which to load an SVG string via Ajax + * @param {PlainObject} [opts={}] May contain properties: `cache`, `callback` + * @param {boolean} [opts.cache] + * @param {boolean} [opts.noAlert] + * @returns {Promise<void>} Resolves to `undefined` or rejects upon bad loading of + * the SVG (or upon failure to parse the loaded string) when `noAlert` is + * enabled + */ editor.loadFromURL = function (url) { - var _ref42 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - cache = _ref42.cache, - noAlert = _ref42.noAlert; + var _ref38 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + cache = _ref38.cache, + noAlert = _ref38.noAlert; return editor.ready(function () { return new Promise(function (resolve, reject) { @@ -36697,6 +36541,7 @@ }); }; /** + * @function module:SVGEditor.loadFromDataURI * @param {string} str The Data URI to base64-decode (if relevant) and load * @param {PlainObject} [opts={}] * @param {boolean} [opts.noAlert] @@ -36705,8 +36550,8 @@ editor.loadFromDataURI = function (str) { - var _ref43 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - noAlert = _ref43.noAlert; + var _ref39 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + noAlert = _ref39.noAlert; return editor.ready(function () { var base64 = false; @@ -36729,6 +36574,7 @@ }); }; /** + * @function module:SVGEditor.addExtension * @param {string} name Used internally; no need for i18n. * @param {module:svgcanvas.ExtensionInitCallback} init Config to be invoked on this module * @param {module:svgcanvas.ExtensionInitArgs} initArgs @@ -36763,9 +36609,9 @@ * @returns {void} */ - var messageListener = function messageListener(_ref44) { - var data = _ref44.data, - origin = _ref44.origin; + var messageListener = function messageListener(_ref40) { + var data = _ref40.data, + origin = _ref40.origin; // eslint-disable-line no-shadow // console.log('data, origin, extensionsAdded', data, origin, extensionsAdded); var messageObj = { @@ -36785,9 +36631,7 @@ window.addEventListener('message', messageListener); // Run init once DOM is loaded // jQuery(editor.init); - _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee22() { + _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee22() { return regeneratorRuntime.wrap(function _callee22$(_context22) { while (1) { switch (_context22.prev = _context22.next) { diff --git a/firefox-extension/chrome.manifest b/firefox-extension/chrome.manifest deleted file mode 100644 index 3e98b2dd..00000000 --- a/firefox-extension/chrome.manifest +++ /dev/null @@ -1,2 +0,0 @@ -content svg-edit content/ -overlay chrome://browser/content/browser.xul chrome://svg-edit/content/svg-edit-overlay.xul diff --git a/firefox-extension/content/svg-edit-overlay.css b/firefox-extension/content/svg-edit-overlay.css deleted file mode 100644 index 4b7e9b54..00000000 --- a/firefox-extension/content/svg-edit-overlay.css +++ /dev/null @@ -1,21 +0,0 @@ -#svg-edit-statusbar-button { - list-style-image: url("chrome://svg-edit/content/editor/images/logo.png"); - display: -moz-box; - /*-moz-image-region: rect(16px, 16px, 32px, 0px);*/ - padding-left: 0px; - padding-right: 0px; - width: 16px; - height: 16px; - -} - -#svg-edit-statusbar-button[state="active"] { - list-style-image: url("chrome://svg-edit/content/editor/images/logo.png"); - -moz-image-region: rect(32px, 16px, 48px, 0px); -} - -#svg-edit-statusbar-button[state="error"] { - list-style-image: url("chrome://svg-edit/content/editor/images/logo.png"); - -moz-image-region: rect(0px, 16px, 16px, 0px); -} - diff --git a/firefox-extension/content/svg-edit-overlay.js b/firefox-extension/content/svg-edit-overlay.js deleted file mode 100644 index 0c05a594..00000000 --- a/firefox-extension/content/svg-edit-overlay.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Opens the dialog with the SVG Editor. - * @returns {void} - */ -function startSvgEdit () { // eslint-disable-line no-unused-vars - const url = 'chrome://svg-edit/content/editor/svg-editor.html'; - window.openDialog(url, 'SVG Editor', 'width=1024,height=700,menubar=no,toolbar=no'); -} diff --git a/firefox-extension/content/svg-edit-overlay.xul b/firefox-extension/content/svg-edit-overlay.xul deleted file mode 100644 index ac8899c3..00000000 --- a/firefox-extension/content/svg-edit-overlay.xul +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0"?> - -<?xml-stylesheet href="chrome://svg-edit/content/svg-edit-overlay.css" type="text/css"?> - -<!DOCTYPE overlay SYSTEM "chrome://chromelist/locale/ChromeListOverlay.dtd" > -<overlay id="SVGEditToolsOverlay" - xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> - -<script type="application/x-javascript" - src="chrome://svg-edit/content/svg-edit-overlay.js" /> - -<menupopup id="menu_ToolsPopup"> - <menuitem insertafter="devToolsSeparator" label="SVG Editor" - oncommand="startSvgEdit();" /> -</menupopup> - - <!-- Firefox --> - <statusbar id="status-bar"> - <statusbarpanel id="svg-edit-statusbar-button" - class="statusbarpanel-menu-iconic" - onclick="return startSvgEdit()" - tooltip="SvgEdit"> - </statusbarpanel> - </statusbar> -</overlay> diff --git a/firefox-extension/handlers.js b/firefox-extension/handlers.js deleted file mode 100644 index d33cb0ec..00000000 --- a/firefox-extension/handlers.js +++ /dev/null @@ -1,60 +0,0 @@ -/* global svgCanvas, jQuery, Components, netscape */ -// Note: This JavaScript file must be included as the last script on the main HTML editor page to override the open/save handlers -jQuery(function () { - if (!window.Components) return; - - /** - * Offer choice of file. - * @param {boolean} readflag - * @returns {nsILocalFile} - */ - function mozFilePicker (readflag) { - const fp = window.Components.classes['@mozilla.org/filepicker;1'] - .createInstance(Components.interfaces.nsIFilePicker); - if (readflag) fp.init(window, 'Pick a SVG file', fp.modeOpen); - else fp.init(window, 'Pick a SVG file', fp.modeSave); - fp.defaultExtension = '*.svg'; - fp.show(); - return fp.file; - } - - svgCanvas.setCustomHandlers({ - open () { - try { - netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); - const file = mozFilePicker(true); - if (!file) { - return; - } - - const inputStream = Components.classes['@mozilla.org/network/file-input-stream;1'].createInstance(Components.interfaces.nsIFileInputStream); - inputStream.init(file, 0x01, 0o00004, null); - const sInputStream = Components.classes['@mozilla.org/scriptableinputstream;1'].createInstance(Components.interfaces.nsIScriptableInputStream); - sInputStream.init(inputStream); - svgCanvas.setSvgString(sInputStream.read(sInputStream.available())); - } catch (e) { - console.log('Exception while attempting to load' + e); // eslint-disable-line no-console - } - }, - save (svg, str) { - try { - const file = mozFilePicker(false); - if (!file) { - return; - } - - if (!file.exists()) { - file.create(0, 0o0664); - } - - const out = Components.classes['@mozilla.org/network/file-output-stream;1'].createInstance(Components.interfaces.nsIFileOutputStream); - out.init(file, 0x20 | 0x02, 0o00004, null); // eslint-disable-line no-bitwise - out.write(str, str.length); - out.flush(); - out.close(); - } catch (e) { - alert(e); // eslint-disable-line no-alert - } - } - }); -}); diff --git a/firefox-extension/install.rdf b/firefox-extension/install.rdf deleted file mode 100644 index 781b80ad..00000000 --- a/firefox-extension/install.rdf +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0"?> - -<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:em="http://www.mozilla.org/2004/em-rdf#"> - <Description about="urn:mozilla:extension:file:chrome" - em:package="content" /> - <Description about="urn:mozilla:install-manifest"> - <!-- required properties --> - <em:id>svg-edit@googlegroups.com</em:id> - <em:version>2.6</em:version> - <em:type>2</em:type> - <em:targetApplication> - <Description> - <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> - <em:minVersion>1.5</em:minVersion> - <em:maxVersion>4.*</em:maxVersion> - </Description> - </em:targetApplication> - <em:name>SVG-edit</em:name> - </Description> -</RDF> diff --git a/.github/workflows/coverage.yml b/gh-disabled-workflows/coverage.yml similarity index 100% rename from .github/workflows/coverage.yml rename to gh-disabled-workflows/coverage.yml diff --git a/.github/workflows/nodejs.yml b/gh-disabled-workflows/nodejs.yml similarity index 100% rename from .github/workflows/nodejs.yml rename to gh-disabled-workflows/nodejs.yml diff --git a/.github/workflows/npmpublish.yml b/gh-disabled-workflows/npmpublish.yml similarity index 100% rename from .github/workflows/npmpublish.yml rename to gh-disabled-workflows/npmpublish.yml diff --git a/licenseInfo.json b/licenseInfo.json new file mode 100644 index 00000000..a5050316 --- /dev/null +++ b/licenseInfo.json @@ -0,0 +1,21 @@ +{ + "bundledRootPackages": [ + "load-stylesheets", + "jamilih", + "query-result", + "qr-manipulation", + "stackblur-canvas", + "regenerator-runtime", + "core-js-bundle", + "underscore", + "deparam" + ], + "filesByLicense": { + "(MIT OR GPL-2.0)": ["editor/jquery-ui/jquery-ui-1.8.17.custom.min.js", "editor/jquerybbq/jquery.bbq.min.js", "editor/js-hotkeys/jquery.hotkeys.min.js"], + "(MIT OR GPL-2.0-or-later)": ["editor/contextmenu/jQuery.contextMenu.js", "editor/extensions/ext-server_moinsave.js"], + "Apache-2.0": ["editor/contextmenu.js", "editor/extensions/ext-foreignobject.js", "editor/extensions/ext-grid.js", "editor/extensions/ext-markers.js", "screencasts/svgopen2010/index.html", "editor/jgraduate/jQuery.jGraduate.js", "editor/extensions/mathjax/MathJax.min.js", "editor/extensions/mathjax/TeX-AMS-MML_SVG.js"], + "ISC": ["editor/external/query-result/esm/index.js"], + "LGPL-3.0-or-later": ["editor/jspdf/jspdf.plugin.svgToPdf.js"], + "X11": ["editor/jspdf/jspdf.min.js"] + } +} diff --git a/mocha-multi-reporters.json b/mocha-multi-reporters.json new file mode 100644 index 00000000..787d32e0 --- /dev/null +++ b/mocha-multi-reporters.json @@ -0,0 +1,9 @@ +{ + "mochawesomeReporterOptions": { + "reportDir": "cypress/results", + "overwrite": false, + "html": false, + "json": true + }, + "reporterEnabled": "mochawesome" +} diff --git a/opera-widget/config.xml b/opera-widget/config.xml deleted file mode 100644 index 797aafba..00000000 --- a/opera-widget/config.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0"?> -<widget defaultmode="application"> - <widgetname>SVG Edit</widgetname> - <description> - A simple SVG Editor. - </description> - <width>800</width> - <height>600</height> - <icon>editor/images/logo.svg</icon> - <id> - <name>SVG Edit</name> - <revised>2010-09</revised> - </id> - <feature name="http://xmlns.opera.com/fileio"> - <param name="folderhint" value="home" /> - </feature> -</widget> diff --git a/opera-widget/handlers.js b/opera-widget/handlers.js deleted file mode 100644 index e5d2a549..00000000 --- a/opera-widget/handlers.js +++ /dev/null @@ -1,60 +0,0 @@ -/* globals jQuery, svgCanvas */ -/* eslint-disable no-console */ -// Note: This JavaScript file must be included as the last script on the main -// HTML editor page to override the open/save handlers -jQuery(function () { - if (window.opera && window.opera.io && window.opera.io.filesystem) { - svgCanvas.setCustomHandlers({ - open () { - try { - window.opera.io.filesystem.browseForFile( - new Date().getTime(), /* mountpoint name */ - '', /* default location */ - function (file) { - try { - if (file) { - const fstream = file.open(file, 'r'); - let output = ''; - while (!fstream.eof) { - output += fstream.readLine(); - } - - svgCanvas.setSvgString(output); /* 'this' is bound to the filestream object here */ - } - } catch (e) { - console.log('Reading file failed.'); - } - }, - false, /* not persistent */ - false, /* no multiple selections */ - '*.svg' /* file extension filter */ - ); - } catch (e) { - console.log('Open file failed.'); - } - }, - save (win, svg) { - try { - win.opera.io.filesystem.browseForSave( - new Date().getTime(), /* mountpoint name */ - '', /* default location */ - function (file) { - try { - if (file) { - const fstream = file.open(file, 'w'); - fstream.write(svg, 'UTF-8'); - fstream.close(); - } - } catch (e) { - console.log('Write to file failed.'); - } - }, - false /* not persistent */ - ); - } catch (e) { - console.log('Save file failed.'); - } - } - }); - } -}); diff --git a/opera-widget/index.html b/opera-widget/index.html deleted file mode 100644 index 4d5e292c..00000000 --- a/opera-widget/index.html +++ /dev/null @@ -1,28 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8" /> - <title>SVG Edit - - - - - - Failed to load for some reason. - - - diff --git a/opera-widget/style.css b/opera-widget/style.css deleted file mode 100644 index b4e8ae66..00000000 --- a/opera-widget/style.css +++ /dev/null @@ -1,2 +0,0 @@ -body { margin: 0px; padding: 0px; } -#container { width: 100%; height: 100%; border: none; } diff --git a/package-lock.json b/package-lock.json index 9a478d33..354a8372 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,34 +1,131 @@ { "name": "svgedit", - "version": "5.1.0", + "version": "6.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.8.3" + } + }, + "@babel/compat-data": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.6.tgz", + "integrity": "sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g==", + "dev": true, + "requires": { + "browserslist": "^4.11.1", + "invariant": "^2.2.4", + "semver": "^5.5.0" + }, + "dependencies": { + "browserslist": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", + "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001043", + "electron-to-chromium": "^1.3.413", + "node-releases": "^1.1.53", + "pkg-up": "^2.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001048", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz", + "integrity": "sha512-g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.427", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.427.tgz", + "integrity": "sha512-/rG5G7Opcw68/Yrb4qYkz07h3bESVRJjUl4X/FrKLXzoUJleKm6D7K7rTTz8V5LUWnd+BbTOyxJX2XprRqHD8A==", + "dev": true + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "node-releases": { + "version": "1.1.53", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz", + "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + } } }, "@babel/core": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", - "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.7", - "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.7", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "json5": "^2.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", @@ -36,30 +133,75 @@ }, "dependencies": { "@babel/generator": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", - "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", "dev": true, "requires": { - "@babel/types": "^7.7.4", + "@babel/types": "^7.9.6", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" } }, - "@babel/parser": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", - "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==", - "dev": true - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "@babel/helper-function-name": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.9.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "dev": true + }, + "@babel/helpers": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz", + "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6" + } + }, + "@babel/parser": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", + "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + "dev": true + }, + "@babel/traverse": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", + "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -67,24 +209,30 @@ } }, "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz", + "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==", "dev": true, "requires": { - "@babel/types": "^7.7.4", + "@babel/types": "^7.9.5", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "dev": true + }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.5", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -92,538 +240,446 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", - "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", "dev": true, "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.8.3" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz", - "integrity": "sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-builder-react-jsx": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.7.4.tgz", - "integrity": "sha512-kvbfHJNN9dg4rkEM4xn1s8d1/h6TYNvajy9L1wx4qLn9HFg0IkTsQi4rfBe92nxrPUFcMsHoMV+8rU7MJb3fCA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz", + "integrity": "sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw==", "dev": true, "requires": { - "@babel/types": "^7.7.4", - "esutils": "^2.0.0" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/types": "^7.9.0" + } + }, + "@babel/helper-builder-react-jsx-experimental": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.5.tgz", + "integrity": "sha512-HAagjAC93tk748jcXpZ7oYRZH485RCq/+yEv9SIWezHRPv9moZArTnkUNciUNzvwHUABmiWKlcxJvMcu59UwTg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-module-imports": "^7.8.3", + "@babel/types": "^7.9.5" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "dev": true + }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.5", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } } } }, - "@babel/helper-call-delegate": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz", - "integrity": "sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA==", + "@babel/helper-compilation-targets": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz", + "integrity": "sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/compat-data": "^7.9.6", + "browserslist": "^4.11.1", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" }, "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "browserslist": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", + "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "caniuse-lite": "^1.0.30001043", + "electron-to-chromium": "^1.3.413", + "node-releases": "^1.1.53", + "pkg-up": "^2.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001048", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz", + "integrity": "sha512-g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.427", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.427.tgz", + "integrity": "sha512-/rG5G7Opcw68/Yrb4qYkz07h3bESVRJjUl4X/FrKLXzoUJleKm6D7K7rTTz8V5LUWnd+BbTOyxJX2XprRqHD8A==", + "dev": true + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "node-releases": { + "version": "1.1.53", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz", + "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" } } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.4.tgz", - "integrity": "sha512-l+OnKACG4uiDHQ/aJT8dwpR+LhCJALxL0mJ6nzjB25e5IPwqV1VOsY7ah6UB1DG+VOXAIMtuC54rFJGiHkxjgA==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.5.tgz", + "integrity": "sha512-IipaxGaQmW4TfWoXdqjY0TzoXQ1HRS0kPpEgvjosb3u7Uedcq297xFqDQiCcQtRRwzIMif+N1MLVI8C5a4/PAA==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-member-expression-to-functions": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4" + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-split-export-declaration": "^7.8.3" + }, + "dependencies": { + "@babel/helper-function-name": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.9.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "dev": true + }, + "@babel/types": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz", - "integrity": "sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", + "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", "dev": true, "requires": { - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.7.0" } }, "@babel/helper-define-map": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz", - "integrity": "sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-explode-assignable-expression": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz", - "integrity": "sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", "dev": true, "requires": { - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.8.3" } }, "@babel/helper-hoist-variables": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz", - "integrity": "sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", "dev": true, "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.8.3" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz", - "integrity": "sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.8.3" } }, "@babel/helper-module-imports": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.8.3" } }, "@babel/helper-module-transforms": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.4.tgz", - "integrity": "sha512-ehGBu4mXrhs0FxAqN8tWkzF8GSIGAiEumu4ONZ/hD9M88uHcD+Yu2ttKfOCgwzoesJOJrtQh7trI5YPbRtMmnA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-simple-access": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/helper-module-imports": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", - "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-optimise-call-expression": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz", - "integrity": "sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", "dev": true, "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.8.3" } }, "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", "dev": true }, "@babel/helper-regex": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", - "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", "dev": true, "requires": { "lodash": "^4.17.13" } }, "@babel/helper-remap-async-to-generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz", - "integrity": "sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-wrap-function": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-replace-supers": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz", - "integrity": "sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", + "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/helper-simple-access": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz", - "integrity": "sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", "dev": true, "requires": { - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.8.3" } }, + "@babel/helper-validator-identifier": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz", + "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==", + "dev": true + }, "@babel/helper-wrap-function": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz", - "integrity": "sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helpers": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz", - "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz", + "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", "dev": true, "requires": { - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0" } }, "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/node": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.7.7.tgz", - "integrity": "sha512-QWWbQ6AyDffz6mA2mF0jixb/3IyRlqWgz5JNa2F6kSYe4vhPEytwuGmanx0NQJxBufDjffm/jYPuIfKfAyVzuA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.8.7.tgz", + "integrity": "sha512-o8cBT3cfRPLwoPh7VBYonSeZypIawGUeVfOIt1xSDgcDdirRGDPZ7/x+FLhhgQmKp3PKbz5Juh9/BNP4Jzrr9Q==", "dev": true, "requires": { - "@babel/register": "^7.7.7", - "commander": "^2.8.1", + "@babel/register": "^7.8.3", + "commander": "^4.0.1", "core-js": "^3.2.1", "lodash": "^4.17.13", "node-environment-flags": "^1.0.5", - "regenerator-runtime": "^0.13.3", + "regenerator-runtime": "^0.13.4", "resolve": "^1.13.1", "v8flags": "^3.1.1" }, "dependencies": { - "resolve": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz", - "integrity": "sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } + "regenerator-runtime": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz", + "integrity": "sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g==", + "dev": true } } }, "@babel/parser": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", - "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz", - "integrity": "sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", + "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.7.4", - "@babel/plugin-syntax-async-generators": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" } }, "@babel/plugin-proposal-class-properties": { @@ -637,463 +693,505 @@ } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz", - "integrity": "sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", + "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz", - "integrity": "sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", + "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", + "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz", - "integrity": "sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz", + "integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.9.5" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz", - "integrity": "sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", + "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz", - "integrity": "sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz", + "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.8.8", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-syntax-async-generators": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz", - "integrity": "sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-dynamic-import": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz", - "integrity": "sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-json-strings": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz", - "integrity": "sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-jsx": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.7.4.tgz", - "integrity": "sha512-wuy6fiMe9y7HeZBWXYCGt2RGxZOj0BImZ9EyXJVnVGBKO/Br592rbR3rtIQn0eQhAk9vqaKP5n8tVqEFBQMfLg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", + "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-syntax-object-rest-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz", - "integrity": "sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz", - "integrity": "sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz", - "integrity": "sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", + "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz", - "integrity": "sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz", - "integrity": "sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.7.4" + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz", + "integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-split-export-declaration": "^7.8.3", + "globals": "^11.1.0" }, "dependencies": { - "@babel/helper-module-imports": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", - "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "@babel/helper-function-name": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.9.5" } }, + "@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "dev": true + }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.5", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } } } }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz", - "integrity": "sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz", - "integrity": "sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "lodash": "^4.17.13" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz", - "integrity": "sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-define-map": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "globals": "^11.1.0" - } - }, "@babel/plugin-transform-computed-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz", - "integrity": "sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-destructuring": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz", - "integrity": "sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz", + "integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz", - "integrity": "sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz", - "integrity": "sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz", - "integrity": "sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-for-of": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz", - "integrity": "sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz", + "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz", - "integrity": "sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz", - "integrity": "sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz", - "integrity": "sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.4.tgz", - "integrity": "sha512-/542/5LNA18YDtg1F+QHvvUSlxdvjZoD/aldQwkq+E3WCkbEjNSN9zdrOXaSlfg3IfGi22ijzecklF/A7kVZFQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz", + "integrity": "sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz", - "integrity": "sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz", + "integrity": "sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.5", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.7.4", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.3" }, "dependencies": { - "@babel/helper-module-imports": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", - "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "dev": true, "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz", - "integrity": "sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-simple-access": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "object.assign": "^4.1.0" } } } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz", - "integrity": "sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz", + "integrity": "sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz", - "integrity": "sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz", + "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz", - "integrity": "sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4" + "@babel/helper-create-regexp-features-plugin": "^7.8.3" } }, "@babel/plugin-transform-new-target": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz", - "integrity": "sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", + "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-object-super": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz", - "integrity": "sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" } }, "@babel/plugin-transform-parameters": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz", - "integrity": "sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz", + "integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.7.4", - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-property-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz", - "integrity": "sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.7.4.tgz", - "integrity": "sha512-sBbIvqYkthai0X0vkD2xsAwluBp+LtNHH+/V4a5ydifmTtb8KOVOlrMIk/MYmIc4uTYDnjZUHQildYNo36SRJw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", + "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.7.4.tgz", - "integrity": "sha512-LixU4BS95ZTEAZdPaIuyg/k8FiiqN9laQ0dMHB4MlpydHY53uQdWCUrwjLr5o6ilS6fAgZey4Q14XBjl5tL6xw==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz", + "integrity": "sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw==", "dev": true, "requires": { - "@babel/helper-builder-react-jsx": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.7.4" + "@babel/helper-builder-react-jsx": "^7.9.0", + "@babel/helper-builder-react-jsx-experimental": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.7.4.tgz", - "integrity": "sha512-PWYjSfqrO273mc1pKCRTIJXyqfc9vWYBax88yIhQb+bpw3XChVC7VWS4VwRVs63wFHKxizvGSd00XEr+YB9Q2A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz", + "integrity": "sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.7.4.tgz", - "integrity": "sha512-5ZU9FnPhqtHsOXxutRtXZAzoEJwDaP32QcobbMP1/qt7NYcsCNK8XgzJcJfoEr/ZnzVvUNInNjIW22Z6I8p9mg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz", + "integrity": "sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-regenerator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.4.tgz", - "integrity": "sha512-e7MWl5UJvmPEwFJTwkBlPmqixCtr9yAASBqff4ggXTNicZiwbF8Eefzm6NVgfiBp7JdAGItecnctKTgH44q2Jw==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", + "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", "dev": true, "requires": { - "regenerator-transform": "^0.14.0" + "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz", - "integrity": "sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", + "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-runtime": { @@ -1109,266 +1207,276 @@ } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz", - "integrity": "sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz", - "integrity": "sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz", - "integrity": "sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" } }, "@babel/plugin-transform-template-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz", - "integrity": "sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz", - "integrity": "sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", + "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz", - "integrity": "sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/preset-env": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.7.tgz", - "integrity": "sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.6.tgz", + "integrity": "sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.7.4", - "@babel/plugin-proposal-dynamic-import": "^7.7.4", - "@babel/plugin-proposal-json-strings": "^7.7.4", - "@babel/plugin-proposal-object-rest-spread": "^7.7.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.7.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.7.7", - "@babel/plugin-syntax-async-generators": "^7.7.4", - "@babel/plugin-syntax-dynamic-import": "^7.7.4", - "@babel/plugin-syntax-json-strings": "^7.7.4", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.7.4", - "@babel/plugin-syntax-top-level-await": "^7.7.4", - "@babel/plugin-transform-arrow-functions": "^7.7.4", - "@babel/plugin-transform-async-to-generator": "^7.7.4", - "@babel/plugin-transform-block-scoped-functions": "^7.7.4", - "@babel/plugin-transform-block-scoping": "^7.7.4", - "@babel/plugin-transform-classes": "^7.7.4", - "@babel/plugin-transform-computed-properties": "^7.7.4", - "@babel/plugin-transform-destructuring": "^7.7.4", - "@babel/plugin-transform-dotall-regex": "^7.7.7", - "@babel/plugin-transform-duplicate-keys": "^7.7.4", - "@babel/plugin-transform-exponentiation-operator": "^7.7.4", - "@babel/plugin-transform-for-of": "^7.7.4", - "@babel/plugin-transform-function-name": "^7.7.4", - "@babel/plugin-transform-literals": "^7.7.4", - "@babel/plugin-transform-member-expression-literals": "^7.7.4", - "@babel/plugin-transform-modules-amd": "^7.7.5", - "@babel/plugin-transform-modules-commonjs": "^7.7.5", - "@babel/plugin-transform-modules-systemjs": "^7.7.4", - "@babel/plugin-transform-modules-umd": "^7.7.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", - "@babel/plugin-transform-new-target": "^7.7.4", - "@babel/plugin-transform-object-super": "^7.7.4", - "@babel/plugin-transform-parameters": "^7.7.7", - "@babel/plugin-transform-property-literals": "^7.7.4", - "@babel/plugin-transform-regenerator": "^7.7.5", - "@babel/plugin-transform-reserved-words": "^7.7.4", - "@babel/plugin-transform-shorthand-properties": "^7.7.4", - "@babel/plugin-transform-spread": "^7.7.4", - "@babel/plugin-transform-sticky-regex": "^7.7.4", - "@babel/plugin-transform-template-literals": "^7.7.4", - "@babel/plugin-transform-typeof-symbol": "^7.7.4", - "@babel/plugin-transform-unicode-regex": "^7.7.4", - "@babel/types": "^7.7.4", - "browserslist": "^4.6.0", - "core-js-compat": "^3.6.0", + "@babel/compat-data": "^7.9.6", + "@babel/helper-compilation-targets": "^7.9.6", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-numeric-separator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.9.6", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.9.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.9.5", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.9.5", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.9.0", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.9.6", + "@babel/plugin-transform-modules-commonjs": "^7.9.6", + "@babel/plugin-transform-modules-systemjs": "^7.9.6", + "@babel/plugin-transform-modules-umd": "^7.9.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.9.5", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.9.6", + "browserslist": "^4.11.1", + "core-js-compat": "^3.6.2", "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", + "levenary": "^1.1.1", "semver": "^5.5.0" }, "dependencies": { - "@babel/helper-module-imports": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", - "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz", - "integrity": "sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-simple-access": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4", - "lodash": "^4.17.13" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz", - "integrity": "sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz", - "integrity": "sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" - } + "@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "dev": true }, "@babel/plugin-transform-modules-amd": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz", - "integrity": "sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz", + "integrity": "sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.5", - "@babel/helper-plugin-utils": "^7.0.0", - "babel-plugin-dynamic-import-node": "^2.3.0" + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, - "@babel/plugin-transform-parameters": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz", - "integrity": "sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew==", + "@babel/plugin-transform-modules-systemjs": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz", + "integrity": "sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg==", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.7.4", - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz", - "integrity": "sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.0" + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.5", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, - "caniuse-lite": { - "version": "1.0.30001016", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz", - "integrity": "sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA==", - "dev": true - }, - "core-js-compat": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.0.tgz", - "integrity": "sha512-Z3eCNjGgoYluH89Jt4wVkfYsc/VdLrA2/woX5lm0isO/pCT+P+Y+o65bOuEnjDJLthdwTBxbCVzptTXtc18fJg==", + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "dev": true, "requires": { - "browserslist": "^4.8.2", - "semver": "7.0.0" - }, - "dependencies": { - "browserslist": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.2.tgz", - "integrity": "sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001015", - "electron-to-chromium": "^1.3.322", - "node-releases": "^1.1.42" - } - }, - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "object.assign": "^4.1.0" } }, + "browserslist": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", + "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001043", + "electron-to-chromium": "^1.3.413", + "node-releases": "^1.1.53", + "pkg-up": "^2.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001048", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz", + "integrity": "sha512-g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg==", + "dev": true + }, "electron-to-chromium": { - "version": "1.3.322", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz", - "integrity": "sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==", + "version": "1.3.427", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.427.tgz", + "integrity": "sha512-/rG5G7Opcw68/Yrb4qYkz07h3bESVRJjUl4X/FrKLXzoUJleKm6D7K7rTTz8V5LUWnd+BbTOyxJX2XprRqHD8A==", "dev": true }, - "node-releases": { - "version": "1.1.43", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.43.tgz", - "integrity": "sha512-Rmfnj52WNhvr83MvuAWHEqXVoZXCcDQssSOffU4n4XOL9sPrP61mSZ88g25NqmABDvH7PiAlFCzoSCSdzA293w==", + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "node-releases": { + "version": "1.1.53", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz", + "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" } } } }, + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, "@babel/preset-react": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.0.0.tgz", @@ -1383,9 +1491,9 @@ } }, "@babel/register": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.7.7.tgz", - "integrity": "sha512-S2mv9a5dc2pcpg/ConlKZx/6wXaEwHeqfo7x/QbXsdCAZm+WJC1ekVvL1TVxNsedTs5y/gG63MhJTEsmwmjtiA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.9.0.tgz", + "integrity": "sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q==", "dev": true, "requires": { "find-cache-dir": "^2.0.0", @@ -1396,95 +1504,77 @@ } }, "@babel/runtime": { - "version": "7.7.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.6.tgz", - "integrity": "sha512-BWAJxpNVa0QlE5gZdWjSxXtemZyZ9RmrmVozxt3NUXeZhVIJ5ANyqmMc0JDrivBZyxUuQvFxlvH4OWWOogGfUw==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.2" + "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - }, - "dependencies": { - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", - "dev": true - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" }, "dependencies": { - "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", - "dev": true - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "@babel/generator": { + "version": "7.9.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.3.tgz", + "integrity": "sha512-RpxM252EYsz9qLUIq6F7YJyK1sv0wWDBFuztfDGWaQKzHjqDHysxSiRUpA/X9jmfqo+WzkAVKFaUily5h+gDCQ==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/types": "^7.9.0", + "jsesc": "^2.5.1", "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "source-map": "^0.5.0" } } } }, "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, + "@blueoak/list": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@blueoak/list/-/list-1.0.2.tgz", + "integrity": "sha512-KyqT0kkdxgbGys9mvo/1Mgdt/LGvUFPCZIK9pWPIfOM2mYzMDd/eVYy4sMP1YqvVI129k0alxRyM53H2MAs/Nw==", + "dev": true + }, "@cypress/browserify-preprocessor": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@cypress/browserify-preprocessor/-/browserify-preprocessor-2.1.1.tgz", - "integrity": "sha512-S+0bzZbRsiFbrLkEygu5D0958z4ejio7hWxnO5MoSqD7SmZOmGRpjuZ9RaGcDmL6RWnklNjn8DkpP2s368qCKA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cypress/browserify-preprocessor/-/browserify-preprocessor-3.0.0.tgz", + "integrity": "sha512-8CXLCKlXVUnad5TjwVswq4nwwWVyt5Z+HMgrFaD2yF7A62AA6OYDrShTQnG6M6+hr1cq1X4zYbo7VT4oxex5hA==", "dev": true, "requires": { "@babel/core": "7.4.5", @@ -1494,15 +1584,16 @@ "@babel/preset-env": "7.4.5", "@babel/preset-react": "7.0.0", "@babel/runtime": "7.3.1", - "babel-plugin-add-module-exports": "1.0.0", + "babel-plugin-add-module-exports": "1.0.2", "babelify": "10.0.0", "bluebird": "3.5.3", "browserify": "16.2.3", "coffeeify": "3.0.1", "coffeescript": "1.12.7", "debug": "4.1.1", - "fs-extra": "7.0.1", + "fs-extra": "9.0.0", "lodash.clonedeep": "4.5.0", + "through2": "^2.0.0", "watchify": "3.11.1" }, "dependencies": { @@ -1595,13 +1686,14 @@ }, "dependencies": { "@babel/plugin-proposal-object-rest-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz", - "integrity": "sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ==", + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz", + "integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.9.5" } } } @@ -1615,12 +1707,6 @@ "regenerator-runtime": "^0.12.0" } }, - "bluebird": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", - "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", - "dev": true - }, "coffeescript": { "version": "1.12.7", "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.12.7.tgz", @@ -1628,14 +1714,25 @@ "dev": true }, "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" } }, "regenerator-runtime": { @@ -1643,102 +1740,207 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true } } }, "@cypress/code-coverage": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/@cypress/code-coverage/-/code-coverage-1.10.4.tgz", - "integrity": "sha512-wIvKn4HEJR2kCiSi0pY1u6IPGG04W7jCJKWVELeIojteHV5d0Jj9dFwwLofwmJr0DWtQsx6lFQfW8NA8z/CUow==", + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/@cypress/code-coverage/-/code-coverage-3.7.6.tgz", + "integrity": "sha512-uJiI+DmNO8JjoXpXXt0V9nCcVZdb9JfwedQ2tPN8q7g1oyGQ/Cyn52/4GiDwUuny832i8kKhOSxTD/gpDJjy8Q==", "dev": true, "requires": { - "@cypress/browserify-preprocessor": "2.1.1", + "@cypress/browserify-preprocessor": "3.0.0", "debug": "4.1.1", - "execa": "3.4.0" + "execa": "4.0.2", + "globby": "11.0.0", + "istanbul-lib-coverage": "3.0.0", + "nyc": "15.0.1" }, "dependencies": { - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "globby": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz", + "integrity": "sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg==", "dev": true, "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "npm-run-path": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.0.tgz", - "integrity": "sha512-8eyAOAH+bYXFPSnNnKr3J+yoybe8O87Is5rtAQ8qRczJz1ajcsjg8l2oZqP+Ppx15Ii3S1vUTjQN2h4YO2tWWQ==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "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 - }, - "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, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "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 - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" } } } }, "@cypress/fiddle": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@cypress/fiddle/-/fiddle-1.4.0.tgz", - "integrity": "sha512-hvlkV7GU86LxMeOt8/5/54wtVFFUcbr4nQLNlY8cn9Me0u/kLgEjl+JMc6mA4bFmnyqOL4JYNnI5dCqbisVLRw==", + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/@cypress/fiddle/-/fiddle-1.18.2.tgz", + "integrity": "sha512-VmKFgETN9oGOaAOY7OoSwLCsM5rILfOyGH0D1MS+U8v3EkAh0I7hhzzu2hCBmVqERmqftnjmm/Avrec8aGFPBg==", "dev": true, "requires": { - "@cypress/browserify-preprocessor": "2.1.1", - "@textlint/markdown-to-ast": "6.1.6", + "@cypress/browserify-preprocessor": "2.1.4", + "@textlint/markdown-to-ast": "6.1.7", + "arg": "4.1.3", "common-tags": "1.8.0", "debug": "4.1.1", - "safe-marked": "2.0.0", + "safe-marked": "3.0.0", "temp-write": "4.0.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.4.5.tgz", + "integrity": "sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.4.4", + "@babel/helpers": "^7.4.4", + "@babel/parser": "^7.4.5", + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.4.5", + "@babel/types": "^7.4.4", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.11", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz", + "integrity": "sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + } + }, + "@babel/preset-env": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.4.5.tgz", + "integrity": "sha512-f2yNVXM+FsR5V8UwcFeIHzHWgnhXg3NpRmy0ADvALpnhB0SLbCvrCRr4BLOUYbQNLS+Z0Yer46x9dJXpXewI7w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.4.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.4.4", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.4.4", + "@babel/plugin-transform-classes": "^7.4.4", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.4.4", + "@babel/plugin-transform-function-name": "^7.4.4", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-member-expression-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.4.4", + "@babel/plugin-transform-modules-systemjs": "^7.4.4", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5", + "@babel/plugin-transform-new-target": "^7.4.4", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.4.4", + "@babel/plugin-transform-property-literals": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.4.5", + "@babel/plugin-transform-reserved-words": "^7.2.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.4.4", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "browserslist": "^4.6.0", + "core-js-compat": "^3.1.1", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.5.0" + }, + "dependencies": { + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz", + "integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.9.5" + } + } + } + }, + "@babel/runtime": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", + "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.12.0" + } + }, + "@cypress/browserify-preprocessor": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@cypress/browserify-preprocessor/-/browserify-preprocessor-2.1.4.tgz", + "integrity": "sha512-149D1E2UzY7kCjnXDofx61MeJ6HQczj5XCAPjRUPpYr/A7T/O4C0IlTLZYV2xxnDD68d71NfT/cT8s0sfi27RQ==", + "dev": true, + "requires": { + "@babel/core": "7.4.5", + "@babel/plugin-proposal-class-properties": "7.3.0", + "@babel/plugin-proposal-object-rest-spread": "7.3.2", + "@babel/plugin-transform-runtime": "7.2.0", + "@babel/preset-env": "7.4.5", + "@babel/preset-react": "7.0.0", + "@babel/runtime": "7.3.1", + "babel-plugin-add-module-exports": "1.0.2", + "babelify": "10.0.0", + "bluebird": "3.5.3", + "browserify": "16.2.3", + "coffeeify": "3.0.1", + "coffeescript": "1.12.7", + "debug": "4.1.1", + "fs-extra": "7.0.1", + "lodash.clonedeep": "4.5.0", + "watchify": "3.11.1" + } + }, + "coffeescript": { + "version": "1.12.7", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.12.7.tgz", + "integrity": "sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", + "dev": true + } } }, "@cypress/listr-verbose-renderer": { @@ -1778,16 +1980,6 @@ "supports-color": "^2.0.0" } }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -1805,6 +1997,52 @@ } } }, + "@cypress/request": { + "version": "2.88.5", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.5.tgz", + "integrity": "sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, "@cypress/xvfb": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", @@ -1826,6 +2064,72 @@ } } }, + "@fintechstudios/eslint-plugin-chai-as-promised": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@fintechstudios/eslint-plugin-chai-as-promised/-/eslint-plugin-chai-as-promised-3.0.2.tgz", + "integrity": "sha512-mHavP4gRhtpLwpKkoGZ3GHnKhyeCc7CeSXWLbgehEKGQNRD97ye8jlrwda/Xfc74Xn7MtLG4CJgA3fTIK6bveQ==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", + "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "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 + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, "@mysticatea/eslint-plugin": { "version": "13.0.0", "resolved": "https://registry.npmjs.org/@mysticatea/eslint-plugin/-/eslint-plugin-13.0.0.tgz", @@ -1841,6 +2145,38 @@ "eslint-plugin-vue": "~6.0.0", "prettier": "~1.19.1", "vue-eslint-parser": "^7.0.0" + }, + "dependencies": { + "eslint-plugin-eslint-comments": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.1.2.tgz", + "integrity": "sha512-QexaqrNeteFfRTad96W+Vi4Zj1KFbkHHNMMaHZEYcovKav6gdomyGzaxSDSL3GoIyUOo078wRAdYlu1caiauIQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + } + }, + "eslint-plugin-node": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz", + "integrity": "sha512-1CSyM/QCjs6PXaT18+zuAXsjXGIGo5Rw630rSKwokSs2jrYURQc4R5JZpoanNCqwNmepg+0eZ9L7YiRUJb8jiQ==", + "dev": true, + "requires": { + "eslint-plugin-es": "^2.0.0", + "eslint-utils": "^1.4.2", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "@nodelib/fs.scandir": { @@ -1875,6 +2211,59 @@ "integrity": "sha512-7XHoRB61hxsz8lBQrjC1tq/3OEIgpvGWg6DKAdwi7WRzruwkmsdwmOoUXbU4Dtd4RSOMDwed0SkP3y8UlMt1Bg==", "dev": true }, + "@rollup/plugin-babel": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.0.2.tgz", + "integrity": "sha512-GiL7jL+FGppzQ1Sn4y2ER4UYXlgXFFEt+sHm4WJEzQwI76Yf9oy2QDqIvcon6xApZWlik3L8fezRGC6Mj2vRXg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.7.4", + "@rollup/pluginutils": "^3.0.8" + } + }, + "@rollup/pluginutils": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.10.tgz", + "integrity": "sha512-d44M7t+PjmMrASHbhgpSbVgtL6EFyX7J4mYxwQ/c5eoaE6N2VgCgEcWVzNnwycIloti+/MpwFr8qfw+nRw00sw==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + }, + "@samverschueren/stream-to-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", + "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==", + "dev": true, + "requires": { + "any-observable": "^0.3.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, "@textlint/ast-node-types": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.2.5.tgz", @@ -1882,9 +2271,9 @@ "dev": true }, "@textlint/markdown-to-ast": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.1.6.tgz", - "integrity": "sha512-xIaMn6gW1Ig+M+2Xcdbxt4cgOqWJSuB0pIO98KppQyqPzQ5k5deea7SBABqLZiKeNIxLl+2C1vfIfnBFFjxlmg==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.1.7.tgz", + "integrity": "sha512-B0QtokeQR4a9+4q0NQr8T9l7A1fFihTN5Ze57tVgqW+3ymzXEouh8DvPHeNQ4T6jEkAThvdjk95mxAMpGRJ79w==", "dev": true, "requires": { "@textlint/ast-node-types": "^4.2.5", @@ -1896,6 +2285,24 @@ "unified": "^6.1.6" } }, + "@tokenizer/token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.1.1.tgz", + "integrity": "sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w==", + "dev": true + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "@types/debug": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", + "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==", + "dev": true + }, "@types/eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", @@ -1903,9 +2310,9 @@ "dev": true }, "@types/estree": { - "version": "0.0.40", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.40.tgz", - "integrity": "sha512-p3KZgMto/JyxosKGmnLDJ/dG5wf+qTRMUjHJcspC2oQKa4jP7mz+tv0ND56lLBu3ojHlhzY33Ol+khLyNmilkA==", + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, "@types/events": { @@ -1926,15 +2333,15 @@ } }, "@types/json-schema": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.3.tgz", - "integrity": "sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", + "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", "dev": true }, "@types/marked": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.6.5.tgz", - "integrity": "sha512-6kBKf64aVfx93UJrcyEZ+OBM5nGv4RLsI6sR1Ar34bpgvGVRoyTgpxn4ZmtxOM5aDTAaaznYuYUH8bUX3Nk3YA==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.7.4.tgz", + "integrity": "sha512-fdg0NO4qpuHWtZk6dASgsrBggY+8N4dWthl1bAQG9ceKUNKFjqpHaDKCAhRUI6y8vavG7hLSJ4YBwJtZyZEXqw==", "dev": true }, "@types/minimatch": { @@ -1943,10 +2350,16 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, + "@types/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=", + "dev": true + }, "@types/node": { - "version": "12.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.7.tgz", - "integrity": "sha512-E6Zn0rffhgd130zbCbAr/JdXfXkoOUFAKNs/rF8qnafSJ8KYaA/j3oz7dcwal+lYjLA7xvdd5J4wdYpCTlP8+w==", + "version": "13.7.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.4.tgz", + "integrity": "sha512-oVeL12C6gQS/GAExndigSaLxTrKpQPxewx9bOcwfvJiJge4rr7wNaph4J+ns5hrmIV2as5qxqN8YKthn9qh0jw==", "dev": true }, "@types/normalize-package-data": { @@ -1961,6 +2374,12 @@ "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==", "dev": true }, + "@types/sinonjs__fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz", + "integrity": "sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==", + "dev": true + }, "@types/sizzle": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz", @@ -2042,25 +2461,25 @@ } }, "abab": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.2.tgz", - "integrity": "sha512-2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", + "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", "dev": true }, "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", "dev": true }, "acorn-globals": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", - "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "dev": true, "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" } }, "acorn-jsx": { @@ -2078,26 +2497,12 @@ "acorn": "^7.0.0", "acorn-walk": "^7.0.0", "xtend": "^4.0.2" - }, - "dependencies": { - "acorn": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", - "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", - "dev": true - }, - "acorn-walk": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.0.0.tgz", - "integrity": "sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==", - "dev": true - } } }, "acorn-walk": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", - "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", + "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==", "dev": true }, "add-filename-increment": { @@ -2109,37 +2514,61 @@ "strip-filename-increment": "^2.0.1" } }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "dependencies": { + "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 + } + } + }, + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, - "anafanafo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/anafanafo/-/anafanafo-1.0.0.tgz", - "integrity": "sha512-pDPbI7SFRHu0byMXHAf+v74+LCcHSxnLYkcbfiV91XRlE+NSLpFCpEQdVUy9ZxZw/LuhTrOin4r8wlR3OFrKBA==", + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "dev": true, "requires": { - "char-width-table-consumer": "^1.0.0" + "string-width": "^3.0.0" } }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "ansi-styles": { @@ -2151,23 +2580,40 @@ "color-convert": "^1.9.0" } }, + "any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "dev": true + }, "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, "append-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", - "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", "dev": true, "requires": { - "default-require-extensions": "^2.0.0" + "default-require-extensions": "^3.0.0" } }, "arch": { @@ -2182,6 +2628,12 @@ "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -2209,10 +2661,10 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true }, "array-find-index": { @@ -2221,66 +2673,23 @@ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "dev": true }, + "array-flat-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-flat-polyfill/-/array-flat-polyfill-1.0.1.tgz", + "integrity": "sha512-hfJmKupmQN0lwi0xG6FQ5U8Rd97RnIERplymOv/qpq8AoNKPPAnxJadjFA23FNWm88wykh9HmpLJUUwUtNU/iw==", + "dev": true + }, "array-includes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.0.tgz", - "integrity": "sha512-ONOEQoKrvXPKk7Su92Co0YMqYO32FfqJTzkKU9u2UpIXyYZIzLSvpdg4AwvSw4mSUW0czu6inK+zby6Oj6gDjQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", "dev": true, "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0-next.1.tgz", - "integrity": "sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - } + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" } }, - "array-parallel": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/array-parallel/-/array-parallel-0.1.3.tgz", - "integrity": "sha1-j3hTCJJu1apHjEfmTRszS2wMlH0=", - "dev": true - }, - "array-series": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/array-series/-/array-series-0.1.5.tgz", - "integrity": "sha1-3103v8XC7wdV4qpPkv6ufUtaly8=", - "dev": true - }, "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -2301,44 +2710,6 @@ "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0-next.1.tgz", - "integrity": "sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - } } }, "arrify": { @@ -2347,6 +2718,12 @@ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -2407,9 +2784,9 @@ "dev": true }, "ast-metadata-inferer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.1.1.tgz", - "integrity": "sha512-hc9w8Qrgg9Lf9iFcZVhNjUnhrd2BBpTlyCnegPVvCe6O0yMrF57a6Cmh7k+xUsfUOMh9wajOL5AsGOBNEyTCcw==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.2.0.tgz", + "integrity": "sha512-6yPph2NeCHNxoI/ZmjklYaLOSZDAx+0L0+wsXnF56FxmjxvUlYZSWcj1KXtXO8IufruQTzVFOjg1+IzdDazSPg==", "dev": true }, "astral-regex": { @@ -2419,13 +2796,10 @@ "dev": true }, "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", + "dev": true }, "async-each": { "version": "1.0.3", @@ -2433,18 +2807,18 @@ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -2458,797 +2832,18 @@ "dev": true }, "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, - "axe-core": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.4.1.tgz", - "integrity": "sha512-+EhIdwR0hF6aeMx46gFDUy6qyCfsL0DmBrV3Z+LxYbsOd8e1zBaPHa3f9Rbjsz2dEwSBkLw6TwML/CAIIAqRpw==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", "dev": true }, "babel-plugin-add-module-exports": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.0.tgz", - "integrity": "sha512-m0sMxPL4FaN2K69GQgaRJa4Ny15qKSdoknIcpN+gz+NaJlAW9pge/povs13tPYsKDboflrEQC+/3kfIsONBTaw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.2.tgz", + "integrity": "sha512-4paN7RivvU3Rzju1vGSHWPjO8Y0rI6droWvSFKI6dvEQ4mvoV0zGojnlzVRfI6N8zISo6VERXt3coIuVmzuvNg==", "dev": true, "requires": { "chokidar": "^2.0.4" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } } }, "babel-plugin-dynamic-import-node": { @@ -3281,10 +2876,21 @@ "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", "dev": true }, + "badge-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/badge-up/-/badge-up-3.0.0.tgz", + "integrity": "sha512-bNrXtNek8Ln4e8lb/oMq15OWwrEFzUlmkoiwzjs66Kst2XvBxo8PIgQxaYUIqrccLi5OKWXvA4rg4n6THTtaoQ==", + "dev": true, + "requires": { + "css-color-names": "~1.0.1", + "dot": "^1.1.3", + "svgo": "^1.3.2" + } + }, "bail": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.4.tgz", - "integrity": "sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", "dev": true }, "balanced-match": { @@ -3364,21 +2970,25 @@ } }, "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, - "binary-search": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/binary-search/-/binary-search-1.3.6.tgz", - "integrity": "sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==", - "dev": true + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } }, "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", "dev": true }, "bn.js": { @@ -3399,6 +3009,112 @@ "integrity": "sha1-TWfcJgLAzBbdm85+v4fpSCkPWBI=", "dev": true }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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 + }, + "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 + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3410,12 +3126,32 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "brorand": { @@ -3439,9 +3175,9 @@ } }, "browser-process-hrtime": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, "browser-resolve": { @@ -3461,6 +3197,12 @@ } } }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, "browserify": { "version": "16.2.3", "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.2.3.tgz", @@ -3515,41 +3257,6 @@ "util": "~0.10.1", "vm-browserify": "^1.0.0", "xtend": "^4.0.0" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } } }, "browserify-aes": { @@ -3624,20 +3331,21 @@ } }, "browserslist": { - "version": "4.6.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz", - "integrity": "sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.0.tgz", + "integrity": "sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000984", - "electron-to-chromium": "^1.3.191", - "node-releases": "^1.1.25" + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.380", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" } }, "buffer": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz", - "integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", "dev": true, "requires": { "base64-js": "^1.0.2", @@ -3685,6 +3393,29 @@ "unset-value": "^1.0.0" } }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, "cached-path-relative": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", @@ -3692,24 +3423,38 @@ "dev": true }, "cachedir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-1.3.0.tgz", - "integrity": "sha512-O1ji32oyON9laVPJL1IZ5bmwd2cB46VfpxkDequezH+15FDzzVddEyrGEeX4WusDSqKxdyFdDQDEG1yo1GoWkg==", - "dev": true, - "requires": { - "os-homedir": "^1.0.1" - } + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true }, "caching-transform": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", - "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, "requires": { - "hasha": "^3.0.0", - "make-dir": "^2.0.0", - "package-hash": "^3.0.0", - "write-file-atomic": "^2.4.2" + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "callsites": { @@ -3719,32 +3464,32 @@ "dev": true }, "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.1.tgz", + "integrity": "sha512-BPCNVH56RVIxQQIXskp5tLQXUNGQ6sXr7iCv1FHDt81xBOQ/1r6H8SPxf19InVP6DexWar4s87q9thfuk8X9HA==", "dev": true, "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" } }, "caniuse-db": { - "version": "1.0.30001016", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001016.tgz", - "integrity": "sha512-4G/7ef/NFSAsn9nFIiPvQr+ayoeLJP3wnQH23BPBJKofNdxFild5dokOjUj4tLFA5yd/VHllhzX55IPLwXhRtg==", + "version": "1.0.30001067", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001067.tgz", + "integrity": "sha512-idoz9VRtF3ycVF7NdeOkyHhmGBLZq3i4ib54v5LGEp/gnt/Vo0A2VWwF5zIigb/pIMzeCMqOMx2ioFfNh3P3EQ==", "dev": true }, "caniuse-lite": { - "version": "1.0.30000988", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000988.tgz", - "integrity": "sha512-lPj3T8poYrRc/bniW5SQPND3GRtSrQdUM/R4mCYTbZxyi3jQiggLvZH4+BYUuX0t4TXjU+vMM7KFDQg+rSzZUQ==", + "version": "1.0.30001038", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz", + "integrity": "sha512-zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ==", "dev": true }, "caseless": { @@ -3760,20 +3505,12 @@ "dev": true, "requires": { "lodash": "^4.17.14" - }, - "dependencies": { - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", - "dev": true - } } }, "ccount": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.4.tgz", - "integrity": "sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz", + "integrity": "sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw==", "dev": true }, "chalk": { @@ -3787,37 +3524,28 @@ "supports-color": "^5.3.0" } }, - "char-width-table-consumer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/char-width-table-consumer/-/char-width-table-consumer-1.0.0.tgz", - "integrity": "sha512-Fz4UD0LBpxPgL9i29CJ5O4KANwaMnX/OhhbxzvNa332h+9+nRKyeuLw4wA51lt/ex67+/AdsoBQJF3kgX2feYQ==", - "dev": true, - "requires": { - "binary-search": "^1.3.5" - } - }, "character-entities": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.3.tgz", - "integrity": "sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", "dev": true }, "character-entities-html4": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.3.tgz", - "integrity": "sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", + "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==", "dev": true }, "character-entities-legacy": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz", - "integrity": "sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", "dev": true }, "character-reference-invalid": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz", - "integrity": "sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", "dev": true }, "chardet": { @@ -3833,25 +3561,29 @@ "dev": true }, "chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "cipher-base": { @@ -3896,6 +3628,18 @@ "escape-string-regexp": "^1.0.5" } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", + "dev": true + }, "cli-cursor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", @@ -3905,11 +3649,43 @@ "restore-cursor": "^1.0.1" } }, - "cli-spinners": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", - "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", - "dev": true + "cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } }, "cli-truncate": { "version": "0.2.1", @@ -3959,9 +3735,9 @@ } }, "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "cliui": { @@ -3973,31 +3749,15 @@ "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" } }, "co": { @@ -4034,15 +3794,15 @@ } }, "coffeescript": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.4.1.tgz", - "integrity": "sha512-34GV1aHrsMpTaO3KfMJL40ZNuvKDR/g98THHnE9bQj8HjMaZvSrLik99WWqyMhRtbe8V5hpx5iLgdcSvM/S2wg==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.5.1.tgz", + "integrity": "sha512-J2jRPX0eeFh5VKyVnoLrfVFgLZtnnmp96WQSLAS8OrLm2wtQLcnikYKe1gViJKDH7vucjuhHvBKKBP3rKcD1tQ==", "dev": true }, "collapse-white-space": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.5.tgz", - "integrity": "sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", "dev": true }, "collection-visit": { @@ -4071,9 +3831,9 @@ "dev": true }, "colors": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", - "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, "combine-source-map": { @@ -4093,12 +3853,6 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", "dev": true - }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true } } }, @@ -4111,16 +3865,65 @@ "delayed-stream": "~1.0.0" } }, + "command-line-args": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz", + "integrity": "sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==", + "dev": true, + "requires": { + "array-back": "^3.0.1", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + } + }, + "command-line-basics": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/command-line-basics/-/command-line-basics-0.8.0.tgz", + "integrity": "sha512-D/GqMaWILtpkLo+IZfz6ngWkxI2Tv3Edu7zqmSsSV+vB8eC/Z1RKLObVS6tz//D5/rNFfLfBTzEpnVOLVo9RXw==", + "dev": true, + "requires": { + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "update-notifier": "^4.1.0" + } + }, + "command-line-usage": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.0.tgz", + "integrity": "sha512-Ew1clU4pkUeo6AFVDFxCbnN7GIZfXl48HIOQeFQnkO3oOqvpI7wdqtLRwv9iOCZ/7A+z4csVZeiDdEcj8g6Wiw==", + "dev": true, + "requires": { + "array-back": "^4.0.0", + "chalk": "^2.4.2", + "table-layout": "^1.0.0", + "typical": "^5.2.0" + }, + "dependencies": { + "array-back": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz", + "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==", + "dev": true + }, + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true + } + } + }, "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true }, "comment-parser": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.1.tgz", - "integrity": "sha512-YLgOoek/4xgO9wDbNi54wwnzpWseqz4ju2qbezDOv6PIf72w8Z7YajwVfEmd6dhnuRrEmo0vCIuG8B6gKz2d8A==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.4.tgz", + "integrity": "sha512-Nnl77/mt6sj1BiYSVMeMWzvD0183F2MFOJyFRmZHimUVDYS9J40AvXpiFA7RpU5pQH+HkvYc0dnsHpwW2xmbyQ==", "dev": true }, "common-tags": { @@ -4148,17 +3951,48 @@ "dev": true }, "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", - "readable-stream": "^3.0.2", + "readable-stream": "^2.2.2", "typedarray": "^0.0.6" } }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", @@ -4184,6 +4018,14 @@ "dev": true, "requires": { "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } } }, "copy-descriptor": { @@ -4193,9 +4035,9 @@ "dev": true }, "copyfiles": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.1.1.tgz", - "integrity": "sha512-y6DZHve80whydXzBal7r70TBgKMPKesVRR1Sn/raUu7Jh/i7iSLSyGvYaq0eMJ/3Y/CKghwzjY32q1WzEnpp3Q==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.2.0.tgz", + "integrity": "sha512-iJbHJI+8OKqsq+4JF0rqgRkZzo++jqO6Wf4FUU1JM41cJF6JcY5968XyF4tm3Kkm7ZOMrqlljdm8N9oyY5raGw==", "dev": true, "requires": { "glob": "^7.0.5", @@ -4207,63 +4049,31 @@ } }, "core-js": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.0.tgz", - "integrity": "sha512-AHPTNKzyB+YwgDWoSOCaid9PUSEF6781vsfiK8qUz62zRR448/XgK2NtCbpiUGizbep8Lrpt0Du19PpGGZvw3Q==", + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", "dev": true }, "core-js-bundle": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/core-js-bundle/-/core-js-bundle-3.6.0.tgz", - "integrity": "sha512-f5B3y6MPl/r5MNotttumSGQMXvGoaXPfy0uH9oW8K2acrNi0LsoOtsDNVqMUjzwg2DAAmBLMeizhEJch+PHL/A==", + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-bundle/-/core-js-bundle-3.6.5.tgz", + "integrity": "sha512-awf49McIBT3sDXceSex69w/i7PMXQwxI4ZqknCtaYbW4Q0u0HUZiaQLlPD6pU2nFBofIowgWIS1ANgHjqnQu4Q==", "dev": true }, "core-js-compat": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.2.tgz", - "integrity": "sha512-W0Aj+LM3EAxxjD0Kp2o4be8UlnxIZHNupBv2znqrheR4aY2nOn91794k/xoSp+SxqqriiZpTsSwBtZr60cbkwQ==", + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", + "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", "dev": true, "requires": { - "browserslist": "^4.7.3", - "semver": "^6.3.0" + "browserslist": "^4.8.5", + "semver": "7.0.0" }, "dependencies": { - "browserslist": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.3.tgz", - "integrity": "sha512-jWvmhqYpx+9EZm/FxcZSbUZyDEvDTLDi3nSAKbzEkyWvtI0mNSmUosey+5awDW1RUlrgXbQb5A6qY1xQH9U6MQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001010", - "electron-to-chromium": "^1.3.306", - "node-releases": "^1.1.40" - } - }, - "caniuse-lite": { - "version": "1.0.30001011", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001011.tgz", - "integrity": "sha512-h+Eqyn/YA6o6ZTqpS86PyRmNWOs1r54EBDcd2NTwwfsXQ8re1B38SnB+p2RKF8OUsyEIjeDU8XGec1RGO/wYCg==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.311", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.311.tgz", - "integrity": "sha512-7GH6RKCzziLzJ9ejmbiBEdzHZsc6C3eRpav14dmRfTWMpNgMqpP1ukw/FU/Le2fR+ep642naq7a23xNdmh2s+A==", - "dev": true - }, - "node-releases": { - "version": "1.1.41", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.41.tgz", - "integrity": "sha512-+IctMa7wIs8Cfsa8iYzeaLTFwv5Y4r5jZud+4AnfymzeEXKBCavFX0KBgzVaPVqf0ywa6PrO8/b+bPqdwjGBSg==", - "dev": true, - "requires": { - "semver": "^6.3.0" - } - }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true } } @@ -4274,17 +4084,27 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "cp-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", - "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", + "correct-license-metadata": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/correct-license-metadata/-/correct-license-metadata-1.4.0.tgz", + "integrity": "sha512-nvbNpK/aYCbztZWGi9adIPqR+ZcQmZTWNT7eMYLvkaVGroN1nTHiVuuNPl7pK6ZNx1mvDztlRBJtfUdrVwKJ5A==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^2.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^4.0.1", - "safe-buffer": "^5.0.1" + "spdx-expression-validate": "^2.0.0" + } + }, + "coveradge": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/coveradge/-/coveradge-0.6.0.tgz", + "integrity": "sha512-iIoBP0JhDT+oqm8dxP6SRXc6DJijBm8wdEyDKOXQAMY2JCILsdOgvIH1fK1pmLfzbasyopkLvdtCJNRksUZddQ==", + "dev": true, + "requires": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "array-flat-polyfill": "^1.0.1", + "badge-up": "^3.0.0", + "command-line-basics": "^0.8.0", + "es6-template-strings": "^2.0.1", + "istanbul-lib-report": "^3.0.0" } }, "create-ecdh": { @@ -4325,16 +4145,14 @@ } }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, "crypto-browserify": { @@ -4356,6 +4174,18 @@ "randomfill": "^1.0.3" } }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "css-color-names": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz", + "integrity": "sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==", + "dev": true + }, "css-select": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", @@ -4399,24 +4229,48 @@ "dev": true }, "csso": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.2.tgz", - "integrity": "sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", + "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", "dev": true, "requires": { - "css-tree": "1.0.0-alpha.37" + "css-tree": "1.0.0-alpha.39" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", + "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", + "dev": true, + "requires": { + "mdn-data": "2.0.6", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", + "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "cssom": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.2.tgz", - "integrity": "sha512-fVXFVBr7JPDcgqa92UNr6HIpeMypyG/XVloB+512KH43Z2aum8ZNVzRapWR4mZ/f2UlRMymIoDO3aFJmQ6Y3RA==", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", "dev": true }, "cssstyle": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.0.0.tgz", - "integrity": "sha512-QXSAu2WBsSRXCPjvI43Y40m6fMevvyRm8JVAuF9ksQz5jha4pWP1wpaK7Yu5oLFc6+XAY+hj8YhefyXcBB53gg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "requires": { "cssom": "~0.3.6" @@ -4430,84 +4284,84 @@ } } }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, "cypress": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-3.8.0.tgz", - "integrity": "sha512-gtEbqCgKETRc3pQFMsELRgIBNgiQg7vbOWTrCi7WE7bgOwNCaW9PEX8Jb3UN8z/maIp9WwzoFfeySfelYY7nRA==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.6.0.tgz", + "integrity": "sha512-vIPXAceRP+Nxvnm/O9ruY9EQaRGmVVybtk9F1sfC9mH3067YbitrdBTynaaLuHFj90p9e0U2ZCV7OkX4x4V/Wg==", "dev": true, "requires": { "@cypress/listr-verbose-renderer": "0.4.1", + "@cypress/request": "2.88.5", "@cypress/xvfb": "1.2.4", + "@types/sinonjs__fake-timers": "6.0.1", "@types/sizzle": "2.3.2", "arch": "2.1.1", - "bluebird": "3.5.0", - "cachedir": "1.3.0", + "bluebird": "3.7.2", + "cachedir": "2.3.0", "chalk": "2.4.2", "check-more-types": "2.24.0", - "commander": "2.15.1", + "cli-table3": "0.5.1", + "commander": "4.1.0", "common-tags": "1.8.0", - "debug": "3.2.6", - "execa": "0.10.0", + "debug": "4.1.1", + "eventemitter2": "4.1.2", + "execa": "1.0.0", "executable": "4.1.1", - "extract-zip": "1.6.7", - "fs-extra": "5.0.0", - "getos": "3.1.1", - "is-ci": "1.2.1", + "extract-zip": "1.7.0", + "fs-extra": "8.1.0", + "getos": "3.1.4", + "is-ci": "2.0.0", "is-installed-globally": "0.1.0", "lazy-ass": "1.6.0", - "listr": "0.12.0", + "listr": "0.14.3", "lodash": "4.17.15", - "log-symbols": "2.2.0", - "minimist": "1.2.0", + "log-symbols": "3.0.0", + "minimist": "1.2.5", "moment": "2.24.0", - "ramda": "0.24.1", - "request": "2.88.0", + "ospath": "1.2.2", + "pretty-bytes": "5.3.0", + "ramda": "0.26.1", "request-progress": "3.0.0", - "supports-color": "5.5.0", + "supports-color": "7.1.0", "tmp": "0.1.0", - "untildify": "3.0.3", + "untildify": "4.0.0", "url": "0.11.0", "yauzl": "2.10.0" }, "dependencies": { "bluebird": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz", + "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==", "dev": true }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", + "get-stream": "^4.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", @@ -4516,22 +4370,59 @@ } }, "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "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 }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -4553,29 +4444,73 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, - "tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "rimraf": "^2.6.3" + "shebang-regex": "^1.0.0" } }, - "untildify": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", - "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==", + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, "cypress-axe": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/cypress-axe/-/cypress-axe-0.5.3.tgz", - "integrity": "sha512-JBoFig7w9zF/80P+U0EyyR8O2uRveyJl1t4Wwndl9nhQwD59L+hEuqKK/kDByNQoyk6f3yzvyttnc8llaauqLQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/cypress-axe/-/cypress-axe-0.8.1.tgz", + "integrity": "sha512-hX48+r5n7Ns7CHkn601Ag0JiCG1vby5+g7QhlP8X+mkiVYpTLpXAPiiaKFj9QTTCdZSI5+0UqwIxA+ShTsr5tA==", "dev": true }, + "cypress-multi-reporters": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cypress-multi-reporters/-/cypress-multi-reporters-1.4.0.tgz", + "integrity": "sha512-CjpQduW43KVzY45hhKC/qf8MSebRpx6JyEz6py8F+0GrYS8rE5TZ8wXv9dPUs/PaT6w+dR8KIgLSMr967Om7iA==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "lodash": "^4.17.15" + } + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, "dash-ast": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", @@ -4592,14 +4527,14 @@ } }, "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", "dev": true, "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" } }, "date-fns": { @@ -4608,6 +4543,12 @@ "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", "dev": true }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -4617,6 +4558,12 @@ "ms": "^2.1.1" } }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -4641,12 +4588,27 @@ } } }, + "decimal.js": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz", + "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==", + "dev": true + }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -4660,14 +4622,28 @@ "dev": true }, "default-require-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", - "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", "dev": true, "requires": { - "strip-bom": "^3.0.0" + "strip-bom": "^4.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + } } }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -4730,6 +4706,11 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, + "deparam": { + "version": "git+https://github.com/brettz9/deparam.git#3ae917fb3550640237b4c8ae36cd455ef7cc15d5", + "from": "git+https://github.com/brettz9/deparam.git#updates", + "dev": true + }, "deps-sort": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", @@ -4763,6 +4744,22 @@ "minimist": "^1.1.1" } }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, "diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -4791,6 +4788,12 @@ } } }, + "docopt": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz", + "integrity": "sha1-so6eIiDaXsSffqW7JKR3h0Be6xE=", + "dev": true + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -4801,13 +4804,21 @@ } }, "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "dev": true, "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", + "dev": true + } } }, "domain-browser": { @@ -4823,27 +4834,43 @@ "dev": true }, "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", "dev": true, "requires": { - "webidl-conversions": "^4.0.2" + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + } } }, "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.0.0.tgz", + "integrity": "sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw==", "dev": true, "requires": { - "domelementtype": "1" + "domelementtype": "^2.0.1" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", + "dev": true + } } }, "dompurify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.0.7.tgz", - "integrity": "sha512-S3O0lk6rFJtO01ZTzMollCOGg+WAtCwS3U5E2WSDY/x/sy7q70RjEC4Dmrih5/UqzLLB9XoKJ8KqwBxaNvBu4A==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.0.10.tgz", + "integrity": "sha512-ok1dcSztsIuVxWG6Cx0ujyDIzNclz9W9OIU0cOb0IT+VAtSLrOelZF4miUvSm1U4PoCw8D7sIOLCnCQOaVpr3w==", "dev": true }, "domutils": { @@ -4857,11 +4884,20 @@ } }, "dot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/dot/-/dot-1.1.2.tgz", - "integrity": "sha1-xzdwGfxOVQeYkosrmv62ar+h8vk=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dot/-/dot-1.1.3.tgz", + "integrity": "sha512-/nt74Rm+PcfnirXGEdhZleTwGC2LMnuKTeeTIlI82xb5loBBoXNYzr2ezCroPSMtilK8EZIfcNZwOcHN+ib1Lg==", "dev": true }, + "dot-prop": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, "duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", @@ -4869,25 +4905,14 @@ "dev": true, "requires": { "readable-stream": "^2.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } } }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -4899,9 +4924,9 @@ } }, "electron-to-chromium": { - "version": "1.3.214", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.214.tgz", - "integrity": "sha512-SU9yyql6uA0Fc8bWR7sCYNGBtxkC+tQb6UaC7ReaadN42Kx7Ka+dzx3lAIm9Ock+ULEawJuTFcVB2x34uOCg0Q==", + "version": "1.3.387", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.387.tgz", + "integrity": "sha512-jjQ6WkxrOu0rtGqY9/74Z+UEVQ7YmJU2rCX6kH4eidKP0ZK0VKB3/i1avXQ+EDwJAABKGaOAbJrcyz18P8E3aA==", "dev": true }, "elegant-spinner": { @@ -4926,11 +4951,20 @@ } }, "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==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -4941,9 +4975,9 @@ } }, "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==", "dev": true }, "error-ex": { @@ -4956,23 +4990,28 @@ } }, "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", "dev": true, "requires": { - "es-to-primitive": "^1.2.0", + "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" } }, "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", @@ -4980,12 +5019,66 @@ "is-symbol": "^1.0.2" } }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, "es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-template-strings": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-template-strings/-/es6-template-strings-2.0.1.tgz", + "integrity": "sha1-sWbGpiVi9Hi7d3X2ypYQOlmbSyw=", + "dev": true, + "requires": { + "es5-ext": "^0.10.12", + "esniff": "^1.1" + } + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -4993,24 +5086,18 @@ "dev": true }, "escodegen": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", - "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz", + "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", "dev": true, "requires": { - "esprima": "^3.1.3", + "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" }, "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -5021,22 +5108,22 @@ } }, "eslint": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.7.2.tgz", - "integrity": "sha512-qMlSWJaCSxDFr8fBPvJM9kJwbazrhNcBU3+DszDW1OlEwKBBRWsJc7NJFelvwQpanHCR14cOLD41x8Eqvo3Nng==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.1.0.tgz", + "integrity": "sha512-DfS3b8iHMK5z/YLSme8K5cge168I8j8o1uiVmFCgnnjxZQbCGyraF8bMl7Ju4yfBmCuxD7shOF7eqGkcuIHfsA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", + "eslint-utils": "^2.0.0", "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", + "espree": "^7.0.0", + "esquery": "^1.2.0", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", @@ -5049,59 +5136,192 @@ "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", + "levn": "^0.4.1", "lodash": "^4.17.14", "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.3", + "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { - "acorn": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", - "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", "dev": true }, - "espree": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", - "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "eslint-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", + "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", "dev": true, "requires": { - "acorn": "^7.1.0", - "acorn-jsx": "^5.1.0", "eslint-visitor-keys": "^1.1.0" } }, + "espree": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.0.0.tgz", + "integrity": "sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, "globals": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz", - "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==", + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, "requires": { "type-fest": "^0.8.1" } }, + "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 + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "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.3" + } + }, + "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 + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "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, + "requires": { + "prelude-ls": "^1.2.1" + } } } }, @@ -5116,25 +5336,25 @@ } }, "eslint-config-ash-nazg": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-ash-nazg/-/eslint-config-ash-nazg-14.0.1.tgz", - "integrity": "sha512-kj3NYgicd4XGcX1BLpKkOIxhWFMDqf6JKyOWX43wDG9pOcxVvvugRaE3Nz3TNOhUBAUBfuLmQPCvJ6mExP5nvg==", + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-ash-nazg/-/eslint-config-ash-nazg-22.2.0.tgz", + "integrity": "sha512-GkRqj2ne8oagrSZtFbSOhTQnMw3KMM0qpYoMb3nYPZXj6mSugwb0TrJY6N/Xoc6NsnNnJurX2N5vGXMXLwk84A==", "dev": true }, "eslint-config-standard": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.0.tgz", - "integrity": "sha512-EF6XkrrGVbvv8hL/kYa/m6vnvmUT+K82pJJc4JJVMM6+Qgqh0pnwprSxdduDLB9p/7bIxD+YV5O0wfb8lmcPbA==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz", + "integrity": "sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg==", "dev": true }, "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", + "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", "dev": true, "requires": { "debug": "^2.6.9", - "resolve": "^1.5.0" + "resolve": "^1.13.1" }, "dependencies": { "debug": { @@ -5155,9 +5375,9 @@ } }, "eslint-module-utils": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.0.tgz", - "integrity": "sha512-kCo8pZaNz2dsAW7nCUjuVoI11EBXXpIzfNxmaoLhXoRDOnqXLC4iSGVRdZPhOitfbdEfMEfKOiENaK6wDPZEGw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", "dev": true, "requires": { "debug": "^2.6.9", @@ -5234,38 +5454,150 @@ } }, "eslint-plugin-array-func": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-array-func/-/eslint-plugin-array-func-3.1.3.tgz", - "integrity": "sha512-uRfJ4d9Fyyvxm6/w++++RSQoXZyERFF0+6zqupgg5Mw/+eG4y19yrptTghJlApntKlPZBpA4XCOIBzJbvLrArQ==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-array-func/-/eslint-plugin-array-func-3.1.6.tgz", + "integrity": "sha512-heMql4APbpZx4QFZTwVHGepR0JaxSlflaJa2kCVy+zUrVFhYmGVuDcAqEROcxMHYKleqwKkQ57515c7Uadc5nQ==", + "dev": true + }, + "eslint-plugin-chai-expect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-chai-expect/-/eslint-plugin-chai-expect-2.1.0.tgz", + "integrity": "sha512-rd0/4mjMV6c3i0o4DKkWI4uaFN9DK707kW+/fDphaDI6HVgxXnhML9Xgt5vHnTXmSSnDhupuCFBgsEAEpchXmQ==", + "dev": true + }, + "eslint-plugin-chai-expect-keywords": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-chai-expect-keywords/-/eslint-plugin-chai-expect-keywords-2.0.1.tgz", + "integrity": "sha512-FemUdTwTKoyZoayxJsgQ+i0iqld1l9davDIjIqZJ6Ord972AI5uBVknAJKKCRnZ+Xo/5CImZNWuZ0WNOIoZ6LQ==", + "dev": true + }, + "eslint-plugin-chai-friendly": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-0.6.0.tgz", + "integrity": "sha512-Uvvv1gkbRGp/qfN15B0kQyQWg+oFA8buDSqrwmW3egNSk/FpqH2MjQqKOuKwmEL6w4QIQrIjDp+gg6kGGmD3oQ==", "dev": true }, "eslint-plugin-compat": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-3.3.0.tgz", - "integrity": "sha512-QCgYy3pZ+zH10dkBJus1xER0359h1UhJjufhQRqp9Owm6BEoLZeSqxf2zINwL1OGao9Yc96xPYIW3nQj5HUryg==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-3.7.0.tgz", + "integrity": "sha512-A3uzSYqUjNj6rMyaBuU3l8wSCadZjeZRZ7WF3eU9vUT0JItiqRysjmYELkHHCpH8l7wRprUu4MZPr37lFCw7iA==", "dev": true, "requires": { - "@babel/runtime": "^7.4.5", - "ast-metadata-inferer": "^0.1.1", - "browserslist": "^4.6.3", - "caniuse-db": "^1.0.30000977", + "ast-metadata-inferer": "^0.2.0-0", + "browserslist": "^4.12.0", + "caniuse-db": "^1.0.30001059", + "core-js": "^3.6.5", "lodash.memoize": "4.1.2", - "mdn-browser-compat-data": "^0.0.84", - "semver": "^6.1.2" + "mdn-browser-compat-data": "^1.0.21", + "semver": "7.3.2" }, "dependencies": { + "browserslist": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", + "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001043", + "electron-to-chromium": "^1.3.413", + "node-releases": "^1.1.53", + "pkg-up": "^2.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001066", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001066.tgz", + "integrity": "sha512-Gfj/WAastBtfxLws0RCh2sDbTK/8rJuSeZMecrSkNGYxPcv7EzblmDGfWQCFEQcSqYE2BRgQiJh8HOD07N5hIw==", + "dev": true + }, + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.452", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.452.tgz", + "integrity": "sha512-IdbjgCEqDvcU/1kUQa6C49I2NZOY3SBmU9Eus7mdFdJJBqn0Lg1Epfi/T4nqVcxTNBEGhcjwMhY1EysMBsXZrw==", + "dev": true + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node-releases": { + "version": "1.1.56", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.56.tgz", + "integrity": "sha512-EVo605FhWLygH8a64TjgpjyHYOihkxECwX1bHHr8tETJKWEiWS2YJjPbvsX2jFjnjTNEgBCmk9mLjKG1Mf11cw==", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true } } }, "eslint-plugin-cypress": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.8.1.tgz", - "integrity": "sha512-jDpcP+MmjmqQO/x3bwIXgp4cl7Q66RYS5/IsuOQP4Qo2sEqE3DI8tTxBQ1EhnV5qEDd2Z2TYHR+5vYI6oCN4uw==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.10.3.tgz", + "integrity": "sha512-CvFeoCquShfO8gHNIKA1VpUTz78WtknMebLemBd1lRbcmJNjwpqCqpQYUG/XVja8GjdX/e2TJXYa+EUBxehtUg==", "dev": true, "requires": { "globals": "^11.12.0" @@ -5290,9 +5622,9 @@ } }, "eslint-plugin-eslint-comments": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.1.2.tgz", - "integrity": "sha512-QexaqrNeteFfRTad96W+Vi4Zj1KFbkHHNMMaHZEYcovKav6gdomyGzaxSDSL3GoIyUOo078wRAdYlu1caiauIQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", + "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5", @@ -5306,18 +5638,18 @@ "dev": true }, "eslint-plugin-html": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-6.0.0.tgz", - "integrity": "sha512-PQcGippOHS+HTbQCStmH5MY1BF2MaU8qW/+Mvo/8xTa/ioeMXdSP+IiaBw2+nh0KEMfYQKuTz1Zo+vHynjwhbg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-6.0.2.tgz", + "integrity": "sha512-Ik/z32UteKLo8GEfwNqVKcJ/WOz/be4h8N5mbMmxxnZ+9aL9XczOXQFz/bGu+nAGVoRg8CflldxJhONFpqlrxw==", "dev": true, "requires": { - "htmlparser2": "^3.10.1" + "htmlparser2": "^4.1.0" } }, "eslint-plugin-import": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.19.1.tgz", - "integrity": "sha512-x68131aKoCZlCae7rDXKSAQmbT5DQuManyXo2sK6fJJ0aK5CWAkv6A6HJZGgqC8IhjQxYPgo6/IY4Oz8AFsbBw==", + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", + "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", "dev": true, "requires": { "array-includes": "^3.0.3", @@ -5358,32 +5690,22 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "resolve": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.0.tgz", - "integrity": "sha512-uviWSi5N67j3t3UKFxej1loCH0VZn5XuqdNxoLShPcYPw6cUZn74K1VRj+9myynRX03bxIBEkwlkob/ujLsJVw==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } } } }, "eslint-plugin-jsdoc": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-18.4.3.tgz", - "integrity": "sha512-RcavGWoxukmq7ZQHJ3zDYUHQugJ+uAaoLSCueQjWIHq8xLoIINRo4yKLd03DKWVuoGNY3R+3xpmNjOpwlkOtnQ==", + "version": "25.4.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-25.4.3.tgz", + "integrity": "sha512-5FyIKcNoM+AMBf1sTHvs2DVyij2x6eCYO1hxOUWFLBZV6H5AIdXPT3fVc9H6hrxOYe9SRF+5SjY1hqimV3Q+gQ==", "dev": true, "requires": { - "comment-parser": "^0.7.1", + "comment-parser": "^0.7.4", "debug": "^4.1.1", "jsdoctypeparser": "^6.1.0", "lodash": "^4.17.15", - "object.entries-ponyfill": "^1.0.1", - "regextras": "^0.6.1", + "regextras": "^0.7.1", "semver": "^6.3.0", - "spdx-expression-parse": "^3.0.0" + "spdx-expression-parse": "^3.0.1" }, "dependencies": { "semver": { @@ -5391,13 +5713,23 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } } } }, "eslint-plugin-markdown": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.1.tgz", - "integrity": "sha512-nAUURNHJGPooBMZMP23FmTbh3LTdgoSqeFBv9FA3fYrJ+vDUJxrp6nKiQF4iDNAmnWQnmnrDvV61BmIF4X9QAQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.2.tgz", + "integrity": "sha512-BfvXKsO0K+zvdarNc801jsE/NTLmig4oKhZ1U3aSUgTf2dB/US5+CrfGxMsCK2Ki1vS1R3HPok+uYpufFndhzw==", "dev": true, "requires": { "object-assign": "^4.0.1", @@ -5405,16 +5737,52 @@ "unified": "^6.1.2" } }, + "eslint-plugin-mocha": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-7.0.0.tgz", + "integrity": "sha512-1qh2wBCCIobzyRfXppo7wrFctYjE1tEdp0rTzLVFVKfQTTh6RZ7HCQXcxj70HQ1BVp3NqEVm7puwHeSonRizrA==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "ramda": "^0.27.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", + "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "ramda": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.0.tgz", + "integrity": "sha512-pVzZdDpWwWqEVVLshWUHjNwuVP7SfcmPraYuqocJp1yo2U1R7P+5QAfDhdItkuoGqIBnBYrtPp7rEPqDn9HlZA==", + "dev": true + } + } + }, + "eslint-plugin-mocha-cleanup": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha-cleanup/-/eslint-plugin-mocha-cleanup-1.8.0.tgz", + "integrity": "sha512-LvnHn1FPz9NdMcORRl9sytr/chV99KPMEBzqc9QIqVJvy+93BhtFjq135kKrnVW4Re8QHJNZpkC4QakuvQ3qbg==", + "dev": true, + "requires": { + "requireindex": "~1.2.0" + } + }, "eslint-plugin-no-unsanitized": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.0.2.tgz", - "integrity": "sha512-JnwpoH8Sv4QOjrTDutENBHzSnyYtspdjtglYtqUtAHe6f6LLKqykJle+UwFPg23GGwt5hI3amS9CRDezW8GAww==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.1.1.tgz", + "integrity": "sha512-JP8GPvpWUDAv2UVsOpKLeup94orazjtMRDDxDcak3JEQX1iAYnzCtH7quIB4WmDU8fAbvzPKEFVkzxYzWCYLvg==", "dev": true }, "eslint-plugin-no-use-extend-native": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-use-extend-native/-/eslint-plugin-no-use-extend-native-0.4.1.tgz", - "integrity": "sha512-tDkHM0kvxU0M2TpLRKGfFrpWXctFdTDY7VkiDTLYDaX90hMSJKkr/FiWThEXvKV0Dvffut2Z0B9Y7+h/k6suiA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-use-extend-native/-/eslint-plugin-no-use-extend-native-0.5.0.tgz", + "integrity": "sha512-dBNjs8hor8rJgeXLH4HTut5eD3RGWf9JUsadIfuL7UosVQ/dnvOKwxEcRrXrFxrMZ8llUVWT+hOimxJABsAUzQ==", "dev": true, "requires": { "is-get-set-prop": "^1.0.0", @@ -5424,19 +5792,44 @@ } }, "eslint-plugin-node": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz", - "integrity": "sha512-1CSyM/QCjs6PXaT18+zuAXsjXGIGo5Rw630rSKwokSs2jrYURQc4R5JZpoanNCqwNmepg+0eZ9L7YiRUJb8jiQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", "dev": true, "requires": { - "eslint-plugin-es": "^2.0.0", - "eslint-utils": "^1.4.2", + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", "ignore": "^5.1.1", "minimatch": "^3.0.4", "resolve": "^1.10.1", "semver": "^6.1.0" }, "dependencies": { + "eslint-plugin-es": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.0.tgz", + "integrity": "sha512-6/Jb/J/ZvSebydwbBJO1R9E5ky7YeElfK56Veh7e4QGFHCXoIXGH9HhVz+ibJLM3XJ1XjP+T7rKBLUa/Y7eIng==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + } + }, + "eslint-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", + "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "regexpp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", + "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==", + "dev": true + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -5473,35 +5866,33 @@ "dev": true }, "eslint-plugin-unicorn": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-14.0.1.tgz", - "integrity": "sha512-mTyH4s5ogCE8gaVSNPF14hpSuMfW+bGW+Hg8wNzFPpOJeRHWtdeCFmjz+9nZW4VJQ7gtWfa5KMFF7gKj9KcfAg==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-20.0.0.tgz", + "integrity": "sha512-Uob50ZUfqKO4kK3YI3johD3Mnlzs2mWHGELbxFPEWj/2sOAMTV5769t9gGQNzarif+HXRmsKnqZS6XMkfb80Bg==", "dev": true, "requires": { "ci-info": "^2.0.0", "clean-regexp": "^1.0.0", "eslint-ast-utils": "^1.1.0", "eslint-template-visitor": "^1.1.0", + "eslint-utils": "^2.0.0", "import-modules": "^2.0.0", - "lodash.camelcase": "^4.3.0", - "lodash.defaultsdeep": "^4.6.1", - "lodash.kebabcase": "^4.1.1", - "lodash.snakecase": "^4.1.1", - "lodash.topairs": "^4.3.0", - "lodash.upperfirst": "^4.3.1", - "read-pkg-up": "^7.0.0", - "regexp-tree": "^0.1.16", - "regexpp": "^3.0.0", + "lodash": "^4.17.15", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.21", "reserved-words": "^0.1.2", "safe-regex": "^2.1.1", - "semver": "^6.3.0" + "semver": "^7.3.2" }, "dependencies": { - "ci-info": { + "eslint-utils": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", + "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } }, "find-up": { "version": "4.1.0", @@ -5580,24 +5971,27 @@ "type-fest": "^0.8.1" } }, - "regexpp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", - "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==", - "dev": true + "safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dev": true, + "requires": { + "regexp-tree": "~0.1.1" + } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true } } }, "eslint-plugin-vue": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.0.1.tgz", - "integrity": "sha512-5tgFPcxGDKjfVB/6Yi56bKiWxygUibfZmzSh26Np3kuwAk/lfaGbVld+Yt+MPgD84ppvcachtiL4/winsXLjXA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.0.2.tgz", + "integrity": "sha512-LF0AeuCjzTe+enkvvtvKClG3iYZwMKE3M6yEUZruUHNolLwqGqbEULzvMmojr+8KlMl//Ya1k7dKVt4HFASKfw==", "dev": true, "requires": { "vue-eslint-parser": "^6.0.5" @@ -5650,20 +6044,20 @@ "multimap": "^1.0.2" }, "dependencies": { - "acorn": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", - "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", "dev": true }, "espree": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", - "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "dev": true, "requires": { - "acorn": "^7.1.0", - "acorn-jsx": "^5.1.0", + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", "eslint-visitor-keys": "^1.1.0" } } @@ -5684,6 +6078,16 @@ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", "dev": true }, + "esniff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-1.1.0.tgz", + "integrity": "sha1-xmhJIp+RRk3t4uDUAgHtar9l8qw=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.12" + } + }, "espree": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", @@ -5693,6 +6097,14 @@ "acorn": "^6.0.7", "acorn-jsx": "^5.0.0", "eslint-visitor-keys": "^1.0.0" + }, + "dependencies": { + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true + } } }, "esprima": { @@ -5702,12 +6114,20 @@ "dev": true }, "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", + "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "^5.0.0" + }, + "dependencies": { + "estraverse": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", + "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==", + "dev": true + } } }, "esrecurse": { @@ -5732,9 +6152,15 @@ "dev": true }, "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "eventemitter2": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-4.1.2.tgz", + "integrity": "sha1-DhqEd6+CGm7zmVsxG/dMI6UkfxU=", "dev": true }, "events": { @@ -5754,18 +6180,18 @@ } }, "execa": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.0.4.tgz", - "integrity": "sha512-VcQfhuGD51vQUQtKIq2fjGDLDbL6N1DTQVpYzxZ7LPIXw3HqTuIz6uxRmpV1qf8i31LHf2kjiaGI+GdHwRgbnQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.2.tgz", + "integrity": "sha512-QI2zLa6CjGWdiQsmSkZoGtDx2N+cQIGb3yNolGTdjSQzydzLgYYf8LRuagp7S7fPimjcrzUDSUFd/MgzELMi4Q==", "dev": true, "requires": { - "cross-spawn": "^6.0.5", + "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", + "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", + "npm-run-path": "^4.0.0", "onetime": "^5.1.0", - "p-finally": "^2.0.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" } @@ -5843,6 +6269,23 @@ } } }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", + "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==", + "dev": true + } + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -5879,6 +6322,17 @@ "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" + }, + "dependencies": { + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + } } }, "extglob": { @@ -5947,29 +6401,17 @@ } }, "extract-zip": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", - "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", "dev": true, "requires": { - "concat-stream": "1.6.2", - "debug": "2.6.9", - "mkdirp": "0.5.1", - "yauzl": "2.4.1" + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" }, "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -5984,30 +6426,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "yauzl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", - "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", - "dev": true, - "requires": { - "fd-slicer": "~1.0.1" - } } } }, @@ -6018,9 +6436,9 @@ "dev": true }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", "dev": true }, "fast-diff": { @@ -6030,22 +6448,77 @@ "dev": true }, "fast-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.1.0.tgz", - "integrity": "sha512-TrUz3THiq2Vy3bjfQUB2wNyPdGBeGmdjbzzBLhfHN4YFurYptCKwGq/TfiRavbGywFRzY6U2CdmQ1zmsY5yYaw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz", + "integrity": "sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.0", "merge2": "^1.3.0", - "micromatch": "^4.0.2" + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "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 + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "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, + "requires": { + "is-number": "^7.0.0" + } + } } }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "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 }, "fast-levenshtein": { @@ -6061,39 +6534,46 @@ "dev": true }, "fastq": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz", - "integrity": "sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.1.tgz", + "integrity": "sha512-mpIH5sKYueh3YyeJwqtVo8sORi0CgtmkVbK6kZStpQlZBYQuTzG2CZ7idSiJuA7bY0SFCWUc5WIs+oYumGCQNw==", "dev": true, "requires": { - "reusify": "^1.0.0" + "reusify": "^1.0.4" } }, "fault": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.3.tgz", - "integrity": "sha512-sfFuP4X0hzrbGKjAUNXYvNqsZ5F6ohx/dZ9I0KQud/aiZNwg263r5L9yGB0clvXHCkzXh5W3t7RSHchggYIFmA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", + "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", "dev": true, "requires": { - "format": "^0.2.2" + "format": "^0.2.0" } }, "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "dev": true, "requires": { "pend": "~1.2.0" } }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, "figures": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", - "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" } }, "file-entry-cache": { @@ -6106,18 +6586,51 @@ } }, "file-type": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-11.1.0.tgz", - "integrity": "sha512-rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g==", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-14.1.4.tgz", + "integrity": "sha512-1n6FczX8n73Y/cLjTiMboeTGHfm/i2AWk2oQE7m9a/G5YTCZHCEHEGr32thhLm3iQNUYzTKVQUcYcNHtOLwqgQ==", + "dev": true, + "requires": { + "readable-web-to-node-stream": "^2.0.0", + "strtok3": "^6.0.0", + "token-types": "^2.0.0", + "typedarray-to-buffer": "^3.1.5" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", "dev": true }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "find-cache-dir": { @@ -6131,6 +6644,15 @@ "pkg-dir": "^3.0.0" } }, + "find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "requires": { + "array-back": "^3.0.1" + } + }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -6140,6 +6662,23 @@ "locate-path": "^3.0.0" } }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true + } + } + }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", @@ -6149,18 +6688,23 @@ "flatted": "^2.0.0", "rimraf": "2.6.3", "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", - "dev": true - }, - "fn-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz", - "integrity": "sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, "for-in": { @@ -6170,25 +6714,13 @@ "dev": true }, "foreground-child": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - } + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" } }, "forever-agent": { @@ -6223,6 +6755,12 @@ "map-cache": "^0.2.2" } }, + "fromentries": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.2.0.tgz", + "integrity": "sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ==", + "dev": true + }, "frs-replace": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/frs-replace/-/frs-replace-2.0.1.tgz", @@ -6235,35 +6773,6 @@ "yargs": "^14.2.0" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, "write": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/write/-/write-2.0.0.tgz", @@ -6304,13 +6813,22 @@ } } }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "fs-access": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-2.0.0.tgz", + "integrity": "sha512-Vt45hBKJrYDQeAD9ja43liw8JfK75uB7XexIXWEtDKwFLQNmzmvuulh28hRxexxuFm0zsGGq7nISGQSK6KnGrA==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", + "null-check": "^1.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } @@ -6322,11 +6840,561 @@ "dev": true }, "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz", + "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==", "dev": true, - "optional": true + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "fsu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fsu/-/fsu-1.1.1.tgz", + "integrity": "sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A==", + "dev": true }, "function-bind": { "version": "1.1.1", @@ -6340,6 +7408,12 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, "get-assigned-identifiers": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", @@ -6380,12 +7454,12 @@ "dev": true }, "getos": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.1.tgz", - "integrity": "sha512-oUP1rnEhAr97rkitiszGP9EgDVYnmchgFzfqRzSkgtfv7ai6tEi7Ko8GgjNXts7VLWEqrTWyhsOKLe5C5b/Zkg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.4.tgz", + "integrity": "sha512-UORPzguEB/7UG5hqiZai8f0vQ7hzynMQyJLxStoQ8dPGAcmgsfXOPA4iE/fGtweHYkK+z4zc9V0g+CIFRf5HYw==", "dev": true, "requires": { - "async": "2.6.1" + "async": "^3.1.0" } }, "getpass": { @@ -6397,19 +7471,6 @@ "assert-plus": "^1.0.0" } }, - "gh-badges": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/gh-badges/-/gh-badges-2.2.1.tgz", - "integrity": "sha512-/z1QPpWKNvaqitVgd2kOqXUW75K8ZsSumGf5IZhdewER1TSL5P+m7aTOIUPZXUq6dH5f75lNqPvzcvy/837BSA==", - "dev": true, - "requires": { - "anafanafo": "^1.0.0", - "dot": "^1.1.2", - "gm": "^1.23.0", - "is-css-color": "^1.0.0", - "svgo": "^1.1.1" - } - }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -6425,21 +7486,33 @@ } }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", "dev": true, "requires": { - "ini": "^1.3.4" + "ini": "^1.3.5" } }, "globals": { @@ -6464,64 +7537,47 @@ "slash": "^3.0.0" } }, - "gm": { - "version": "1.23.1", - "resolved": "https://registry.npmjs.org/gm/-/gm-1.23.1.tgz", - "integrity": "sha1-Lt7rlYCE0PjqeYjl2ZWxx9/BR3c=", + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", "dev": true, "requires": { - "array-parallel": "~0.1.3", - "array-series": "~0.1.5", - "cross-spawn": "^4.0.0", - "debug": "^3.1.0" + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" }, "dependencies": { - "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" + "pump": "^3.0.0" } } } }, "graceful-fs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", - "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, - "handlebars": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", - "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", - "dev": true, - "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true }, "har-schema": { "version": "2.0.0", @@ -6539,6 +7595,12 @@ "har-schema": "^2.0.0" } }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -6572,9 +7634,9 @@ "dev": true }, "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, "has-value": { @@ -6598,26 +7660,6 @@ "kind-of": "^4.0.0" }, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", @@ -6629,6 +7671,12 @@ } } }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, "hash-base": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", @@ -6650,22 +7698,21 @@ } }, "hasha": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz", - "integrity": "sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", + "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", "dev": true, "requires": { - "is-stream": "^1.0.1" - }, - "dependencies": { - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - } + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" } }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -6687,20 +7734,26 @@ } }, "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "dev": true }, "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", "dev": true, "requires": { - "whatwg-encoding": "^1.0.1" + "whatwg-encoding": "^1.0.5" } }, + "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 + }, "htmlescape": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", @@ -6708,19 +7761,42 @@ "dev": true }, "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", + "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==", "dev": true, "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0", + "domutils": "^2.0.0", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", + "dev": true + }, + "domutils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.0.0.tgz", + "integrity": "sha512-n5SelJ1axbO636c2yUtOGia/IcJtVtlhQbFiVDBZHKV5ReJO1ViX7sFEemtuyoAnBxk5meNSYgA8V4s0271efg==", + "dev": true, + "requires": { + "dom-serializer": "^0.2.1", + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0" + } + } } }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -6760,9 +7836,9 @@ "dev": true }, "ignore": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.2.tgz", - "integrity": "sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", + "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", "dev": true }, "imageoptim-cli": { @@ -6784,6 +7860,94 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.1.tgz", "integrity": "sha512-UNgvDd+csKdc9GD4zjtkHKQbT8Aspt2jCBqNSPp53vAS0L1tS9sXB2TCEOPHJ7kt9bN/niWkYj8T3RQSoMXdSQ==", "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/execa/-/execa-2.0.4.tgz", + "integrity": "sha512-VcQfhuGD51vQUQtKIq2fjGDLDbL6N1DTQVpYzxZ7LPIXw3HqTuIz6uxRmpV1qf8i31LHf2kjiaGI+GdHwRgbnQ==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.5", + "get-stream": "^5.0.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^3.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + }, + "dependencies": { + "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 + } + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -6797,6 +7961,12 @@ "resolve-from": "^4.0.0" } }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, "import-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-2.0.0.tgz", @@ -6847,33 +8017,59 @@ } }, "inquirer": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.1.tgz", - "integrity": "sha512-V1FFQ3TIO15det8PijPLFR9M9baSlnRs9nL7zWu1MNVA2T9YVl9ZbrHJhYs7e9X8jeMZ3lr2JH/rdHFgNCBdYw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^2.4.2", + "chalk": "^3.0.0", "cli-cursor": "^3.1.0", "cli-width": "^2.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.15", "mute-stream": "0.0.8", - "run-async": "^2.2.0", + "run-async": "^2.4.0", "rxjs": "^6.5.3", "string-width": "^4.1.0", - "strip-ansi": "^5.1.0", + "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "dependencies": { "ansi-escapes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "requires": { - "type-fest": "^0.8.1" + "type-fest": "^0.11.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "cli-cursor": { @@ -6885,6 +8081,48 @@ "restore-cursor": "^3.1.0" } }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "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 + }, + "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 + }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -6895,14 +8133,40 @@ "signal-exit": "^3.0.2" } }, - "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "tslib": "^1.9.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true } } }, @@ -6922,35 +8186,6 @@ "through2": "^2.0.0", "undeclared-identifiers": "^1.1.2", "xtend": "^4.0.0" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } } }, "invariant": { @@ -6989,9 +8224,9 @@ } }, "is-alphabetical": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.3.tgz", - "integrity": "sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", "dev": true }, "is-alphanumeric": { @@ -7001,9 +8236,9 @@ "dev": true }, "is-alphanumerical": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz", - "integrity": "sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "dev": true, "requires": { "is-alphabetical": "^1.0.0", @@ -7017,12 +8252,12 @@ "dev": true }, "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "^2.0.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -7032,26 +8267,20 @@ "dev": true }, "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", "dev": true }, "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "requires": { - "ci-info": "^1.5.0" + "ci-info": "^2.0.0" } }, - "is-css-color": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-css-color/-/is-css-color-1.0.0.tgz", - "integrity": "sha1-EQGYzd2xVTw5Nl4px1/btQIXC78=", - "dev": true - }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -7073,15 +8302,15 @@ } }, "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true }, "is-decimal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.3.tgz", - "integrity": "sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", "dev": true }, "is-descriptor": { @@ -7103,6 +8332,12 @@ } } }, + "is-docker": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", + "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==", + "dev": true + }, "is-empty": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-empty/-/is-empty-1.2.0.tgz", @@ -7121,19 +8356,10 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, "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==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-get-set-prop": { @@ -7156,25 +8382,19 @@ } }, "is-hexadecimal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz", - "integrity": "sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA==", - "dev": true - }, - "is-hidden": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-hidden/-/is-hidden-1.1.2.tgz", - "integrity": "sha512-kytBeNVW2QTIqZdJBDKIjP+EkUTzDT07rsc111w/gxqR6wK3ODkOswcpxgED6HU6t7fEhOxqojVZ2a2kU9rj+A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "dev": true }, "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "dev": true, "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" } }, "is-js-type": { @@ -7186,10 +8406,36 @@ "js-types": "^1.0.0" } }, + "is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "dev": true + }, "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true }, "is-obj-prop": { @@ -7202,21 +8448,21 @@ "obj-props": "^1.0.0" } }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", "dev": true, "requires": { - "path-is-inside": "^1.0.1" + "symbol-observable": "^1.1.0" } }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true + }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", @@ -7232,10 +8478,16 @@ "isobject": "^3.0.1" } }, + "is-potential-custom-element-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", + "dev": true + }, "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", "dev": true }, "is-proto-prop": { @@ -7249,12 +8501,12 @@ } }, "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "dev": true, "requires": { - "has": "^1.0.1" + "has": "^1.0.3" } }, "is-stream": { @@ -7263,13 +8515,19 @@ "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "^1.0.1" } }, "is-typedarray": { @@ -7279,9 +8537,9 @@ "dev": true }, "is-whitespace-character": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz", - "integrity": "sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", "dev": true }, "is-windows": { @@ -7291,15 +8549,21 @@ "dev": true }, "is-word-character": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.3.tgz", - "integrity": "sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", "dev": true }, "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", + "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", "dev": true }, "isarray": { @@ -7327,33 +8591,33 @@ "dev": true }, "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", "dev": true }, "istanbul-lib-hook": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", - "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", "dev": true, "requires": { - "append-transform": "^1.0.0" + "append-transform": "^2.0.0" } }, "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz", + "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==", "dev": true, "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" + "@babel/core": "^7.7.5", + "@babel/parser": "^7.7.5", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" }, "dependencies": { "semver": { @@ -7364,38 +8628,98 @@ } } }, - "istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", "dev": true, "requires": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" }, "dependencies": { - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "semver": "^6.0.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "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 + }, + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } } } }, "istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", "dev": true, "requires": { "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", + "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" }, "dependencies": { @@ -7408,41 +8732,44 @@ } }, "istanbul-reports": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz", - "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", "dev": true, "requires": { - "handlebars": "^4.1.2" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" } }, "jamilih": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/jamilih/-/jamilih-0.46.0.tgz", - "integrity": "sha512-QyjyWBj2gATd3SUaKAQn1WoyDdaBIUPT0gmq2TnuKKrJgtRD4zcOEJ1unZeKjerbHvQakbsf5fU9UQ0MmdjNIA==", - "dev": true, - "requires": { - "jsdom": "15.2.0", - "request": "^2.88.0" - } + "version": "0.53.2", + "resolved": "https://registry.npmjs.org/jamilih/-/jamilih-0.53.2.tgz", + "integrity": "sha512-1Y73xJdzdLWi7hbuv5gMlqMYp7B5bkR2clsB5YM6X5zzYrCXItbYyu1dKQ7vwdRLgjcyjmIccSqdc4dpBeh71g==", + "dev": true }, "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.0.0.tgz", + "integrity": "sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw==", "dev": true, "requires": { "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" + "supports-color": "^7.0.0" }, "dependencies": { + "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 + }, "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } } } @@ -7476,12 +8803,12 @@ } }, "js2xmlparser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.0.tgz", - "integrity": "sha512-WuNgdZOXVmBk5kUPMcTcVUpbGRzLfNkv7+7APq7WiDihpXVKrgxo6wwRpRl9OQeEBgKCVk9mR7RbzrnNWC8oBw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.1.tgz", + "integrity": "sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw==", "dev": true, "requires": { - "xmlcreate": "^2.0.0" + "xmlcreate": "^2.0.3" } }, "jsbn": { @@ -7491,37 +8818,55 @@ "dev": true }, "jsdoc": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.3.tgz", - "integrity": "sha512-Yf1ZKA3r9nvtMWHO1kEuMZTlHOF8uoQ0vyo5eH7SQy5YeIiHM+B0DgKnn+X6y6KDYZcF7G2SPkKF+JORCXWE/A==", + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.4.tgz", + "integrity": "sha512-3G9d37VHv7MFdheviDCjUfQoIjdv4TC5zTTf5G9VODLtOnVS6La1eoYBDlbWfsRT3/Xo+j2MIqki2EV12BZfwA==", "dev": true, "requires": { - "@babel/parser": "^7.4.4", - "bluebird": "^3.5.4", + "@babel/parser": "^7.9.4", + "bluebird": "^3.7.2", "catharsis": "^0.8.11", "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.0", + "js2xmlparser": "^4.0.1", "klaw": "^3.0.0", - "markdown-it": "^8.4.2", - "markdown-it-anchor": "^5.0.2", - "marked": "^0.7.0", - "mkdirp": "^0.5.1", + "markdown-it": "^10.0.0", + "markdown-it-anchor": "^5.2.7", + "marked": "^0.8.2", + "mkdirp": "^1.0.4", "requizzle": "^0.2.3", - "strip-json-comments": "^3.0.1", + "strip-json-comments": "^3.1.0", "taffydb": "2.6.2", - "underscore": "~1.9.1" + "underscore": "~1.10.2" }, "dependencies": { + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", + "dev": true + }, + "underscore": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==", "dev": true } } @@ -7533,45 +8878,37 @@ "dev": true }, "jsdom": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.2.0.tgz", - "integrity": "sha512-+hRyEfjRPFwTYMmSQ3/f7U9nP8ZNZmbkmUek760ZpxnCPWJIhaaLRuUSvpJ36fZKCGENxLwxClzwpOpnXNfChQ==", + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.2.2.tgz", + "integrity": "sha512-pDFQbcYtKBHxRaP55zGXCJWgFHkDAYbKcsXEK/3Icu9nKYZkutUXfLBwbD+09XDutkYSHcgfQLZ0qvpAAm9mvg==", "dev": true, "requires": { - "abab": "^2.0.0", - "acorn": "^7.1.0", - "acorn-globals": "^4.3.2", - "array-equal": "^1.0.0", - "cssom": "^0.4.1", - "cssstyle": "^2.0.0", - "data-urls": "^1.1.0", - "domexception": "^1.0.1", - "escodegen": "^1.11.1", - "html-encoding-sniffer": "^1.0.2", - "nwsapi": "^2.1.4", - "parse5": "5.1.0", - "pn": "^1.1.0", - "request": "^2.88.0", - "request-promise-native": "^1.0.7", - "saxes": "^3.1.9", - "symbol-tree": "^3.2.2", + "abab": "^2.0.3", + "acorn": "^7.1.1", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.2.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.0", + "domexception": "^2.0.1", + "escodegen": "^1.14.1", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "5.1.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.8", + "saxes": "^5.0.0", + "symbol-tree": "^3.2.4", "tough-cookie": "^3.0.1", - "w3c-hr-time": "^1.0.1", - "w3c-xmlserializer": "^1.1.2", - "webidl-conversions": "^4.0.2", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.0.0", "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^7.0.0", - "ws": "^7.0.0", + "whatwg-url": "^8.0.0", + "ws": "^7.2.3", "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", - "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", - "dev": true - } } }, "jsesc": { @@ -7580,12 +8917,24 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, + "json-parse-errback": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/json-parse-errback/-/json-parse-errback-2.0.1.tgz", + "integrity": "sha1-x6nCvjqFWzQvgqv8ibyFk1tYhPo=", + "dev": true + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -7620,12 +8969,12 @@ "dev": true }, "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", + "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", "dev": true, "requires": { - "minimist": "^1.2.0" + "minimist": "^1.2.5" } }, "jsonfile": { @@ -7661,10 +9010,19 @@ "verror": "1.10.0" } }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "klaw": { @@ -7686,12 +9044,36 @@ "stream-splicer": "^2.0.0" } }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, "lazy-ass": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", "dev": true }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -7702,6 +9084,61 @@ "type-check": "~0.3.2" } }, + "libnpmconfig": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/libnpmconfig/-/libnpmconfig-1.2.1.tgz", + "integrity": "sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "find-up": "^3.0.0", + "ini": "^1.3.5" + } + }, + "license-badger": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/license-badger/-/license-badger-0.17.0.tgz", + "integrity": "sha512-3rDmS2YGffcxKkyeLFC3o4k6tPR7AHrgAlG3+WWD4HewPF1U8+1LlaidlNIihbOpQ1MBgL4wwxPh4BcsHT886Q==", + "dev": true, + "requires": { + "badge-up": "^3.0.0", + "command-line-basics": "^0.8.0", + "es6-template-strings": "^2.0.1", + "licensee": "git+https://github.com/brettz9/licensee.js.git#filterPackages-and-error-aborting", + "npm-consider": "git+https://github.com/brettz9/npm-consider.git#fixes", + "spdx-expression-parse": "^3.0.0" + } + }, + "licensee": { + "version": "git+https://github.com/brettz9/licensee.js.git#9a0c9f92b149c78a71616f902629556eef8deab4", + "from": "git+https://github.com/brettz9/licensee.js.git#filterPackages-and-error-aborting", + "dev": true, + "requires": { + "@blueoak/list": "^1.0.2", + "correct-license-metadata": "^1.0.1", + "docopt": "^0.6.2", + "fs-access": "^2.0.0", + "has": "^1.0.3", + "json-parse-errback": "^2.0.1", + "npm-license-corrections": "^1.0.0", + "read-package-tree": "^5.3.1", + "run-parallel": "^1.1.9", + "semver": "^6.3.0", + "simple-concat": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-expression-validate": "^2.0.0", + "spdx-osi": "^3.0.0", + "spdx-whitelisted": "^1.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -7718,102 +9155,27 @@ } }, "listr": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz", - "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=", + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", + "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", "dev": true, "requires": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "figures": "^1.7.0", - "indent-string": "^2.1.0", + "@samverschueren/stream-to-observable": "^0.3.0", + "is-observable": "^1.1.0", "is-promise": "^2.1.0", "is-stream": "^1.1.0", "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.2.0", - "listr-verbose-renderer": "^0.4.0", - "log-symbols": "^1.0.2", - "log-update": "^1.0.2", - "ora": "^0.2.3", - "p-map": "^1.1.1", - "rxjs": "^5.0.0-beta.11", - "stream-to-observable": "^0.1.0", - "strip-ansi": "^3.0.1" + "listr-update-renderer": "^0.5.0", + "listr-verbose-renderer": "^0.5.0", + "p-map": "^2.0.0", + "rxjs": "^6.3.3" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, - "requires": { - "chalk": "^1.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true } } }, @@ -7824,9 +9186,9 @@ "dev": true }, "listr-update-renderer": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz", - "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", + "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", "dev": true, "requires": { "chalk": "^1.1.3", @@ -7835,7 +9197,7 @@ "figures": "^1.7.0", "indent-string": "^3.0.0", "log-symbols": "^1.0.2", - "log-update": "^1.0.2", + "log-update": "^2.3.0", "strip-ansi": "^3.0.1" }, "dependencies": { @@ -7864,16 +9226,6 @@ "supports-color": "^2.0.0" } }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, "log-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", @@ -7901,66 +9253,59 @@ } }, "listr-verbose-renderer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", - "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", + "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", "dev": true, "requires": { - "chalk": "^1.1.3", - "cli-cursor": "^1.0.2", + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", "date-fns": "^1.27.2", - "figures": "^1.7.0" + "figures": "^2.0.0" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "restore-cursor": "^2.0.0" } }, "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } } } }, @@ -7985,12 +9330,12 @@ } }, "load-plugin": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-2.3.1.tgz", - "integrity": "sha512-dYB1lbwqHgPTrruy9glukCu8Ya9vzj6TMfouCtj2H/GuJ+8syioisgKTBPxnCi6m8K8jINKfTOxOHngFkUYqHw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-3.0.0.tgz", + "integrity": "sha512-od7eKCCZ62ITvFf8nHHrIiYmgOHb4xVNDRDqxBWSaao5FZyyZVX8OmRCbwjDGPrSrgIulwPNyBsWCGnhiDC0oQ==", "dev": true, "requires": { - "npm-prefix": "^1.2.0", + "libnpmconfig": "^1.0.0", "resolve-from": "^5.0.0" }, "dependencies": { @@ -8036,12 +9381,6 @@ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, - "lodash.defaultsdeep": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", - "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", - "dev": true - }, "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", @@ -8054,16 +9393,34 @@ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, - "lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", + "lodash.isempty": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", + "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=", + "dev": true + }, + "lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "dev": true + }, + "lodash.isobject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", + "dev": true + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", "dev": true }, "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", "dev": true }, "lodash.once": { @@ -8072,36 +9429,18 @@ "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", "dev": true }, - "lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=", - "dev": true - }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, - "lodash.topairs": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.topairs/-/lodash.topairs-4.3.0.tgz", - "integrity": "sha1-O23qo31g+xFnE8RsXxfqGQ7EjWQ=", - "dev": true - }, "lodash.unescape": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", "dev": true }, - "lodash.upperfirst": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984=", - "dev": true - }, "lodash.zip": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", @@ -8109,28 +9448,100 @@ "dev": true }, "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "dev": true, "requires": { - "chalk": "^2.0.1" + "chalk": "^2.4.2" } }, "log-update": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", - "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", "dev": true, "requires": { - "ansi-escapes": "^1.0.0", - "cli-cursor": "^1.0.2" + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + } + } } }, "longest-streak": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.3.tgz", - "integrity": "sha512-9lz5IVdpwsKLMzQi0MQ+oD9EA0mIGcWYP7jXMTZVXP8D42PwuAk+M/HBFYQoxt1G5OR8m7aSIgb1UymfWGBWEw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", + "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", "dev": true }, "loose-envify": { @@ -8142,30 +9553,19 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "magic-string": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.16.0.tgz", + "integrity": "sha1-lw67DacZMwEoX7GqZQ85vdgetFo=", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "vlq": "^0.2.1" } }, "make-dir": { @@ -8185,9 +9585,9 @@ "dev": true }, "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", + "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", "dev": true }, "map-visit": { @@ -8200,9 +9600,9 @@ } }, "markdown-escapes": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.3.tgz", - "integrity": "sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", "dev": true }, "markdown-extensions": { @@ -8212,34 +9612,37 @@ "dev": true }, "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", + "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", "dev": true, "requires": { "argparse": "^1.0.7", - "entities": "~1.1.1", + "entities": "~2.0.0", "linkify-it": "^2.0.0", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" } }, "markdown-it-anchor": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.4.tgz", - "integrity": "sha512-n8zCGjxA3T+Mx1pG8HEgbJbkB8JFUuRkeTZQuIM8iPY6oQ8sWOPRZJDFC9a/pNg2QkHEjjGkhBEl/RSyzaDZ3A==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.7.tgz", + "integrity": "sha512-REFmIaSS6szaD1bye80DMbp7ePwsPNvLTR5HunsUcZ0SG0rWJQ+Pz24R4UlTKtjKBPhxo0v0tOBDYjZQQknW8Q==", "dev": true }, "markdown-table": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", - "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", + "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "dev": true, + "requires": { + "repeat-string": "^1.0.0" + } }, "marked": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", - "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz", + "integrity": "sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==", "dev": true }, "md5.js": { @@ -8254,18 +9657,47 @@ } }, "mdast-util-compact": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz", - "integrity": "sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz", + "integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==", "dev": true, "requires": { - "unist-util-visit": "^1.1.0" + "unist-util-visit": "^2.0.0" + }, + "dependencies": { + "unist-util-is": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", + "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", + "dev": true + }, + "unist-util-visit": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz", + "integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + } + }, + "unist-util-visit-parents": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz", + "integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } + } } }, "mdn-browser-compat-data": { - "version": "0.0.84", - "resolved": "https://registry.npmjs.org/mdn-browser-compat-data/-/mdn-browser-compat-data-0.0.84.tgz", - "integrity": "sha512-fAznuGNaQMQiWLVf+gyp33FaABTglYWqMT7JqvH+4RZn2UQPD12gbMqxwP9m0lj8AAbNpu5/kD6n4Ox1SOffpw==", + "version": "1.0.22", + "resolved": "https://registry.npmjs.org/mdn-browser-compat-data/-/mdn-browser-compat-data-1.0.22.tgz", + "integrity": "sha512-huoiqBhPzjuOx6pg9bbY0MiqXz+pKWWLxY8IsAIlS76lSY2ignepP8BGANst2P0VIekepnvC9oRGZkBHyxAiEQ==", "dev": true, "requires": { "extend": "3.0.2" @@ -8290,139 +9722,110 @@ "dev": true }, "meow": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", - "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.0.tgz", + "integrity": "sha512-iIAoeI01v6pmSfObAAWFoITAA4GgiT45m4SmJgoxtZfvI0fyZwhV4d0lTwiUXvAKIPlma05Feb2Xngl52Mj5Cg==", "dev": true, "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.1.1", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.0.0", + "minimist-options": "^4.0.1", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.0", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.8.1", + "yargs-parser": "^18.1.1" }, "dependencies": { "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "locate-path": "^2.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" + "p-locate": "^4.1.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.2.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "dev": true, "requires": { + "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" } }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "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 }, "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } } }, "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "yargs-parser": { + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", + "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } - } - } - }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -8439,13 +9842,24 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "miller-rabin": { @@ -8465,18 +9879,18 @@ "dev": true }, "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.40.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -8485,6 +9899,18 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "min-indent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz", + "integrity": "sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=", + "dev": true + }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -8507,15 +9933,15 @@ } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.0.2.tgz", + "integrity": "sha512-seq4hpWkYSUh1y7NXxzucwAN9yVlBc3Upgdjz8vLCP97jG8kaOmzYrVH/m7tQ1NYD1wdtZbSLfdy4zFmRWuc/w==", "dev": true, "requires": { "arrify": "^1.0.1", @@ -8544,26 +9970,346 @@ } }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", + "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "dev": true, "requires": { - "minimist": "0.0.8" + "minimist": "^1.2.5" + } + }, + "mocha": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" }, "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "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 + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "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, + "requires": { + "is-number": "^7.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "mocha-badge-generator": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/mocha-badge-generator/-/mocha-badge-generator-0.8.0.tgz", + "integrity": "sha512-S+hoJLAmT+pSaiQkDEdnNDykedtX2M3j48LWN8e6+0g/EnlPtTbkL7AnOS8RIByCUP5qKgBhqAzFX+Mf5uksAw==", + "dev": true, + "requires": { + "badge-up": "^3.0.0", + "command-line-basics": "^0.8.0", + "fast-glob": "^3.2.2" + } + }, + "mochawesome": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/mochawesome/-/mochawesome-6.1.1.tgz", + "integrity": "sha512-fRGZkSJI+u4ODRQCFg3JqI4pqZGzOpfZqlEjvUoZ78l2JnBWwepPu7dMTAcyAEUsZbTSx7S4eVnsi+/Zh1Qq6A==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "lodash.isempty": "^4.4.0", + "lodash.isfunction": "^3.0.9", + "lodash.isobject": "^3.0.2", + "lodash.isstring": "^4.0.1", + "mochawesome-report-generator": "^5.1.0", + "strip-ansi": "^6.0.0", + "uuid": "^7.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "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 + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", "dev": true } } }, + "mochawesome-merge": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/mochawesome-merge/-/mochawesome-merge-4.0.3.tgz", + "integrity": "sha512-i4gyUE3UyUbdUVtV7cZRUSSQJbsyH8QJe4jeKUclnC4aK5oFGNz5wTfXyhZ5KXGISh2k76/48uOn8A3PkXRt5g==", + "dev": true, + "requires": { + "fs-extra": "^7.0.1", + "glob": "^7.1.6", + "uuid": "^3.3.2" + } + }, + "mochawesome-report-generator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/mochawesome-report-generator/-/mochawesome-report-generator-5.1.0.tgz", + "integrity": "sha512-5cI4Jh+sD+jIxc7q94961vnm/6VKDI7TFUPt9dps6oAc4y4WMpEeeOlmgKKM81q2eGaviNUYw+acFalGK6EJ9g==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "dateformat": "^3.0.2", + "escape-html": "^1.0.3", + "fs-extra": "^7.0.0", + "fsu": "^1.0.2", + "lodash.isfunction": "^3.0.8", + "opener": "^1.4.2", + "prop-types": "^15.7.2", + "tcomb": "^3.2.17", + "tcomb-validation": "^3.3.0", + "validator": "^10.11.0", + "yargs": "^13.2.2" + } + }, "module-deps": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.1.tgz", - "integrity": "sha512-UnEn6Ah36Tu4jFiBbJVUtt0h+iXqxpLqDvPS8nllbw5RZFmNJ1+Mz5BjYnM9ieH80zyxHkARGLnMIHlPK5bu6A==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz", + "integrity": "sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==", "dev": true, "requires": { "JSONStream": "^1.0.3", @@ -8571,7 +10317,7 @@ "cached-path-relative": "^1.0.2", "concat-stream": "~1.6.0", "defined": "^1.0.0", - "detective": "^5.0.2", + "detective": "^5.2.0", "duplexer2": "^0.1.2", "inherits": "^2.0.1", "parents": "^1.0.0", @@ -8581,35 +10327,6 @@ "subarg": "^1.0.0", "through2": "^2.0.0", "xtend": "^4.0.0" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } } }, "moment": { @@ -8637,9 +10354,9 @@ "dev": true }, "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", "dev": true, "optional": true }, @@ -8668,16 +10385,10 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", - "dev": true - }, - "nested-error-stacks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", - "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, "nice-try": { @@ -8696,19 +10407,54 @@ "semver": "^5.7.0" } }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + }, + "dependencies": { + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + } + } + }, "node-modules-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", "dev": true }, - "node-releases": { - "version": "1.1.26", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.26.tgz", - "integrity": "sha512-fZPsuhhUHMTlfkhDLGtfY80DSJTjOcx+qD1j5pqPkuhUHVS7xHZIg9EE4DHK8O3f0zTxXHX5VIkDG8pu98/wfQ==", + "node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", "dev": true, "requires": { - "semver": "^5.3.0" + "process-on-spawn": "^1.0.0" + } + }, + "node-releases": { + "version": "1.1.52", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.52.tgz", + "integrity": "sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "node-static": { @@ -8776,17 +10522,173 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "npm-prefix": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/npm-prefix/-/npm-prefix-1.2.0.tgz", - "integrity": "sha1-5hlFX3B0ulTMZtbQ033Z8b5ry8A=", + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + }, + "npm-consider": { + "version": "git+https://github.com/brettz9/npm-consider.git#73d69210884d64ea2d54850e150ebff4501791ba", + "from": "git+https://github.com/brettz9/npm-consider.git#fixes", "dev": true, "requires": { - "rc": "^1.1.0", - "shellsubstitute": "^1.1.0", - "untildify": "^2.1.0" + "cli-table3": "^0.5.1", + "colors": "^1.4.0", + "commander": "^2.20.3", + "filesize": "^3.6.1", + "inquirer": "^3.3.0", + "moment": "^2.24.0", + "node-fetch": "^1.7.3", + "promise-queue": "^2.2.5", + "rc": "^1.2.8", + "semver": "^5.7.1", + "spdx-correct": "^3.1.0", + "spdx-satisfies": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + } } }, + "npm-license-corrections": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/npm-license-corrections/-/npm-license-corrections-1.3.1.tgz", + "integrity": "sha512-Uf3e0YizcUlEjvj9d13eeoJ7FKevsssia9XZFPiJCbNxFj7EnvS6GeGaGwF4zjEu0MuHptrUNoJuD86Px6HWdQ==", + "dev": true + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, "npm-run-all": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", @@ -8804,6 +10706,19 @@ "string.prototype.padend": "^3.0.0" }, "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -8826,6 +10741,12 @@ "json-parse-better-errors": "^1.0.1" } }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", @@ -8851,24 +10772,40 @@ "normalize-package-data": "^2.3.2", "path-type": "^3.0.0" } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, "npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { "path-key": "^3.0.0" - }, - "dependencies": { - "path-key": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.0.tgz", - "integrity": "sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg==", - "dev": true - } } }, "nth-check": { @@ -8880,6 +10817,12 @@ "boolbase": "~1.0.0" } }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -8893,48 +10836,231 @@ "dev": true }, "nyc": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz", - "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.1.tgz", + "integrity": "sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg==", "dev": true, "requires": { - "archy": "^1.0.0", - "caching-transform": "^3.0.2", - "convert-source-map": "^1.6.0", - "cp-file": "^6.2.0", - "find-cache-dir": "^2.1.0", - "find-up": "^3.0.0", - "foreground-child": "^1.5.6", - "glob": "^7.1.3", - "istanbul-lib-coverage": "^2.0.5", - "istanbul-lib-hook": "^2.0.7", - "istanbul-lib-instrument": "^3.3.0", - "istanbul-lib-report": "^2.0.8", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^2.2.4", - "js-yaml": "^3.13.1", - "make-dir": "^2.1.0", - "merge-source-map": "^1.1.0", - "resolve-from": "^4.0.0", - "rimraf": "^2.6.3", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", "signal-exit": "^3.0.2", - "spawn-wrap": "^1.4.2", - "test-exclude": "^5.2.3", - "uuid": "^3.3.2", - "yargs": "^13.2.2", - "yargs-parser": "^13.0.0" + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "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 + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "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 + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "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, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + } + }, "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", + "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -8950,9 +11076,9 @@ "dev": true }, "obj-props": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/obj-props/-/obj-props-1.2.0.tgz", - "integrity": "sha512-ZYpJyCe7O4rhNxB/2SZy8ADJww8RSRBdG36a4MWWq7JwILGJ1m61B90QJtxwDDNA0KzyR8V12Wikpjuux7Gl9Q==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/obj-props/-/obj-props-1.3.0.tgz", + "integrity": "sha512-k2Xkjx5wn6eC3537SWAXHzB6lkI81kS+icMKMkh4nG3w7shWG6MaWOBrNvhWVOszrtL5uxdfymQQfPUxwY+2eg==", "dev": true }, "object-assign": { @@ -9025,20 +11151,14 @@ "object-keys": "^1.0.11" } }, - "object.entries-ponyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.entries-ponyfill/-/object.entries-ponyfill-1.0.1.tgz", - "integrity": "sha1-Kavfd8v70mVm3RqiTp2I9lQz0lY=", - "dev": true - }, "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "object.pick": { @@ -9051,13 +11171,13 @@ } }, "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", "dev": true, "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", + "es-abstract": "^1.17.0-next.1", "function-bind": "^1.1.1", "has": "^1.0.3" } @@ -9081,27 +11201,34 @@ } }, "open": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.3.0.tgz", - "integrity": "sha512-6AHdrJxPvAXIowO/aIaeHZ8CeMdDf7qCyRNq8NwJpinmCdXhz+NZR7ie1Too94lpciCDsG+qHGO9Mt0svA4OqA==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/open/-/open-7.0.3.tgz", + "integrity": "sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==", "dev": true, "requires": { - "is-wsl": "^1.1.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" } }, "open-cli": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/open-cli/-/open-cli-5.0.0.tgz", - "integrity": "sha512-Y2KQDS6NqNtk+PSXzSgwH41vTDMRndwFgVWsfgMhXv7lNe1cImLCe19Vo8oKwMsL7WeNsGmmbX7Ml74Ydj61Cg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/open-cli/-/open-cli-6.0.1.tgz", + "integrity": "sha512-A5h8MF3GrT1efn9TiO9LPajDnLtuEiGQT5G8TxWObBlgt1cZJF1YbQo/kNtsD1bJb7HxnT6SaSjzeLq0Rfhygw==", "dev": true, "requires": { - "file-type": "^11.0.0", + "file-type": "^14.1.4", "get-stdin": "^7.0.0", - "meow": "^5.0.0", - "open": "^6.3.0", + "meow": "^6.1.0", + "open": "^7.0.3", "temp-write": "^4.0.0" } }, + "opener": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", + "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", + "dev": true + }, "optimist": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", @@ -9117,12 +11244,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", "dev": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true } } }, @@ -9140,78 +11261,24 @@ "word-wrap": "~1.2.3" } }, - "ora": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", - "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", - "dev": true, - "requires": { - "chalk": "^1.1.1", - "cli-cursor": "^1.0.2", - "cli-spinners": "^0.1.2", - "object-assign": "^4.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, + "ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", + "dev": true + }, "outpipe": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", @@ -9221,6 +11288,12 @@ "shell-quote": "^1.4.2" } }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, "p-finally": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", @@ -9228,9 +11301,9 @@ "dev": true }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -9246,9 +11319,9 @@ } }, "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true }, "p-try": { @@ -9258,21 +11331,41 @@ "dev": true }, "package-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz", - "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", "dev": true, "requires": { "graceful-fs": "^4.1.15", - "hasha": "^3.0.0", + "hasha": "^5.0.0", "lodash.flattendeep": "^4.4.0", "release-zalgo": "^1.0.0" } }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, "parent-module": { @@ -9337,9 +11430,9 @@ "dev": true }, "parse5": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", - "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", "dev": true }, "pascalcase": { @@ -9379,9 +11472,9 @@ "dev": true }, "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { @@ -9426,6 +11519,12 @@ "sha.js": "^2.4.8" } }, + "peek-readable": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-3.1.0.tgz", + "integrity": "sha512-KGuODSTV6hcgdZvDrIDBUkN0utcAVj1LL7FfGbM0viKTtCHmtZcuEJ+lGqsp0fTFkGqesdtemV2yUSMeyy3ddA==", + "dev": true + }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -9439,15 +11538,15 @@ "dev": true }, "picomatch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.1.tgz", - "integrity": "sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "pidtree": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz", - "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", "dev": true }, "pify": { @@ -9474,11 +11573,14 @@ "find-up": "^3.0.0" } }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", - "dev": true + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } }, "posix-character-classes": { "version": "0.1.1", @@ -9492,6 +11594,12 @@ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, "prettier": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", @@ -9531,6 +11639,15 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "requires": { + "fromentries": "^1.2.0" + } + }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -9546,22 +11663,33 @@ "@octetstream/promisify": "2.0.2" } }, + "promise-queue": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/promise-queue/-/promise-queue-2.2.5.tgz", + "integrity": "sha1-L29ffA9tCBCelnZZx5uIqe1ek7Q=", + "dev": true + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, "proto-props": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/proto-props/-/proto-props-2.0.0.tgz", "integrity": "sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ==", "dev": true }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, "psl": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", - "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", "dev": true }, "public-encrypt": { @@ -9589,11 +11717,20 @@ } }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, + "pupa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", + "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -9601,7 +11738,7 @@ "dev": true }, "qr-manipulation": { - "version": "git+https://github.com/brettz9/qr-manipulation.git#832651199b675ae6c5abfc3f49f1a2f4238812b1", + "version": "git+https://github.com/brettz9/qr-manipulation.git#259bcef1f0ffc47905eef15bea509b21ea40ebf8", "from": "git+https://github.com/brettz9/qr-manipulation.git", "dev": true }, @@ -9629,15 +11766,15 @@ "dev": true }, "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true }, "ramda": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz", - "integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=", + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", + "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", "dev": true }, "randombytes": { @@ -9669,16 +11806,37 @@ "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - } } }, + "react": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dom": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", + "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, "read-only-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", @@ -9686,23 +11844,30 @@ "dev": true, "requires": { "readable-stream": "^2.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } + } + }, + "read-package-json": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz", + "integrity": "sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "requires": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" } }, "read-pkg": { @@ -9772,35 +11937,90 @@ } }, "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "readable-web-to-node-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-2.0.0.tgz", + "integrity": "sha512-+oZJurc4hXpaaqsN68GoZGQAQIA3qr09Or4fqEsargABnbe5Aau8hFn6ISVleT3cpY/0n/8drn7huyyEvTbghA==", + "dev": true + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" } }, "readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "requires": { - "picomatch": "^2.0.4" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "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 + } } }, + "reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "dev": true + }, "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", @@ -9808,27 +12028,28 @@ "dev": true }, "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", "dev": true, "requires": { "regenerate": "^1.4.0" } }, "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", "dev": true }, "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz", + "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==", "dev": true, "requires": { - "private": "^0.1.6" + "@babel/runtime": "^7.8.4", + "private": "^0.1.8" } }, "regex-not": { @@ -9839,23 +12060,12 @@ "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" - }, - "dependencies": { - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - } } }, "regexp-tree": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.17.tgz", - "integrity": "sha512-UnOJjFS/EPZmfISmYx+0PcDtPzyFKTe+cZTS5sM5hifnRUDRxoB1j4DAmGwqzxjwBGlwOkGfb2cDGHtjuEwqoA==", + "version": "0.1.21", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.21.tgz", + "integrity": "sha512-kUUXjX4AnqnR8KRTCrayAo9PzYMRKmVoGgaz2tBuz0MF3g1ZbGebmtW0yFHfFK9CmBjQKeYIgoL22pFLBJY7sw==", "dev": true }, "regexpp": { @@ -9865,25 +12075,43 @@ "dev": true }, "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", "dev": true, "requires": { "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" + "unicode-match-property-value-ecmascript": "^1.2.0" } }, "regextras": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.6.1.tgz", - "integrity": "sha512-EzIHww9xV2Kpqx+corS/I7OBmf2rZ0pKKJPsw5Dc+l6Zq1TslDmtRIP9maVn3UH+72MIXmn8zzDgP07ihQogUA==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.7.1.tgz", + "integrity": "sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==", "dev": true }, + "registry-auth-token": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, "regjsgen": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", @@ -9891,9 +12119,9 @@ "dev": true }, "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -9917,14 +12145,14 @@ } }, "remark": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/remark/-/remark-11.0.2.tgz", - "integrity": "sha512-bh+eJgn8wgmbHmIBOuwJFdTVRVpl3fcVP6HxmpPWO0ULGP9Qkh6INJh0N5Uy7GqlV7DQYGoqaKiEIpM5LLvJ8w==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/remark/-/remark-12.0.0.tgz", + "integrity": "sha512-oX4lMIS0csgk8AEbzY0h2jdR0ngiCHOpwwpxjmRa5TqAkeknY+tkhjRJGZqnCmvyuWh55/0SW5WY3R3nn3PH9A==", "dev": true, "requires": { - "remark-parse": "^7.0.0", - "remark-stringify": "^7.0.0", - "unified": "^8.2.0" + "remark-parse": "^8.0.0", + "remark-stringify": "^8.0.0", + "unified": "^9.0.0" }, "dependencies": { "is-buffer": { @@ -9934,60 +12162,112 @@ "dev": true }, "is-plain-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.0.0.tgz", - "integrity": "sha512-EYisGhpgSCwspmIuRHGjROWTon2Xp8Z7U03Wubk/bTL5TTRC5R1rGVgyjzBrk9+ULdH6cRD06KRcw/xfqhVYKQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, - "remark-parse": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-7.0.2.tgz", - "integrity": "sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==", + "parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "dev": true, "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "remark-parse": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.0.tgz", + "integrity": "sha512-Ck14G1Ns/GEPXhSw6m1Uv28kMtVk63e59NyL+QlhBBwBdIUXROM6MPfBehPhW6TW2d73batMdZsKwuxl5i3tEA==", + "dev": true, + "requires": { + "ccount": "^1.0.0", "collapse-white-space": "^1.0.2", "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0", "is-whitespace-character": "^1.0.0", "is-word-character": "^1.0.0", "markdown-escapes": "^1.0.0", - "parse-entities": "^1.1.0", + "parse-entities": "^2.0.0", "repeat-string": "^1.5.4", "state-toggle": "^1.0.0", "trim": "0.0.1", "trim-trailing-lines": "^1.0.0", "unherit": "^1.0.4", - "unist-util-remove-position": "^1.0.0", - "vfile-location": "^2.0.0", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", "xtend": "^4.0.1" } }, "unified": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz", - "integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.0.0.tgz", + "integrity": "sha512-ssFo33gljU3PdlWLjNp15Inqb77d6JnJSfyplGJPT/a+fNRNyCBeveBAYJdO5khKdF6WVHa/yYCC7Xl6BDwZUQ==", "dev": true, "requires": { "bail": "^1.0.0", "extend": "^3.0.0", + "is-buffer": "^2.0.0", "is-plain-obj": "^2.0.0", "trough": "^1.0.0", "vfile": "^4.0.0" } }, + "unist-util-is": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", + "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", + "dev": true + }, + "unist-util-remove-position": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", + "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", + "dev": true, + "requires": { + "unist-util-visit": "^2.0.0" + } + }, "unist-util-stringify-position": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.2.tgz", - "integrity": "sha512-nK5n8OGhZ7ZgUwoUbL8uiVRwAbZyzBsB/Ddrlbu6jwwubFza4oe15KlyEaLNMXQW1svOQq4xesUeqA85YrIUQA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "dev": true, "requires": { "@types/unist": "^2.0.2" } }, + "unist-util-visit": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz", + "integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + } + }, + "unist-util-visit-parents": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz", + "integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } + }, "vfile": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.0.2.tgz", - "integrity": "sha512-yhoTU5cDMSsaeaMfJ5g0bUKYkYmZhAh9fn9TZicxqn+Cw4Z439il2v3oT9S0yjlpqlI74aFOQCt3nOV+pxzlkw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.1.0.tgz", + "integrity": "sha512-BaTPalregj++64xbGK6uIlsurN3BCRNM/P2Pg8HezlGzKd1O9PrwIac6bd9Pdx2uTb0QHoioZ+rXKolbVXEgJg==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -9997,10 +12277,16 @@ "vfile-message": "^2.0.0" } }, + "vfile-location": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.0.1.tgz", + "integrity": "sha512-yYBO06eeN/Ki6Kh1QAkgzYpWT1d3Qln+ZCtSbJqFExPl1S3y2qqotJQXoh6qEvl/jDlgpUJolBn3PItVnnZRqQ==", + "dev": true + }, "vfile-message": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.2.tgz", - "integrity": "sha512-gNV2Y2fDvDOOqq8bEe7cF3DXU6QgV4uA9zMR2P8tix11l1r7zju3zry3wZ8sx+BEfuO6WQ7z2QzfWTvqHQiwsA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -10010,20 +12296,20 @@ } }, "remark-cli": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-7.0.1.tgz", - "integrity": "sha512-CUjBLLSbEay0mNwOO+pptnLIoS8UB6cHlhZVpTRKbtbIcw6YEzEfD7jGjW1HCA8lZK87IfY3/DuWE6DlXu+hfg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-8.0.0.tgz", + "integrity": "sha512-5iRrk8ad+dU4espDl60H7ANhXqoaEXYsIyL8Mau0lDN6pP7QMAZsZTCX2XdoCfKfKEpiOggA7CHv43HkyVEppA==", "dev": true, "requires": { "markdown-extensions": "^1.1.0", - "remark": "^11.0.0", - "unified-args": "^7.0.0" + "remark": "^12.0.0", + "unified-args": "^8.0.0" } }, "remark-frontmatter": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-1.3.2.tgz", - "integrity": "sha512-2eayxITZ8rezsXdgcXnYB3iLivohm2V/ZT4Ne8uhua6A4pk6GdLE2ZzJnbnINtD1HRLaTdB7RwF9sgUbMptJZA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-1.3.3.tgz", + "integrity": "sha512-fM5eZPBvu2pVNoq3ZPW22q+5Ativ1oLozq2qYt9I2oNyxiUd/tDl0iLLntEVAegpZIslPWg1brhcP1VsaSVUag==", "dev": true, "requires": { "fault": "^1.0.1", @@ -10031,15 +12317,44 @@ } }, "remark-lint-ordered-list-marker-value": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-1.0.4.tgz", - "integrity": "sha512-ojRXhvysomFFf6C747Fo7s5CyhU56e+IKE7cV1couAu+COrajQEbL13If3P3fL9Ucw1yXw9srg0AQWjsEGHYCg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-2.0.0.tgz", + "integrity": "sha512-5ASe7Bgb/npEuLvdQO9AtldVCEVCAKExGSqC3RJ7esy3rI5y8B0Jo383cvvCICVdQrHFIIlO3JAPhINSGNVfig==", "dev": true, "requires": { "unified-lint-rule": "^1.0.0", "unist-util-generated": "^1.1.0", "unist-util-position": "^3.0.0", - "unist-util-visit": "^1.1.1" + "unist-util-visit": "^2.0.0" + }, + "dependencies": { + "unist-util-is": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", + "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", + "dev": true + }, + "unist-util-visit": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz", + "integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + } + }, + "unist-util-visit-parents": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz", + "integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } + } } }, "remark-parse": { @@ -10066,9 +12381,9 @@ } }, "remark-stringify": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-7.0.4.tgz", - "integrity": "sha512-qck+8NeA1D0utk1ttKcWAoHRrJxERYQzkHDyn+pF5Z4whX1ug98uCNPPSeFgLSaNERRxnD6oxIug6DzZQth6Pg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.0.0.tgz", + "integrity": "sha512-cABVYVloFH+2ZI5bdqzoOmemcz/ZuhQSH6W6ZNYnLojAUUn3xtX7u+6BpnYp35qHoGr2NFBsERV14t4vCIeW8w==", "dev": true, "requires": { "ccount": "^1.0.0", @@ -10077,14 +12392,30 @@ "is-whitespace-character": "^1.0.0", "longest-streak": "^2.0.1", "markdown-escapes": "^1.0.0", - "markdown-table": "^1.1.0", - "mdast-util-compact": "^1.0.0", - "parse-entities": "^1.0.2", + "markdown-table": "^2.0.0", + "mdast-util-compact": "^2.0.0", + "parse-entities": "^2.0.0", "repeat-string": "^1.5.4", "state-toggle": "^1.0.0", - "stringify-entities": "^2.0.0", + "stringify-entities": "^3.0.0", "unherit": "^1.0.4", "xtend": "^4.0.1" + }, + "dependencies": { + "parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dev": true, + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + } } }, "remove-trailing-separator": { @@ -10105,15 +12436,6 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, "replace-ext": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", @@ -10121,9 +12443,9 @@ "dev": true }, "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "dev": true, "requires": { "aws-sign2": "~0.7.0", @@ -10133,7 +12455,7 @@ "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", - "har-validator": "~5.1.0", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", @@ -10143,25 +12465,25 @@ "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" }, "dependencies": { "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" } } } @@ -10195,6 +12517,12 @@ "tough-cookie": "^2.3.3" }, "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -10219,6 +12547,12 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, + "requireindex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", + "dev": true + }, "requizzle": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", @@ -10226,14 +12560,6 @@ "dev": true, "requires": { "lodash": "^4.17.14" - }, - "dependencies": { - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", - "dev": true - } } }, "reserved-words": { @@ -10243,9 +12569,9 @@ "dev": true }, "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -10263,6 +12589,15 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", @@ -10294,9 +12629,9 @@ "dev": true }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" @@ -10313,34 +12648,23 @@ } }, "rollup": { - "version": "1.27.13", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.27.13.tgz", - "integrity": "sha512-hDi7M07MpmNSDE8YVwGVFA8L7n8jTLJ4lG65nMAijAyqBe//rtu4JdxjUBE7JqXfdpqxqDTbCDys9WcqdpsQvw==", + "version": "2.10.9", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.10.9.tgz", + "integrity": "sha512-dY/EbjiWC17ZCUSyk14hkxATAMAShkMsD43XmZGWjLrgFj15M3Dw2kEkA9ns64BiLFm9PKN6vTQw8neHwK74eg==", "dev": true, "requires": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" + "fsevents": "~2.1.2" }, "dependencies": { - "acorn": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", - "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", - "dev": true + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true } } }, - "rollup-plugin-babel": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz", - "integrity": "sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "rollup-pluginutils": "^2.8.1" - } - }, "rollup-plugin-re": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/rollup-plugin-re/-/rollup-plugin-re-1.0.7.tgz", @@ -10349,49 +12673,34 @@ "requires": { "magic-string": "^0.16.0", "rollup-pluginutils": "^2.0.1" - }, - "dependencies": { - "magic-string": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.16.0.tgz", - "integrity": "sha1-lw67DacZMwEoX7GqZQ85vdgetFo=", - "dev": true, - "requires": { - "vlq": "^0.2.1" - } - } } }, "rollup-plugin-terser": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.1.3.tgz", - "integrity": "sha512-FuFuXE5QUJ7snyxHLPp/0LFXJhdomKlIx/aK7Tg88Yubsx/UU/lmInoJafXJ4jwVVNcORJ1wRUC5T9cy5yk0wA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-6.1.0.tgz", + "integrity": "sha512-4fB3M9nuoWxrwm39habpd4hvrbrde2W2GG4zEGPQg1YITNkM3Tqur5jSuXlWNzbv/2aMLJ+dZJaySc3GCD8oDw==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "jest-worker": "^24.6.0", - "rollup-pluginutils": "^2.8.1", - "serialize-javascript": "^2.1.2", - "terser": "^4.1.0" + "@babel/code-frame": "^7.8.3", + "jest-worker": "^26.0.0", + "serialize-javascript": "^3.0.0", + "terser": "^4.7.0" } }, "rollup-pluginutils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz", - "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", "dev": true, "requires": { "estree-walker": "^0.6.1" } }, "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true }, "run-parallel": { "version": "1.1.9", @@ -10399,40 +12708,55 @@ "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", "dev": true }, - "rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "symbol-observable": "1.0.1" + "rx-lite": "*" + } + }, + "rxjs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" } }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", "dev": true }, "safe-marked": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/safe-marked/-/safe-marked-2.0.0.tgz", - "integrity": "sha512-LnHCTZ3ilgrO0s7G7s8zLh96jMQhARhKrkuvlRSCngZiTBzDMLOmBhqbzmynIemBGMQOu2QQGpCz+LXlxiPHYQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/safe-marked/-/safe-marked-3.0.0.tgz", + "integrity": "sha512-e8VmR2kMRnDedVU4JGE9XjEq3mSuJUsZ9Zliu2xE87fIHoZyvblJV2YEuWsVisyrTcakjeNzfAPJZ0g0Rw3C7A==", "dev": true, "requires": { - "@types/marked": "^0.6.5", - "dompurify": "^2.0.1", - "jsdom": "^15.1.1", - "marked": "^0.7.0" + "@types/marked": "^0.7.2", + "dompurify": "^2.0.7", + "jsdom": "^16.0.0", + "marked": "^0.8.0" } }, "safe-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", - "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "regexp-tree": "~0.1.1" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -10448,24 +12772,51 @@ "dev": true }, "saxes": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", - "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", "dev": true, "requires": { - "xmlchars": "^2.1.1" + "xmlchars": "^2.2.0" + } + }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" } }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.0.0.tgz", + "integrity": "sha512-skZcHYw2vEX4bw90nAr2iTTsz6x2SrHEnfxgKYmZlvJYBEZrvbKtobJWlQ20zczKb3bsHHXXTYt48zBA7ni9cw==", "dev": true }, "set-blocking": { @@ -10527,18 +12878,18 @@ } }, "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "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, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "shell-quote": { @@ -10547,16 +12898,10 @@ "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", "dev": true }, - "shellsubstitute": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shellsubstitute/-/shellsubstitute-1.2.0.tgz", - "integrity": "sha1-5PcCpQxRiw9v6YRRiQ1wWvKba3A=", - "dev": true - }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, "simple-concat": { @@ -10712,12 +13057,12 @@ "dev": true }, "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { - "atob": "^2.1.1", + "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", @@ -10749,17 +13094,45 @@ "dev": true }, "spawn-wrap": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz", - "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", "signal-exit": "^3.0.2", - "which": "^1.3.0" + "which": "^2.0.1" + }, + "dependencies": { + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "spdx-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", + "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", + "dev": true, + "requires": { + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, "spdx-correct": { @@ -10788,12 +13161,54 @@ "spdx-license-ids": "^3.0.0" } }, + "spdx-expression-validate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-validate/-/spdx-expression-validate-2.0.0.tgz", + "integrity": "sha512-b3wydZLM+Tc6CFvaRDBOF9d76oGIHNCLYFeHbftFXUWjnfZWganmDmvtM5sm1cRwJc/VDBMLyGGrsLFd1vOxbg==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0" + } + }, "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, + "spdx-osi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-osi/-/spdx-osi-3.0.0.tgz", + "integrity": "sha512-7DZMaD/rNHWGf82qWOazBsLXQsaLsoJb9RRjhEUQr5o86kw3A1ErGzSdvaXl+KalZyKkkU5T2a5NjCCutAKQSw==", + "dev": true + }, + "spdx-ranges": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz", + "integrity": "sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==", + "dev": true + }, + "spdx-satisfies": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-5.0.0.tgz", + "integrity": "sha512-/hGhwh20BeGmkA+P/lm06RvXD94JduwNxtx/oX3B5ClPt1/u/m5MCaDNo1tV3Y9laLkQr/NRde63b9lLMhlNfw==", + "dev": true, + "requires": { + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" + } + }, + "spdx-whitelisted": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spdx-whitelisted/-/spdx-whitelisted-1.0.0.tgz", + "integrity": "sha512-X4FOpUCvZuo42MdB1zAZ/wdX4N0lLcWDozf2KYFVDgtLv8Lx+f31LOYLP2/FcwTzsPi64bS/VwKqklI4RBletg==", + "dev": true, + "requires": { + "spdx-compare": "^1.0.0", + "spdx-ranges": "^2.0.0" + } + }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -10833,15 +13248,15 @@ "dev": true }, "stackblur-canvas": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.2.0.tgz", - "integrity": "sha512-5Gf8dtlf8k6NbLzuly2NkGrkS/Ahh+I5VUjO7TnFizdJtgpfpLLEdQlLe9umbcnZlitU84kfYjXE67xlSXfhfQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.3.0.tgz", + "integrity": "sha512-3ZHJv+43D8YttgumssIxkfs3hBXW7XaMS5Ux65fOBhKDYMjbG5hF8Ey8a90RiiJ58aQnAhWbGilPzZ9rkIlWgQ==", "dev": true }, "state-toggle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.2.tgz", - "integrity": "sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", "dev": true }, "static-extend": { @@ -10879,23 +13294,6 @@ "requires": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } } }, "stream-combiner2": { @@ -10906,23 +13304,6 @@ "requires": { "duplexer2": "~0.1.0", "readable-stream": "^2.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } } }, "stream-http": { @@ -10936,23 +13317,6 @@ "readable-stream": "^2.3.6", "to-arraybuffer": "^1.0.0", "xtend": "^4.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } } }, "stream-splicer": { @@ -10963,62 +13327,27 @@ "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } } }, - "stream-to-observable": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz", - "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=", - "dev": true - }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "string.prototype.padend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", - "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz", + "integrity": "sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.4.3", - "function-bind": "^1.0.2" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "string.prototype.trimleft": { @@ -11042,18 +13371,18 @@ } }, "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "stringify-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-2.0.0.tgz", - "integrity": "sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.0.0.tgz", + "integrity": "sha512-h7NJJIssprqlyjHT2eQt2W1F+MCcNmwPGlKb0bWEdET/3N44QN3QbUF/ueKCgAssyKRZ3Br9rQ7FcXjHr0qLHw==", "dev": true, "requires": { "character-entities-html4": "^1.0.0", @@ -11070,14 +13399,6 @@ "dev": true, "requires": { "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } } }, "strip-bom": { @@ -11105,17 +13426,32 @@ "dev": true }, "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true + "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, + "requires": { + "min-indent": "^1.0.0" + } }, "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, + "strtok3": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.0.0.tgz", + "integrity": "sha512-ZXlmE22LZnIBvEU3n/kZGdh770fYFie65u5+2hLK9s74DoFtpkQIdBZVeYEzlolpGa+52G5IkzjUWn+iXynOEQ==", + "dev": true, + "requires": { + "@tokenizer/token": "^0.1.1", + "@types/debug": "^4.1.5", + "debug": "^4.1.1", + "peek-readable": "^3.1.0" + } + }, "structured-source": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-3.0.2.tgz", @@ -11165,9 +13501,9 @@ } }, "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", "dev": true }, "symbol-tree": { @@ -11197,18 +13533,6 @@ "string-width": "^3.0.0" }, "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, "slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", @@ -11219,17 +13543,32 @@ "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" } + } + } + }, + "table-layout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.1.tgz", + "integrity": "sha512-dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q==", + "dev": true, + "requires": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "dependencies": { + "array-back": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz", + "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==", + "dev": true }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true } } }, @@ -11239,6 +13578,21 @@ "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", "dev": true }, + "tcomb": { + "version": "3.2.29", + "resolved": "https://registry.npmjs.org/tcomb/-/tcomb-3.2.29.tgz", + "integrity": "sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ==", + "dev": true + }, + "tcomb-validation": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tcomb-validation/-/tcomb-validation-3.4.1.tgz", + "integrity": "sha512-urVVMQOma4RXwiVCa2nM2eqrAomHROHvWPuj6UkDGz/eb5kcy0x6P0dVt6kzpUZtYMNoAqJLWmz1BPtxrtjtrA==", + "dev": true, + "requires": { + "tcomb": "^3.0.0" + } + }, "temp-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", @@ -11258,33 +13612,33 @@ "uuid": "^3.3.2" }, "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, "make-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", - "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", "dev": true, "requires": { "semver": "^6.0.0" } }, "semver": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.2.tgz", - "integrity": "sha512-z4PqiCpomGtWj8633oeAdXm1Kn1W++3T8epkZYnwiVgIYIJ0QHszhInYSJTYxebByQH7KVCEAn8R9duzZW2PhQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, + "term-size": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", + "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", + "dev": true + }, "terser": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", - "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.7.0.tgz", + "integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==", "dev": true, "requires": { "commander": "^2.20.0", @@ -11292,6 +13646,12 @@ "source-map-support": "~0.5.12" }, "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -11301,75 +13661,14 @@ } }, "test-exclude": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", - "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "requires": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^2.0.0" - }, - "dependencies": { - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "dev": true, - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - } + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" } }, "text-table": { @@ -11398,23 +13697,6 @@ "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } } }, "timers-browserify": { @@ -11427,12 +13709,23 @@ } }, "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "rimraf": "^2.6.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "to-arraybuffer": { @@ -11467,6 +13760,12 @@ } } }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -11477,32 +13776,22 @@ "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" - }, - "dependencies": { - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - } } }, "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==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "^7.0.0" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "to-vfile": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-6.0.0.tgz", - "integrity": "sha512-i9fwXXSsHLu7mzgixc1WjgnqSe6pGpjnzCYoFmrASvEueLfyKf09QAe+XQYu8OAJ62aFqHpe2EKXojeRVvEzqA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-6.1.0.tgz", + "integrity": "sha512-BxX8EkCxOAZe+D/ToHdDsJcVI4HqQfmw0tCkp31zf3dNP/XWIAjU4CmeuSwsSoOzOTqHPOL0KUzyZqJplkD0Qw==", "dev": true, "requires": { "is-buffer": "^2.0.0", @@ -11516,18 +13805,18 @@ "dev": true }, "unist-util-stringify-position": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.2.tgz", - "integrity": "sha512-nK5n8OGhZ7ZgUwoUbL8uiVRwAbZyzBsB/Ddrlbu6jwwubFza4oe15KlyEaLNMXQW1svOQq4xesUeqA85YrIUQA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "dev": true, "requires": { "@types/unist": "^2.0.2" } }, "vfile": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.0.2.tgz", - "integrity": "sha512-yhoTU5cDMSsaeaMfJ5g0bUKYkYmZhAh9fn9TZicxqn+Cw4Z439il2v3oT9S0yjlpqlI74aFOQCt3nOV+pxzlkw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.1.0.tgz", + "integrity": "sha512-BaTPalregj++64xbGK6uIlsurN3BCRNM/P2Pg8HezlGzKd1O9PrwIac6bd9Pdx2uTb0QHoioZ+rXKolbVXEgJg==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -11538,9 +13827,9 @@ } }, "vfile-message": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.2.tgz", - "integrity": "sha512-gNV2Y2fDvDOOqq8bEe7cF3DXU6QgV4uA9zMR2P8tix11l1r7zju3zry3wZ8sx+BEfuO6WQ7z2QzfWTvqHQiwsA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -11549,6 +13838,16 @@ } } }, + "token-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-2.0.0.tgz", + "integrity": "sha512-WWvu8sGK8/ZmGusekZJJ5NM6rRVTTDO7/bahz4NGiSDb/XsmdYBn6a1N/bymUHuWYTWeuLUg98wUzvE4jPdCZw==", + "dev": true, + "requires": { + "@tokenizer/token": "^0.1.0", + "ieee754": "^1.1.13" + } + }, "tough-cookie": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", @@ -11558,15 +13857,31 @@ "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } } }, "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", "dev": true, "requires": { - "punycode": "^2.1.0" + "punycode": "^2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } } }, "traverse": { @@ -11582,27 +13897,27 @@ "dev": true }, "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", + "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", "dev": true }, "trim-trailing-lines": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz", - "integrity": "sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz", + "integrity": "sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA==", "dev": true }, "trough": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.4.tgz", - "integrity": "sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", "dev": true }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", "dev": true }, "tsutils": { @@ -11635,6 +13950,12 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -11656,10 +13977,25 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, "typescript": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.3.tgz", - "integrity": "sha512-Mcr/Qk7hXqFBXMN7p7Lusj1ktCBydylfQM/FZCk5glCNQJrCUKPkMHdo9R0MTFWsC/4kPFvDS0fDPvukfCkFsw==", + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.3.tgz", + "integrity": "sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ==", + "dev": true + }, + "typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true }, "uc.micro": { @@ -11668,33 +14004,6 @@ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", "dev": true }, - "uglify-js": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.9.tgz", - "integrity": "sha512-pcnnhaoG6RtrvHJ1dFncAe8Od6Nuy30oaJ82ts6//sGSXOP5UjBMEthiProjXmMNHOfd93sqlkztifFMcb+4yw==", - "dev": true, - "optional": true, - "requires": { - "commander": "~2.20.3", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "optional": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } - }, "umd": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", @@ -11715,19 +14024,19 @@ } }, "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz", + "integrity": "sha512-D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==", "dev": true }, "unherit": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.2.tgz", - "integrity": "sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", "dev": true, "requires": { - "inherits": "^2.0.1", - "xtend": "^4.0.1" + "inherits": "^2.0.0", + "xtend": "^4.0.0" } }, "unicode-canonical-property-names-ecmascript": { @@ -11747,15 +14056,15 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", "dev": true }, "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", "dev": true }, "unified": { @@ -11773,73 +14082,259 @@ } }, "unified-args": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-7.1.0.tgz", - "integrity": "sha512-soi9Rn7l5c1g0RfElSCHMwaxeiclSI0EsS3uZmMPUOfwMeeeZjLpNmHAowV9iSlQh59iiZhSMyQu9lB8WnIz5g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-8.0.0.tgz", + "integrity": "sha512-224jfXOL0Xu0e52fJTfxmAaNTuW1zopPmnXh/5GDAxx4Z6NbcZpjgQPBmo1xoLAhGih0rWVG2+a2kodzrEHfHw==", "dev": true, "requires": { "camelcase": "^5.0.0", - "chalk": "^2.0.0", + "chalk": "^3.0.0", "chokidar": "^3.0.0", "fault": "^1.0.2", "json5": "^2.0.0", "minimist": "^1.2.0", "text-table": "^0.2.0", - "unified-engine": "^7.0.0" + "unified-engine": "^8.0.0" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", + "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.3.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "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 + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "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 + }, + "readdirp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", + "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.7" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "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, + "requires": { + "is-number": "^7.0.0" + } } } }, "unified-engine": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-7.0.0.tgz", - "integrity": "sha512-zH/MvcISpWg3JZtCoY/GYBw1WnVHkhnPoMBWpmuvAifCPSS9mzT9EbtimesJp6t2nnr/ojI0mg3TmkO1CjIwVA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-8.0.0.tgz", + "integrity": "sha512-vLUezxCnjzz+ya4pYouRQVMT8k82Rk4fIj406UidRnSFJdGXFaQyQklAnalsQHJrLqAlaYPkXPUa1upfVSHGCA==", "dev": true, "requires": { "concat-stream": "^2.0.0", "debug": "^4.0.0", "fault": "^1.0.0", "figures": "^3.0.0", - "fn-name": "^2.0.1", "glob": "^7.0.3", "ignore": "^5.0.0", + "is-buffer": "^2.0.0", "is-empty": "^1.0.0", - "is-hidden": "^1.0.1", - "is-object": "^1.0.1", + "is-plain-obj": "^2.0.0", "js-yaml": "^3.6.1", - "load-plugin": "^2.0.0", - "parse-json": "^4.0.0", + "load-plugin": "^3.0.0", + "parse-json": "^5.0.0", "to-vfile": "^6.0.0", "trough": "^1.0.0", - "unist-util-inspect": "^4.1.2", + "unist-util-inspect": "^5.0.0", "vfile-reporter": "^6.0.0", - "vfile-statistics": "^1.1.0", - "x-is-string": "^0.1.0", - "xtend": "^4.0.1" + "vfile-statistics": "^1.1.0" }, "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "dev": true, "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } }, "unified-lint-rule": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.4.tgz", - "integrity": "sha512-q9wY6S+d38xRAuWQVOMjBQYi7zGyKkY23ciNafB8JFVmDroyKjtytXHCg94JnhBCXrNqpfojo3+8D+gmF4zxJQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.5.tgz", + "integrity": "sha512-jOPr/fx8lTzqszEfh46p99jUMqgPlIZ8rNKllEepumISvgfj9lUq1c7BSpVihr0L1df3lkjVHAThRPS7dIyjYg==", "dev": true, "requires": { "wrapped": "^1.0.1" @@ -11857,6 +14352,15 @@ "set-value": "^2.0.1" } }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, "unist-util-generated": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.5.tgz", @@ -11864,9 +14368,9 @@ "dev": true }, "unist-util-inspect": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-4.1.4.tgz", - "integrity": "sha512-7xxyvKiZ1SC9vL5qrMqKub1T31gRHfau4242F69CcaOrXt//5PmRVOmDZ36UAEgiT+tZWzmQmbNZn+mVtnR9HQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-5.0.1.tgz", + "integrity": "sha512-fPNWewS593JSmg49HbnE86BJKuBi1/nMWhDSccBvbARfxezEuJV85EaARR9/VplveiwCoLm2kWq+DhP8TBaDpw==", "dev": true, "requires": { "is-empty": "^1.0.0" @@ -11879,9 +14383,9 @@ "dev": true }, "unist-util-position": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.0.4.tgz", - "integrity": "sha512-tWvIbV8goayTjobxDIr4zVTyG+Q7ragMSMeKC3xnPl9xzIc0+she8mxXLM3JVNDDsfARPbCd3XdzkyLdo7fF3g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", + "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", "dev": true }, "unist-util-remove-position": { @@ -11970,13 +14474,10 @@ } }, "untildify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz", - "integrity": "sha1-F+soB5h/dpUunASF/DEdBqgmouA=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true }, "upath": { "version": "1.2.0", @@ -11984,6 +14485,79 @@ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true }, + "update-notifier": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz", + "integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==", + "dev": true, + "requires": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -11991,6 +14565,14 @@ "dev": true, "requires": { "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } } }, "urix": { @@ -12017,6 +14599,15 @@ } } }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -12046,20 +14637,31 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", "dev": true, "requires": { - "define-properties": "^1.1.2", "object.getownpropertydescriptors": "^2.0.3" } }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true }, "v8-compile-cache": { @@ -12087,6 +14689,12 @@ "spdx-expression-parse": "^3.0.0" } }, + "validator": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz", + "integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==", + "dev": true + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -12126,9 +14734,9 @@ } }, "vfile-reporter": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-6.0.0.tgz", - "integrity": "sha512-8Is0XxFxWJUhPJdOg3CyZTqd3ICCWg6r304PuBl818ZG91h4FMS3Q+lrOPS+cs5/DZK3H0+AkJdH0J8JEwKtDA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-6.0.1.tgz", + "integrity": "sha512-0OppK9mo8G2XUpv+hIKLVSDsoxJrXnOy73+vIm0jQUOUFYRduqpFHX+QqAQfvRHyX9B0UFiRuNJnBOjQCIsw1g==", "dev": true, "requires": { "repeat-string": "^1.5.0", @@ -12139,6 +14747,44 @@ "vfile-statistics": "^1.1.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "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 + }, + "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 + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", @@ -12149,9 +14795,9 @@ } }, "unist-util-stringify-position": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.2.tgz", - "integrity": "sha512-nK5n8OGhZ7ZgUwoUbL8uiVRwAbZyzBsB/Ddrlbu6jwwubFza4oe15KlyEaLNMXQW1svOQq4xesUeqA85YrIUQA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "dev": true, "requires": { "@types/unist": "^2.0.2" @@ -12160,15 +14806,15 @@ } }, "vfile-sort": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-2.2.1.tgz", - "integrity": "sha512-5dt7xEhC44h0uRQKhbM2JAe0z/naHphIZlMOygtMBM9Nn0pZdaX5fshhwWit9wvsuP8t/wp43nTDRRErO1WK8g==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-2.2.2.tgz", + "integrity": "sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA==", "dev": true }, "vfile-statistics": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-1.1.3.tgz", - "integrity": "sha512-CstaK/ebTz1W3Qp41Bt9Lj/2DmumFsCwC2sKahDNSPh0mPh7/UyMLCoU8ZBX34CRU0d61B4W41yIFsV0NKMZeA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-1.1.4.tgz", + "integrity": "sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA==", "dev": true }, "vlq": { @@ -12197,12 +14843,6 @@ "lodash": "^4.17.15" }, "dependencies": { - "acorn": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", - "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", - "dev": true - }, "espree": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", @@ -12217,22 +14857,20 @@ } }, "w3c-hr-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", - "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", "dev": true, "requires": { - "browser-process-hrtime": "^0.1.2" + "browser-process-hrtime": "^1.0.0" } }, "w3c-xmlserializer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", - "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", "dev": true, "requires": { - "domexception": "^1.0.1", - "webidl-conversions": "^4.0.2", "xml-name-validator": "^3.0.0" } }, @@ -12249,774 +14887,12 @@ "outpipe": "^1.1.0", "through2": "^2.0.0", "xtend": "^4.0.0" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } } }, "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", "dev": true }, "whatwg-encoding": { @@ -13035,20 +14911,28 @@ "dev": true }, "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.0.0.tgz", + "integrity": "sha512-41ou2Dugpij8/LPO5Pq64K5q++MnRCBpEHvQr26/mArEKTkCV5aoXIqyhuYtE0pkqScXwhf2JP57rkRTYM29lQ==", "dev": true, "requires": { "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" + "tr46": "^2.0.0", + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + } } }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -13060,12 +14944,121 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "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 + }, + "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 + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "wordwrapjs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.0.tgz", + "integrity": "sha512-Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ==", + "dev": true, + "requires": { + "reduce-flatten": "^2.0.0", + "typical": "^5.0.0" + }, + "dependencies": { + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true + } + } + }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", @@ -13075,31 +15068,6 @@ "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } } }, "wrapped": { @@ -13128,24 +15096,22 @@ } }, "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, "ws": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.0.tgz", - "integrity": "sha512-+SqNqFbwTm/0DC18KYzIsMTnEWpLwJsiasW/O17la4iDRRIO9uaHbvKiAS3AHgTiuuWerK/brj4O6MYZkei9xg==", - "dev": true, - "requires": { - "async-limiter": "^1.0.0" - } + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.5.tgz", + "integrity": "sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==", + "dev": true }, "x-is-string": { "version": "0.1.0", @@ -13153,6 +15119,12 @@ "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", "dev": true }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", @@ -13166,9 +15138,9 @@ "dev": true }, "xmlcreate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.1.tgz", - "integrity": "sha512-MjGsXhKG8YjTKrDCXseFo3ClbMGvUD4en29H2Cev1dv4P/chlpw6KdYmlCWDkhosBVKRDjM836+3e3pm1cBNJA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.3.tgz", + "integrity": "sha512-HgS+X6zAztGa9zIK3Y3LXuJes33Lz9x+YyTxgrkIdabu2vqcGOWwdfCpf1hWLRrd553wd4QCDf6BBO6FfdsRiQ==", "dev": true }, "xtend": { @@ -13183,16 +15155,10 @@ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { "cliui": "^5.0.0", @@ -13204,42 +15170,13 @@ "string-width": "^3.0.0", "which-module": "^2.0.0", "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" + "yargs-parser": "^13.1.2" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -13249,12 +15186,24 @@ } }, "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" } }, "yauzl": { @@ -13265,17 +15214,6 @@ "requires": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" - }, - "dependencies": { - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - } } } } diff --git a/package.json b/package.json index 69ba4fad..83dd6923 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "svgedit", - "version": "5.1.0", + "version": "6.0.0", "description": "Powerful SVG-Editor for your browser ", "main": "dist/index-umd.js", "module": "dist/index-es.js", @@ -10,49 +10,80 @@ "test": "test" }, "engines": { - "node": ">= 8.5.0" + "node": ">=8.5.0" }, "scripts": { - "prepublishOnly": "npm run test-prep", - "build-by-config": "rollup -c rollup-config.config.js", - "open-es-allext": "open-cli http://localhost:8000/editor/svg-editor-es.html?extensions=ext-arrows.js,ext-closepath.js,ext-foreignobject.js,ext-helloworld.js,ext-mathjax.js,ext-php_savefile.js,ext-server_moinsave.js,ext-server_opensave.js,ext-webappfind.js,ext-xdomain-messaging.js", - "build-docs": "rm -rf docs/jsdoc/*;jsdoc --pedantic -c docs/jsdoc-config.js editor", - "open-docs": "open-cli http://localhost:8000/docs/jsdoc/ && npm start", - "build-html": "npx babel-node --plugins @babel/plugin-transform-modules-commonjs build-html.js", - "compress-images": "imageoptim 'chrome-app/*.png' && imageoptim 'editor/extensions/*.png' && imageoptim 'editor/spinbtn/*.png' && imageoptim 'editor/jgraduate/images/*.{png,gif}' && imageoptim 'editor/images/*.png'", - "copy": "cp node_modules/load-stylesheets/dist/index-es.js editor/external/load-stylesheets/index-es.js && cp node_modules/jamilih/dist/jml-es.js editor/external/jamilih/jml-es.js && cp node_modules/query-result/esm/index.js editor/external/query-result/esm/index.js && cp node_modules/qr-manipulation/dist/index-es.js editor/external/qr-manipulation/dist/index-es.js && cp node_modules/stackblur-canvas/dist/stackblur-es.js editor/external/stackblur-canvas/dist/stackblur-es.js && cp node_modules/regenerator-runtime/runtime.js editor/external/regenerator-runtime/runtime.js && cp node_modules/core-js-bundle/minified.js editor/external/core-js-bundle/minified.js && cp node_modules/core-js-bundle/minified.js.map editor/external/core-js-bundle/minified.js.map", - "remark": "remark -q -f .", - "eslint-fix": "eslint --fix --ext js,md,html .", - "eslint": "eslint --ext js,md,html .", - "rollup": "rollup -c", - "start-embedded": "echo \"Open file to http://localhost:8000/editor/embedapi.html\" && static -p 8000 | static -p 8001 -H '{\"Access-Control-Allow-Origin\": \"*\"}'", + "add-release": "git submodule add --depth=1 -b \"release-v$VERSION\" https://github.com/SVG-Edit/svgedit \"releases/svg-edit-$VERSION\"", + "add-new-release": "npm run add-release && git config --file=.gitmodules submodule.releases/latest.branch \"release-v$VERSION\"", + "submodules": "run-s submodules-init submodules-update", + "submodules-init": "echo \"Performing non-recursive init as don't want submodules to have their own releases!\" && git submodule update --init", + "submodules-update": "echo \"Performing non-recursive fetch as don't want submodules to have their own releases!\" git submodule foreach git fetch && git submodule update --remote", + "start-allow-origin": "static -p 8001 -H '{\"Access-Control-Allow-Origin\": \"*\"}'", + "start-embedded": "run-p start start-allow-origin", "start": "echo \"Open file, e.g., to http://localhost:8000/editor/svg-editor-es.html\" && static -p 8000", - "cypress:open": "cypress open", - "cypress:run": "cypress run", - "open-report": "open http://localhost:8000/coverage/", - "start-open-report": "run-p start open-report", + "open-docs-no-start": "open-cli http://localhost:8000/docs/jsdoc/", + "open-docs": "run-p start open-docs-no-start", + "build-docs-remove": "rimraf \"docs/jsdoc/*\"", + "build-docs-create": "jsdoc --pedantic -c docs/jsdoc-config.js editor", + "build-docs": "run-s -c build-docs-remove build-docs-create", + "build-and-open-docs-no-start": "run-s build-docs open-docs-no-start", + "build-and-open-docs": "run-s build-docs open-docs", + "open-embedded-no-start": "open-cli http://localhost:8000/editor/embedapi.html", + "open-embedded": "run-p start-embedded open-embedded-no-start", + "open-all-ext-no-start": "open-cli http://localhost:8000/editor/svg-editor-es.html?extensions=ext-arrows.js,ext-closepath.js,ext-foreignobject.js,ext-helloworld.js,ext-mathjax.js,ext-php_savefile.js,ext-server_moinsave.js,ext-server_opensave.js,ext-webappfind.js,ext-xdomain-messaging.js", + "open-all-ext": "run-p start open-all-ext-no-start", + "open-compiled-no-start": "open-cli http://localhost:8000/editor/svg-editor.html", + "open-compiled": "run-p start open-compiled-no-start", + "open-no-start": "open-cli http://localhost:8000/editor/svg-editor-es.html", + "open": "run-p start open-no-start", + "open-cov-no-start": "open-cli http://localhost:8000/coverage/", + "open-cov": "run-p start open-cov-no-start", "instrument:replace-html": "frs-replace \"../svgedit-config-es.js\" \"svgedit-config-es.js\" -i instrumented/svg-editor-es.html -o instrumented/svg-editor-es.html", "instrument:replace-js": "frs-replace \"editor/svg-editor.js\" \"svg-editor.js\" -i svgedit-config-es.js -o instrumented/svgedit-config-es.js", "instrument:copy-excluded": "node cypress/support/copy.js", "copy-instrumented": "copyfiles -e \"**/*.js\" -u 1 \"editor/**/*\" instrumented && npm run instrument:replace-html && npm run instrument:replace-js && npm run instrument:copy-excluded", - "instrument": "rm -Rf instrumented && npx nyc instrument editor instrumented && npm run copy-instrumented && npm run coverage-badge", - "coverage-badge": "node cypress/support/build-coverage-badge.js", - "open-cov": "npm-run-all instrument --parallel --race start cypress:open", - "open": "run-p start cypress:open", - "report": "npx nyc report", - "report-summary": "npx nyc report --reporter=text-summary", - "test-cov": "npm-run-all instrument --parallel --race start cypress:run ; npm run report-summary", - "test-cov-open": "npm-run-all instrument --parallel --race start cypress:run", - "test-no-build": "npm run eslint && npm run build-html && npm run build-by-config && npm test", - "test-prep": "npm run eslint && npm run build-html && npm run rollup && npm run build-by-config", - "test": "run-p start cypress:run" + "instrument": "rimraf instrumented && nyc instrument editor instrumented && npm run copy-instrumented", + "report": "run-s report-no-mochawesome mochawesome-cli", + "report-summary": "run-s report-text-summary mochawesome-cli-dot", + "license-badge": "license-badger --uncategorizedLicenseTemplate \"\\${license} (\\${name} (\\${version}))\" --filteredTypes=nonempty --textTemplate \"License types\n(project, deps, and bundled devDeps)\" --packageJson --production badges/licenses-badge.svg", + "license-badge-dev": "license-badger --corrections --filteredTypes=nonempty --textTemplate \"License types\n(all devDeps)\" --allDevelopment badges/licenses-badge-dev.svg", + "license-badges": "run-s license-badge license-badge-dev", + "coverage-badge": "coveradge badges/coverage-badge", + "compress-images": "imageoptim \"editor/extensions/*.png\" \"editor/spinbtn/*.png\" \"editor/jgraduate/images/*.{png,gif}\" \"editor/images/*.png\"", + "copy": "copyfiles -f node_modules/load-stylesheets/dist/index-es.js editor/external/load-stylesheets && copyfiles -f node_modules/jamilih/dist/jml-es.js editor/external/jamilih && copyfiles -f node_modules/query-result/esm/index.js editor/external/query-result/esm && copyfiles -f node_modules/qr-manipulation/dist/index-es.js editor/external/qr-manipulation/dist && copyfiles -f node_modules/stackblur-canvas/dist/stackblur-es.js editor/external/stackblur-canvas/dist && copyfiles -f node_modules/regenerator-runtime/runtime.js editor/external/regenerator-runtime && copyfiles -f \"node_modules/core-js-bundle//minified*\" editor/external/core-js-bundle && copyfiles -f \"node_modules/underscore/underscore-*\" editor/jspdf && copyfiles -f \"node_modules/deparam/dist/deparam.esm.js\" editor/external/deparam", + "remark": "remark -q -f .", + "build-html": "babel-node --plugins @babel/plugin-transform-modules-commonjs build/build-html.js", + "eslint-fix": "eslint --cache --fix --ext js,md,html .", + "eslint": "eslint --cache --ext js,md,html .", + "rollup": "rollup -c", + "build-by-config": "rollup -c rollup-config.config.js", + "prep-no-core-rollup": "run-s eslint build-html build-by-config", + "prep": "run-s prep-no-core-rollup rollup", + "prepublishOnly": "run-s license-badges copy prep build-docs", + "cypress:open-no-start": "cypress open", + "cypress:open": "run-p start cypress:open-no-start", + "open-tests": "run-s instrument cypress:open", + "cypress:merge": "mochawesome-merge \"cypress/results/mochaw*.json\" > mochawesome.json && marge mochawesome.json && mbg --file ./mochawesome.json --badge_output badges/tests-badge.svg", + "cypress:run-only": "rimraf \"cypress/results/mochaw*.json\" && rimraf \".nyc_output/*\" && cypress run", + "cypress:run-no-badge": "run-s -c cypress:run-only cypress:merge", + "cypress:run": "run-s -c cypress:run-no-badge report-summary-mocha-full coverage-badge", + "mochawesome-cli": "node tools/mochawesome-cli.js", + "mochawesome-cli-dot": "npm run mochawesome-cli -- --dot", + "report-no-mochawesome": "nyc report", + "report-text-summary": "nyc report --reporter=text-summary", + "report-summary-mocha-full": "run-s report-text-summary mochawesome-cli", + "test-only-no-report": "run-p start cypress:run", + "test-only": "run-s -c test-only-no-report report", + "test-no-cov-no-core-rollup": "run-s prep-no-core-rollup test-only", + "test-no-cov": "run-s prep test-only", + "test-no-core-rollup": "run-s instrument test-no-cov-no-core-rollup", + "test": "run-s instrument test-no-cov" }, "nyc": { "exclude": [ "editor/external/**", "editor/jquery.min.js", "editor/jquery-ui/**", - "editor/jquerybbq/**", "editor/js-hotkeys/**", "editor/jspdf/jspdf.min.js", "editor/jspdf/underscore-min.js", @@ -83,7 +114,7 @@ "Brett Zamir", "Fabien Jacq" ], - "license": "MIT", + "license": "(MIT AND Apache-2.0 AND ISC AND LGPL-3.0-or-later AND X11)", "bugs": { "url": "https://github.com/SVG-Edit/svgedit/issues" }, @@ -109,60 +140,78 @@ ], "dependencies": {}, "devDependencies": { - "@babel/core": "^7.7.7", - "@babel/node": "^7.7.7", - "@babel/plugin-transform-modules-commonjs": "^7.7.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", - "@babel/preset-env": "^7.7.7", - "@cypress/code-coverage": "^1.10.4", - "@cypress/fiddle": "^1.4.0", + "@babel/core": "^7.9.6", + "@babel/node": "^7.8.7", + "@babel/plugin-transform-modules-commonjs": "^7.9.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/preset-env": "^7.9.6", + "@babel/register": "^7.9.0", + "@cypress/code-coverage": "^3.7.6", + "@cypress/fiddle": "^1.18.2", + "@fintechstudios/eslint-plugin-chai-as-promised": "^3.0.2", "@mysticatea/eslint-plugin": "^13.0.0", - "axe-core": "^3.4.1", + "@rollup/plugin-babel": "^5.0.2", "babel-plugin-transform-object-rest-spread": "^7.0.0-beta.3", - "coffeescript": "^2.4.1", - "copyfiles": "^2.1.1", - "core-js-bundle": "^3.6.0", - "cypress": "^3.8.0", - "cypress-axe": "^0.5.3", - "eslint": "^6.7.2", - "eslint-config-ash-nazg": "^14.0.1", - "eslint-config-standard": "^14.1.0", - "eslint-plugin-array-func": "^3.1.3", - "eslint-plugin-compat": "^3.3.0", - "eslint-plugin-cypress": "^2.8.1", - "eslint-plugin-eslint-comments": "^3.1.2", - "eslint-plugin-html": "^6.0.0", - "eslint-plugin-import": "^2.19.1", - "eslint-plugin-jsdoc": "^18.4.3", - "eslint-plugin-markdown": "^1.0.1", - "eslint-plugin-no-unsanitized": "^3.0.2", - "eslint-plugin-no-use-extend-native": "^0.4.1", - "eslint-plugin-node": "^10.0.0", + "coffeescript": "^2.5.1", + "copyfiles": "^2.2.0", + "core-js-bundle": "^3.6.5", + "coveradge": "^0.6.0", + "cypress": "^4.6.0", + "cypress-axe": "^0.8.1", + "cypress-multi-reporters": "^1.4.0", + "deparam": "git+https://github.com/brettz9/deparam.git#updates", + "eslint": "^7.1.0", + "eslint-config-ash-nazg": "^22.2.0", + "eslint-config-standard": "^14.1.1", + "eslint-plugin-array-func": "^3.1.6", + "eslint-plugin-chai-expect": "^2.1.0", + "eslint-plugin-chai-expect-keywords": "^2.0.1", + "eslint-plugin-chai-friendly": "^0.6.0", + "eslint-plugin-compat": "^3.7.0", + "eslint-plugin-cypress": "^2.10.3", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-html": "^6.0.2", + "eslint-plugin-import": "^2.20.2", + "eslint-plugin-jsdoc": "^25.4.3", + "eslint-plugin-markdown": "^1.0.2", + "eslint-plugin-mocha": "^7.0.0", + "eslint-plugin-mocha-cleanup": "^1.8.0", + "eslint-plugin-no-unsanitized": "^3.1.1", + "eslint-plugin-no-use-extend-native": "^0.5.0", + "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^4.2.1", "eslint-plugin-sonarjs": "^0.5.0", "eslint-plugin-standard": "^4.0.1", - "eslint-plugin-unicorn": "^14.0.1", + "eslint-plugin-unicorn": "^20.0.0", "frs-replace": "^2.0.1", - "gh-badges": "^2.2.1", "imageoptim-cli": "^3.0.2", - "jamilih": "^0.46.0", - "jsdoc": "^3.6.3", + "jamilih": "^0.53.2", + "jsdoc": "^3.6.4", + "license-badger": "^0.17.0", "load-stylesheets": "^0.9.0", + "mocha": "^7.2.0", + "mocha-badge-generator": "^0.8.0", + "mochawesome": "^6.1.1", + "mochawesome-merge": "^4.0.3", + "mochawesome-report-generator": "^5.1.0", "node-static": "^0.7.11", "npm-run-all": "^4.1.5", - "nyc": "^14.1.1", - "open-cli": "^5.0.0", + "nyc": "^15.0.1", + "open-cli": "^6.0.1", "promise-fs": "^2.1.1", - "qr-manipulation": "https://github.com/brettz9/qr-manipulation", - "query-result": "https://github.com/WebReflection/query-result", - "regenerator-runtime": "^0.13.3", - "remark-cli": "^7.0.1", - "remark-lint-ordered-list-marker-value": "^1.0.4", - "rollup": "1.27.13", - "rollup-plugin-babel": "^4.3.3", + "qr-manipulation": "git+https://github.com/brettz9/qr-manipulation.git", + "query-result": "git+https://github.com/WebReflection/query-result.git", + "react": "^16.13.1", + "react-dom": "^16.13.1", + "regenerator-runtime": "^0.13.5", + "remark-cli": "^8.0.0", + "remark-lint-ordered-list-marker-value": "^2.0.0", + "rimraf": "^3.0.2", + "rollup": "2.10.9", "rollup-plugin-re": "^1.0.7", - "rollup-plugin-terser": "^5.1.3", - "stackblur-canvas": "^2.2.0", - "typescript": "^3.7.3" + "rollup-plugin-terser": "^6.1.0", + "stackblur-canvas": "^2.3.0", + "typescript": "^3.9.3", + "underscore": "^1.6.0" } } diff --git a/rollup-config.config.js b/rollup-config.config.js index 7152ee24..6b5bb5db 100644 --- a/rollup-config.config.js +++ b/rollup-config.config.js @@ -1,5 +1,5 @@ /* eslint-env node */ -import babel from 'rollup-plugin-babel'; +import babel from '@rollup/plugin-babel'; import replace from 'rollup-plugin-re'; const plugins = [ @@ -29,6 +29,7 @@ window.svgEditor.modules = false; ] }), babel({ + babelHelpers: 'bundled', plugins: ['transform-object-rest-spread'] }) ]; diff --git a/rollup.config.js b/rollup.config.js index 1d0604f0..fd1b1abd 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -4,9 +4,9 @@ // See rollup-config.config.js instead for building the main (configurable) // user entrance file import {join, basename} from 'path'; -import {lstatSync, readdirSync, copyFileSync} from 'fs'; +import {lstatSync, readdirSync, copyFileSync, mkdirSync} from 'fs'; -import babel from 'rollup-plugin-babel'; +import babel from '@rollup/plugin-babel'; import {terser} from 'rollup-plugin-terser'; import replace from 'rollup-plugin-re'; @@ -50,6 +50,7 @@ function getRollupObject ({minifying, format = 'umd'} = {}) { }, plugins: [ babel({ + babelHelpers: 'bundled', plugins: [ 'transform-object-rest-spread', '@babel/plugin-transform-named-capturing-groups-regex' @@ -86,6 +87,7 @@ export default [ }, plugins: [ babel({ + babelHelpers: 'bundled', plugins: ['transform-object-rest-spread'] }), min ? terser() : null @@ -101,7 +103,9 @@ export default [ name: `svgEditorExtensionLocale_${basename(dir)}_${lang}`, file: `dist/extensions/ext-locale/${basename(dir)}/${file}` }, - plugins: [babel()] + plugins: [babel({ + babelHelpers: 'bundled' + })] }; }), { @@ -110,7 +114,9 @@ export default [ format: 'iife', file: 'dist/redirect-on-lacking-support.js' }, - plugins: [babel()] + plugins: [babel({ + babelHelpers: 'bundled' + })] }, { input: 'editor/jspdf/jspdf.plugin.svgToPdf.js', @@ -118,7 +124,9 @@ export default [ format: 'iife', file: 'dist/jspdf.plugin.svgToPdf.js' }, - plugins: [babel()] + plugins: [babel({ + babelHelpers: 'bundled' + })] }, { input: 'editor/extensions/imagelib/index.js', @@ -128,6 +136,7 @@ export default [ }, plugins: [ babel({ + babelHelpers: 'bundled', plugins: ['transform-object-rest-spread'] }) ] @@ -140,6 +149,7 @@ export default [ }, plugins: [ babel({ + babelHelpers: 'bundled', plugins: ['transform-object-rest-spread'] }) ] @@ -150,7 +160,9 @@ export default [ format: 'iife', file: 'dist/dom-polyfill.js' }, - plugins: [babel()] + plugins: [babel({ + babelHelpers: 'bundled' + })] }, { input: 'editor/canvg/canvg.js', @@ -159,7 +171,9 @@ export default [ name: 'canvg', file: 'dist/canvg.js' }, - plugins: [babel()] + plugins: [babel({ + babelHelpers: 'bundled' + })] }, ...localeFiles.map((localeFile) => { // lang.*.js @@ -177,12 +191,15 @@ export default [ }, plugins: [ // Probably don't need here, but... - babel() + babel({ + babelHelpers: 'bundled' + }) ] }; }), ...extensionFiles.map((extensionFile) => { if (extensionFile.match(/\.php$/)) { + mkdirSync('dist/extensions', {recursive: true}); copyFileSync( join('editor/extensions', extensionFile), join('dist/extensions', extensionFile) @@ -228,6 +245,7 @@ export default [ ] }), babel({ + babelHelpers: 'bundled', plugins: ['transform-object-rest-spread'] }) ] diff --git a/screencasts/svgopen2010/index.html b/screencasts/svgopen2010/index.html index 9b610799..d12805b3 100644 --- a/screencasts/svgopen2010/index.html +++ b/screencasts/svgopen2010/index.html @@ -18,7 +18,7 @@ Modifications: Ernest Delgado (ernestd@google.com) Alex Russell (slightlyoff@chromium.org) Brad Neuberg - SVG-edit presentation: Pavol Rusnak (stick@gk2.sk) + SVG-edit presentation: Pavol Rusnak (pavol@rusnak.io) --> diff --git a/screencasts/svgopen2010/script.js b/screencasts/svgopen2010/script.js index 203e99d9..e91c8054 100644 --- a/screencasts/svgopen2010/script.js +++ b/screencasts/svgopen2010/script.js @@ -33,12 +33,12 @@ const query = function (qry, root) { }; const ua = navigator.userAgent; -const isFF = parseFloat(ua.split('Firefox/')[1]) || undefined; -const isWK = parseFloat(ua.split('WebKit/')[1]) || undefined; -const isOpera = parseFloat(ua.split('Opera/')[1]) || undefined; +const isFF = Number.parseFloat(ua.split('Firefox/')[1]) || undefined; +const isWK = Number.parseFloat(ua.split('WebKit/')[1]) || undefined; +const isOpera = Number.parseFloat(ua.split('Opera/')[1]) || undefined; const canTransition = (function () { - const ver = parseFloat(ua.split('Version/')[1]) || undefined; + const ver = Number.parseFloat(ua.split('Version/')[1]) || undefined; // test to determine if this browser can handle CSS transitions. const cachedCanTransition = (isWK || (isFF && isFF > 3.6) || (isOpera && ver >= 10.5)); @@ -158,9 +158,9 @@ const SlideShow = function (slides) { const h = window.location.hash; try { - this.current = parseInt(h.split('#slide')[1]); - } catch (e) { /* squeltch */ } - this.current = isNaN(this.current) ? 1 : this.current; + this.current = Number.parseInt(h.split('#slide')[1]); + } catch (e) { /* squelch */ } + this.current = Number.isNaN(this.current) ? 1 : this.current; const that = this; doc.addEventListener('keydown', function (e) { that.handleKeys(e); }); diff --git a/svgedit-config-es.js b/svgedit-config-es.js index 20bf26c6..ded72c17 100644 --- a/svgedit-config-es.js +++ b/svgedit-config-es.js @@ -4,8 +4,8 @@ // TO svgedit-config-es.js. /* -The svgedit-config-es.js file is intended for the setting of configuration or - preferences which must run early on; if this is not needed, it is +The svgedit-config-es.js file is intended for the setting of configuration + or preferences which must run early on; if this is not needed, it is recommended that you create an extension instead (for greater reusability and modularity). This file needs to be in the parent folder of the editor folder. It is referenced in the code as @@ -51,8 +51,14 @@ svgEditor.setConfig({ // EXTENSION CONFIG svgEditor.setConfig({ extensions: [ - // 'ext-overview_window.js', 'ext-markers.js', 'ext-connector.js', 'ext-eyedropper.js', 'ext-shapes.js', 'ext-imagelib.js', 'ext-grid.js', 'ext-polygon.js', 'ext-star.js', 'ext-panning.js', 'ext-storage.js' - ], noDefaultExtensions: false, // noDefaultExtensions can only be meaningfully used in svgedit-config-es.js or in the URL + // 'ext-overview_window.js', 'ext-markers.js', 'ext-connector.js', + // 'ext-eyedropper.js', 'ext-shapes.js', 'ext-imagelib.js', + // 'ext-grid.js', 'ext-polygon.js', 'ext-star.js', 'ext-panning.js', + // 'ext-storage.js' + ], + // noDefaultExtensions can only be meaningfully used in + // `svgedit-config-es.js` or in the URL + noDefaultExtensions: false, }); // STYLESHEET CONFIG @@ -91,7 +97,8 @@ svgEditor.setConfig({ Setting as `['*']` would allow any domain to access but would be unsafe to data privacy and integrity. */ - // allowedOrigins: [location.origin || 'null'], // May be 'null' (as a string) when used as a `file:///` URL + // May be 'null' (as a string) when used as a `file:///` URL + // allowedOrigins: [location.origin || 'null'], // DOCUMENT PROPERTIES // dimensions: [640, 480], // EDITOR OPTIONS @@ -103,9 +110,16 @@ svgEditor.setConfig({ // EXTENSION-RELATED (GRID) // showGrid: false, // Set by ext-grid.js // EXTENSION-RELATED (STORAGE) - // noStorageOnLoad: false, // Some interaction with ext-storage.js; prevent even the loading of previously saved local storage - // forceStorage: false, // Some interaction with ext-storage.js; strongly discouraged from modification as it bypasses user privacy by preventing them from choosing whether to keep local storage or not - // emptyStorageOnDecline: true, // Used by ext-storage.js; empty any prior storage if the user declines to store + // Some interaction with `ext-storage.js`; prevent even the loading of + // previously saved local storage + // noStorageOnLoad: false, + // Some interaction with `ext-storage.js`; strongly discouraged from + // modification as it bypasses user privacy by preventing them from + // choosing whether to keep local storage or not + // forceStorage: false, + // Used by `ext-storage.js`; empty any prior storage if the user + // declines to store + // emptyStorageOnDecline: true, }); // PREF CHANGES @@ -123,14 +137,17 @@ As with configuration, one may use allowInitialUserOverride, but are hard-coded here regardless of URL or prior user storage setting. */ svgEditor.setConfig({ - // lang: '', // Set dynamically within locale.js if not previously set - // iconsize: '', // Will default to 's' if the window height is smaller than the minimum height and 'm' otherwise + // Set dynamically within locale.js if not previously set + // lang: '', + // Will default to 's' if the window height is smaller than the minimum + // height and 'm' otherwise + // iconsize: '', /** * When showing the preferences dialog, svg-editor.js currently relies - * on curPrefs instead of $.pref, so allowing an override for bkgd_color - * means that this value won't have priority over block auto-detection as - * far as determining which color shows initially in the preferences - * dialog (though it can be changed and saved). + * on `curPrefs` instead of `svgEditor.pref`, so allowing an override for + * `bkgd_color` means that this value won't have priority over block + * auto-detection as far as determining which color shows initially + * in the preferences dialog (though it can be changed and saved). */ // bkgd_color: '#FFF', // bkgd_url: '', @@ -141,9 +158,10 @@ svgEditor.setConfig({ }); svgEditor.setConfig( { - // Indicate pref settings here if you wish to allow user storage or URL settings - // to be able to override your default preferences (unless other config options - // have already explicitly prevented one or the other) + // Indicate pref settings here if you wish to allow user storage or URL + // settings to be able to override your default preferences (unless + // other config options have already explicitly prevented one or the + // other) }, {allowInitialUserOverride: true} ); diff --git a/svgedit-config-iife.js b/svgedit-config-iife.js index 7da1abda..d7855d76 100644 --- a/svgedit-config-iife.js +++ b/svgedit-config-iife.js @@ -2,6 +2,8 @@ 'use strict'; function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function (obj) { return typeof obj; @@ -122,6 +124,19 @@ return _setPrototypeOf(o, p); } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); + return true; + } catch (e) { + return false; + } + } + function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); @@ -138,20 +153,35 @@ return _assertThisInitialized(self); } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + + return function () { + var Super = _getPrototypeOf(Derived), + result; + + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + + return _possibleConstructorReturn(this, result); + }; + } + function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - - return arr2; - } + if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayWithHoles(arr) { @@ -159,14 +189,11 @@ } function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } function _iterableToArrayLimit(arr, i) { - if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { - return; - } - + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; @@ -192,12 +219,84 @@ return _arr; } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; + } + function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + function _createForOfIteratorHelper(o) { + if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { + if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { + var i = 0; + + var F = function () {}; + + return { + s: F, + n: function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function (e) { + throw e; + }, + f: F + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + var it, + normalCompletion = true, + didErr = false, + err; + return { + s: function () { + it = o[Symbol.iterator](); + }, + n: function () { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function (e) { + didErr = true; + err = e; + }, + f: function () { + try { + if (!normalCompletion && it.return != null) it.return(); + } finally { + if (didErr) throw err; + } + } + }; } // http://ross.posterous.com/2008/08/19/iphone-touch-events-in-javascript/ @@ -269,13 +368,13 @@ document.addEventListener('touchcancel', touchHandler, true); /** - * Namespaces or tools therefor + * Namespaces or tools therefor. * @module namespaces * @license MIT */ /** - * Common namepaces constants in alpha order + * Common namepaces constants in alpha order. * @enum {string} * @type {PlainObject} * @memberof module:namespaces @@ -327,16 +426,14 @@ * Chrome 46. */ - /* eslint-disable no-shadow, class-methods-use-this */ + /* eslint-disable no-shadow, class-methods-use-this, jsdoc/require-jsdoc */ // Linting: We avoid `no-shadow` as ESLint thinks these are still available globals // Linting: We avoid `class-methods-use-this` as this is a polyfill that must // follow the conventions (function () { if (!('SVGPathSeg' in window)) { // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGPathSeg - var _SVGPathSeg = - /*#__PURE__*/ - function () { + var _SVGPathSeg = /*#__PURE__*/function () { function _SVGPathSeg(type, typeAsLetter, owningPathSegList) { _classCallCheck(this, _SVGPathSeg); @@ -380,15 +477,15 @@ _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18; _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19; - var _SVGPathSegClosePath = - /*#__PURE__*/ - function (_SVGPathSeg2) { + var _SVGPathSegClosePath = /*#__PURE__*/function (_SVGPathSeg2) { _inherits(_SVGPathSegClosePath, _SVGPathSeg2); + var _super = _createSuper(_SVGPathSegClosePath); + function _SVGPathSegClosePath(owningPathSegList) { _classCallCheck(this, _SVGPathSegClosePath); - return _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegClosePath).call(this, _SVGPathSeg.PATHSEG_CLOSEPATH, 'z', owningPathSegList)); + return _super.call(this, _SVGPathSeg.PATHSEG_CLOSEPATH, 'z', owningPathSegList); } _createClass(_SVGPathSegClosePath, [{ @@ -411,17 +508,17 @@ return _SVGPathSegClosePath; }(_SVGPathSeg); - var _SVGPathSegMovetoAbs = - /*#__PURE__*/ - function (_SVGPathSeg3) { + var _SVGPathSegMovetoAbs = /*#__PURE__*/function (_SVGPathSeg3) { _inherits(_SVGPathSegMovetoAbs, _SVGPathSeg3); + var _super2 = _createSuper(_SVGPathSegMovetoAbs); + function _SVGPathSegMovetoAbs(owningPathSegList, x, y) { var _this; _classCallCheck(this, _SVGPathSegMovetoAbs); - _this = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegMovetoAbs).call(this, _SVGPathSeg.PATHSEG_MOVETO_ABS, 'M', owningPathSegList)); + _this = _super2.call(this, _SVGPathSeg.PATHSEG_MOVETO_ABS, 'M', owningPathSegList); _this._x = x; _this._y = y; return _this; @@ -472,17 +569,17 @@ } }); - var _SVGPathSegMovetoRel = - /*#__PURE__*/ - function (_SVGPathSeg4) { + var _SVGPathSegMovetoRel = /*#__PURE__*/function (_SVGPathSeg4) { _inherits(_SVGPathSegMovetoRel, _SVGPathSeg4); + var _super3 = _createSuper(_SVGPathSegMovetoRel); + function _SVGPathSegMovetoRel(owningPathSegList, x, y) { var _this2; _classCallCheck(this, _SVGPathSegMovetoRel); - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegMovetoRel).call(this, _SVGPathSeg.PATHSEG_MOVETO_REL, 'm', owningPathSegList)); + _this2 = _super3.call(this, _SVGPathSeg.PATHSEG_MOVETO_REL, 'm', owningPathSegList); _this2._x = x; _this2._y = y; return _this2; @@ -533,17 +630,17 @@ } }); - var _SVGPathSegLinetoAbs = - /*#__PURE__*/ - function (_SVGPathSeg5) { + var _SVGPathSegLinetoAbs = /*#__PURE__*/function (_SVGPathSeg5) { _inherits(_SVGPathSegLinetoAbs, _SVGPathSeg5); + var _super4 = _createSuper(_SVGPathSegLinetoAbs); + function _SVGPathSegLinetoAbs(owningPathSegList, x, y) { var _this3; _classCallCheck(this, _SVGPathSegLinetoAbs); - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegLinetoAbs).call(this, _SVGPathSeg.PATHSEG_LINETO_ABS, 'L', owningPathSegList)); + _this3 = _super4.call(this, _SVGPathSeg.PATHSEG_LINETO_ABS, 'L', owningPathSegList); _this3._x = x; _this3._y = y; return _this3; @@ -594,17 +691,17 @@ } }); - var _SVGPathSegLinetoRel = - /*#__PURE__*/ - function (_SVGPathSeg6) { + var _SVGPathSegLinetoRel = /*#__PURE__*/function (_SVGPathSeg6) { _inherits(_SVGPathSegLinetoRel, _SVGPathSeg6); + var _super5 = _createSuper(_SVGPathSegLinetoRel); + function _SVGPathSegLinetoRel(owningPathSegList, x, y) { var _this4; _classCallCheck(this, _SVGPathSegLinetoRel); - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegLinetoRel).call(this, _SVGPathSeg.PATHSEG_LINETO_REL, 'l', owningPathSegList)); + _this4 = _super5.call(this, _SVGPathSeg.PATHSEG_LINETO_REL, 'l', owningPathSegList); _this4._x = x; _this4._y = y; return _this4; @@ -655,17 +752,17 @@ } }); - var _SVGPathSegCurvetoCubicAbs = - /*#__PURE__*/ - function (_SVGPathSeg7) { + var _SVGPathSegCurvetoCubicAbs = /*#__PURE__*/function (_SVGPathSeg7) { _inherits(_SVGPathSegCurvetoCubicAbs, _SVGPathSeg7); + var _super6 = _createSuper(_SVGPathSegCurvetoCubicAbs); + function _SVGPathSegCurvetoCubicAbs(owningPathSegList, x, y, x1, y1, x2, y2) { var _this5; _classCallCheck(this, _SVGPathSegCurvetoCubicAbs); - _this5 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoCubicAbs).call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, 'C', owningPathSegList)); + _this5 = _super6.call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, 'C', owningPathSegList); _this5._x = x; _this5._y = y; _this5._x1 = x1; @@ -764,17 +861,17 @@ } }); - var _SVGPathSegCurvetoCubicRel = - /*#__PURE__*/ - function (_SVGPathSeg8) { + var _SVGPathSegCurvetoCubicRel = /*#__PURE__*/function (_SVGPathSeg8) { _inherits(_SVGPathSegCurvetoCubicRel, _SVGPathSeg8); + var _super7 = _createSuper(_SVGPathSegCurvetoCubicRel); + function _SVGPathSegCurvetoCubicRel(owningPathSegList, x, y, x1, y1, x2, y2) { var _this6; _classCallCheck(this, _SVGPathSegCurvetoCubicRel); - _this6 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoCubicRel).call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, 'c', owningPathSegList)); + _this6 = _super7.call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, 'c', owningPathSegList); _this6._x = x; _this6._y = y; _this6._x1 = x1; @@ -873,17 +970,17 @@ } }); - var _SVGPathSegCurvetoQuadraticAbs = - /*#__PURE__*/ - function (_SVGPathSeg9) { + var _SVGPathSegCurvetoQuadraticAbs = /*#__PURE__*/function (_SVGPathSeg9) { _inherits(_SVGPathSegCurvetoQuadraticAbs, _SVGPathSeg9); + var _super8 = _createSuper(_SVGPathSegCurvetoQuadraticAbs); + function _SVGPathSegCurvetoQuadraticAbs(owningPathSegList, x, y, x1, y1) { var _this7; _classCallCheck(this, _SVGPathSegCurvetoQuadraticAbs); - _this7 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoQuadraticAbs).call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, 'Q', owningPathSegList)); + _this7 = _super8.call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, 'Q', owningPathSegList); _this7._x = x; _this7._y = y; _this7._x1 = x1; @@ -958,17 +1055,17 @@ } }); - var _SVGPathSegCurvetoQuadraticRel = - /*#__PURE__*/ - function (_SVGPathSeg10) { + var _SVGPathSegCurvetoQuadraticRel = /*#__PURE__*/function (_SVGPathSeg10) { _inherits(_SVGPathSegCurvetoQuadraticRel, _SVGPathSeg10); + var _super9 = _createSuper(_SVGPathSegCurvetoQuadraticRel); + function _SVGPathSegCurvetoQuadraticRel(owningPathSegList, x, y, x1, y1) { var _this8; _classCallCheck(this, _SVGPathSegCurvetoQuadraticRel); - _this8 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoQuadraticRel).call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, 'q', owningPathSegList)); + _this8 = _super9.call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, 'q', owningPathSegList); _this8._x = x; _this8._y = y; _this8._x1 = x1; @@ -1043,17 +1140,17 @@ } }); - var _SVGPathSegArcAbs = - /*#__PURE__*/ - function (_SVGPathSeg11) { + var _SVGPathSegArcAbs = /*#__PURE__*/function (_SVGPathSeg11) { _inherits(_SVGPathSegArcAbs, _SVGPathSeg11); + var _super10 = _createSuper(_SVGPathSegArcAbs); + function _SVGPathSegArcAbs(owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) { var _this9; _classCallCheck(this, _SVGPathSegArcAbs); - _this9 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegArcAbs).call(this, _SVGPathSeg.PATHSEG_ARC_ABS, 'A', owningPathSegList)); + _this9 = _super10.call(this, _SVGPathSeg.PATHSEG_ARC_ABS, 'A', owningPathSegList); _this9._x = x; _this9._y = y; _this9._r1 = r1; @@ -1164,17 +1261,17 @@ } }); - var _SVGPathSegArcRel = - /*#__PURE__*/ - function (_SVGPathSeg12) { + var _SVGPathSegArcRel = /*#__PURE__*/function (_SVGPathSeg12) { _inherits(_SVGPathSegArcRel, _SVGPathSeg12); + var _super11 = _createSuper(_SVGPathSegArcRel); + function _SVGPathSegArcRel(owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) { var _this10; _classCallCheck(this, _SVGPathSegArcRel); - _this10 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegArcRel).call(this, _SVGPathSeg.PATHSEG_ARC_REL, 'a', owningPathSegList)); + _this10 = _super11.call(this, _SVGPathSeg.PATHSEG_ARC_REL, 'a', owningPathSegList); _this10._x = x; _this10._y = y; _this10._r1 = r1; @@ -1285,17 +1382,17 @@ } }); - var _SVGPathSegLinetoHorizontalAbs = - /*#__PURE__*/ - function (_SVGPathSeg13) { + var _SVGPathSegLinetoHorizontalAbs = /*#__PURE__*/function (_SVGPathSeg13) { _inherits(_SVGPathSegLinetoHorizontalAbs, _SVGPathSeg13); + var _super12 = _createSuper(_SVGPathSegLinetoHorizontalAbs); + function _SVGPathSegLinetoHorizontalAbs(owningPathSegList, x) { var _this11; _classCallCheck(this, _SVGPathSegLinetoHorizontalAbs); - _this11 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegLinetoHorizontalAbs).call(this, _SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, 'H', owningPathSegList)); + _this11 = _super12.call(this, _SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, 'H', owningPathSegList); _this11._x = x; return _this11; } @@ -1332,17 +1429,17 @@ enumerable: true }); - var _SVGPathSegLinetoHorizontalRel = - /*#__PURE__*/ - function (_SVGPathSeg14) { + var _SVGPathSegLinetoHorizontalRel = /*#__PURE__*/function (_SVGPathSeg14) { _inherits(_SVGPathSegLinetoHorizontalRel, _SVGPathSeg14); + var _super13 = _createSuper(_SVGPathSegLinetoHorizontalRel); + function _SVGPathSegLinetoHorizontalRel(owningPathSegList, x) { var _this12; _classCallCheck(this, _SVGPathSegLinetoHorizontalRel); - _this12 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegLinetoHorizontalRel).call(this, _SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, 'h', owningPathSegList)); + _this12 = _super13.call(this, _SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, 'h', owningPathSegList); _this12._x = x; return _this12; } @@ -1379,17 +1476,17 @@ enumerable: true }); - var _SVGPathSegLinetoVerticalAbs = - /*#__PURE__*/ - function (_SVGPathSeg15) { + var _SVGPathSegLinetoVerticalAbs = /*#__PURE__*/function (_SVGPathSeg15) { _inherits(_SVGPathSegLinetoVerticalAbs, _SVGPathSeg15); + var _super14 = _createSuper(_SVGPathSegLinetoVerticalAbs); + function _SVGPathSegLinetoVerticalAbs(owningPathSegList, y) { var _this13; _classCallCheck(this, _SVGPathSegLinetoVerticalAbs); - _this13 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegLinetoVerticalAbs).call(this, _SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, 'V', owningPathSegList)); + _this13 = _super14.call(this, _SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, 'V', owningPathSegList); _this13._y = y; return _this13; } @@ -1426,17 +1523,17 @@ enumerable: true }); - var _SVGPathSegLinetoVerticalRel = - /*#__PURE__*/ - function (_SVGPathSeg16) { + var _SVGPathSegLinetoVerticalRel = /*#__PURE__*/function (_SVGPathSeg16) { _inherits(_SVGPathSegLinetoVerticalRel, _SVGPathSeg16); + var _super15 = _createSuper(_SVGPathSegLinetoVerticalRel); + function _SVGPathSegLinetoVerticalRel(owningPathSegList, y) { var _this14; _classCallCheck(this, _SVGPathSegLinetoVerticalRel); - _this14 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegLinetoVerticalRel).call(this, _SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, 'v', owningPathSegList)); + _this14 = _super15.call(this, _SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, 'v', owningPathSegList); _this14._y = y; return _this14; } @@ -1473,17 +1570,17 @@ enumerable: true }); - var _SVGPathSegCurvetoCubicSmoothAbs = - /*#__PURE__*/ - function (_SVGPathSeg17) { + var _SVGPathSegCurvetoCubicSmoothAbs = /*#__PURE__*/function (_SVGPathSeg17) { _inherits(_SVGPathSegCurvetoCubicSmoothAbs, _SVGPathSeg17); + var _super16 = _createSuper(_SVGPathSegCurvetoCubicSmoothAbs); + function _SVGPathSegCurvetoCubicSmoothAbs(owningPathSegList, x, y, x2, y2) { var _this15; _classCallCheck(this, _SVGPathSegCurvetoCubicSmoothAbs); - _this15 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoCubicSmoothAbs).call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, 'S', owningPathSegList)); + _this15 = _super16.call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, 'S', owningPathSegList); _this15._x = x; _this15._y = y; _this15._x2 = x2; @@ -1558,17 +1655,17 @@ } }); - var _SVGPathSegCurvetoCubicSmoothRel = - /*#__PURE__*/ - function (_SVGPathSeg18) { + var _SVGPathSegCurvetoCubicSmoothRel = /*#__PURE__*/function (_SVGPathSeg18) { _inherits(_SVGPathSegCurvetoCubicSmoothRel, _SVGPathSeg18); + var _super17 = _createSuper(_SVGPathSegCurvetoCubicSmoothRel); + function _SVGPathSegCurvetoCubicSmoothRel(owningPathSegList, x, y, x2, y2) { var _this16; _classCallCheck(this, _SVGPathSegCurvetoCubicSmoothRel); - _this16 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoCubicSmoothRel).call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, 's', owningPathSegList)); + _this16 = _super17.call(this, _SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, 's', owningPathSegList); _this16._x = x; _this16._y = y; _this16._x2 = x2; @@ -1643,17 +1740,17 @@ } }); - var _SVGPathSegCurvetoQuadraticSmoothAbs = - /*#__PURE__*/ - function (_SVGPathSeg19) { + var _SVGPathSegCurvetoQuadraticSmoothAbs = /*#__PURE__*/function (_SVGPathSeg19) { _inherits(_SVGPathSegCurvetoQuadraticSmoothAbs, _SVGPathSeg19); + var _super18 = _createSuper(_SVGPathSegCurvetoQuadraticSmoothAbs); + function _SVGPathSegCurvetoQuadraticSmoothAbs(owningPathSegList, x, y) { var _this17; _classCallCheck(this, _SVGPathSegCurvetoQuadraticSmoothAbs); - _this17 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoQuadraticSmoothAbs).call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, 'T', owningPathSegList)); + _this17 = _super18.call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, 'T', owningPathSegList); _this17._x = x; _this17._y = y; return _this17; @@ -1704,17 +1801,17 @@ } }); - var _SVGPathSegCurvetoQuadraticSmoothRel = - /*#__PURE__*/ - function (_SVGPathSeg20) { + var _SVGPathSegCurvetoQuadraticSmoothRel = /*#__PURE__*/function (_SVGPathSeg20) { _inherits(_SVGPathSegCurvetoQuadraticSmoothRel, _SVGPathSeg20); + var _super19 = _createSuper(_SVGPathSegCurvetoQuadraticSmoothRel); + function _SVGPathSegCurvetoQuadraticSmoothRel(owningPathSegList, x, y) { var _this18; _classCallCheck(this, _SVGPathSegCurvetoQuadraticSmoothRel); - _this18 = _possibleConstructorReturn(this, _getPrototypeOf(_SVGPathSegCurvetoQuadraticSmoothRel).call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, 't', owningPathSegList)); + _this18 = _super19.call(this, _SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, 't', owningPathSegList); _this18._x = x; _this18._y = y; return _this18; @@ -1902,9 +1999,7 @@ if (!('SVGPathSegList' in window) || !('appendItem' in window.SVGPathSegList.prototype)) { // Spec: https://www.w3.org/TR/SVG11/single-page.html#paths-InterfaceSVGPathSegList - var SVGPathSegList = - /*#__PURE__*/ - function () { + var SVGPathSegList = /*#__PURE__*/function () { function SVGPathSegList(pathElement) { _classCallCheck(this, SVGPathSegList); @@ -2088,9 +2183,7 @@ var owningPathSegList = this; // eslint-disable-line consistent-this - var Builder = - /*#__PURE__*/ - function () { + var Builder = /*#__PURE__*/function () { function Builder() { _classCallCheck(this, Builder); @@ -2107,9 +2200,7 @@ return Builder; }(); - var Source = - /*#__PURE__*/ - function () { + var Source = /*#__PURE__*/function () { function Source(string) { _classCallCheck(this, Source); @@ -2650,7 +2741,7 @@ var isChrome_ = userAgent.includes('Chrome/'); var isWindows_ = userAgent.includes('Windows'); var isMac_ = userAgent.includes('Macintosh'); - var isTouch_ = 'ontouchstart' in window; + var isTouch_ = ('ontouchstart' in window); var supportsSelectors_ = function () { return Boolean(svg.querySelector); @@ -2906,7 +2997,7 @@ }; /** - * jQuery module to work with SVG attributes + * A jQuery module to work with SVG attributes. * @module jQueryAttr * @license MIT */ @@ -3076,14 +3167,14 @@ */ /** - * (DOES NOT THROW DOMException, INDEX_SIZE_ERR) + * DOES NOT THROW DOMException, INDEX_SIZE_ERR. * @function module:SVGTransformList.SVGEditTransformList#getItem * @param {Integer} index unsigned long * @returns {SVGTransform} */ /** - * (DOES NOT THROW DOMException, INDEX_SIZE_ERR) + * DOES NOT THROW DOMException, INDEX_SIZE_ERR. * @function module:SVGTransformList.SVGEditTransformList#insertItemBefore * @param {SVGTransform} newItem * @param {Integer} index unsigned long @@ -3091,7 +3182,7 @@ */ /** - * (DOES NOT THROW DOMException, INDEX_SIZE_ERR) + * DOES NOT THROW DOMException, INDEX_SIZE_ERR. * @function module:SVGTransformList.SVGEditTransformList#replaceItem * @param {SVGTransform} newItem * @param {Integer} index unsigned long @@ -3099,7 +3190,7 @@ */ /** - * (DOES NOT THROW DOMException, INDEX_SIZE_ERR) + * DOES NOT THROW DOMException, INDEX_SIZE_ERR. * @function module:SVGTransformList.SVGEditTransformList#removeItem * @param {Integer} index unsigned long * @returns {SVGTransform} @@ -3112,7 +3203,7 @@ */ /** - * NOT IMPLEMENTED + * NOT IMPLEMENTED. * @ignore * @function module:SVGTransformList.SVGEditTransformList#createSVGTransformFromMatrix * @param {SVGMatrix} matrix @@ -3120,7 +3211,7 @@ */ /** - * NOT IMPLEMENTED + * NOT IMPLEMENTED. * @ignore * @function module:SVGTransformList.SVGEditTransformList#consolidate * @returns {SVGTransform} @@ -3134,9 +3225,7 @@ * @implements {module:SVGTransformList.SVGEditTransformList} */ - var SVGTransformList = - /*#__PURE__*/ - function () { + var SVGTransformList = /*#__PURE__*/function () { // eslint-disable-line no-shadow /** @@ -3205,7 +3294,7 @@ var mtx = svgroot.createSVGMatrix(); Object.values(valArr).forEach(function (item, i) { - valArr[i] = parseFloat(item); + valArr[i] = Number.parseFloat(item); if (name === 'matrix') { mtx[letters[i]] = valArr[i]; @@ -3472,7 +3561,7 @@ }; /** - * Tools for working with units + * Tools for working with units. * @module units * @license MIT * @@ -3576,7 +3665,7 @@ }; }; /** - * Group: Unit conversion functions + * Group: Unit conversion functions. */ /** @@ -3615,7 +3704,7 @@ return shortFloat(val[0]) + ',' + shortFloat(val[1]); } - return parseFloat(val).toFixed(digits) - 0; + return Number.parseFloat(val).toFixed(digits) - 0; }; /** * Converts the number to given unit or baseUnit. @@ -3758,7 +3847,7 @@ }; /** - * Group: Undo/Redo history management + * Group: Undo/Redo history management. */ var HistoryEventTypes = { @@ -3772,9 +3861,7 @@ * Base class for commands. */ - var Command = - /*#__PURE__*/ - function () { + var Command = /*#__PURE__*/function () { function Command() { _classCallCheck(this, Command); } @@ -3801,43 +3888,43 @@ */ /** - * Applies + * Applies. * * @function module:history.HistoryCommand#apply - * @param {module:history.HistoryEventHandler} + * @param {module:history.HistoryEventHandler} handler * @fires module:history~Command#event:history * @returns {void|true} */ /** * - * Unapplies + * Unapplies. * @function module:history.HistoryCommand#unapply - * @param {module:history.HistoryEventHandler} + * @param {module:history.HistoryEventHandler} handler * @fires module:history~Command#event:history * @returns {void|true} */ /** - * Returns the elements + * Returns the elements. * @function module:history.HistoryCommand#elements * @returns {Element[]} */ /** - * Gets the text + * Gets the text. * @function module:history.HistoryCommand#getText * @returns {string} */ /** - * Gives the type + * Gives the type. * @function module:history.HistoryCommand.type * @returns {string} */ /** - * Gives the type + * Gives the type. * @function module:history.HistoryCommand#type * @returns {string} */ @@ -3865,24 +3952,26 @@ /** * History command for an element that had its DOM position changed. * @implements {module:history.HistoryCommand} - * @param {Element} elem - The DOM element that was moved - * @param {Element} oldNextSibling - The element's next sibling before it was moved - * @param {Element} oldParent - The element's parent before it was moved - * @param {string} [text] - An optional string visible to user related to this change */ - var MoveElementCommand = - /*#__PURE__*/ - function (_Command) { + var MoveElementCommand = /*#__PURE__*/function (_Command) { _inherits(MoveElementCommand, _Command); + var _super = _createSuper(MoveElementCommand); + + /** + * @param {Element} elem - The DOM element that was moved + * @param {Element} oldNextSibling - The element's next sibling before it was moved + * @param {Element} oldParent - The element's parent before it was moved + * @param {string} [text] - An optional string visible to user related to this change + */ function MoveElementCommand(elem, oldNextSibling, oldParent, text) { var _this; _classCallCheck(this, MoveElementCommand); - _this = _possibleConstructorReturn(this, _getPrototypeOf(MoveElementCommand).call(this)); + _this = _super.call(this); _this.elem = elem; _this.text = text ? 'Move ' + elem.tagName + ' to ' + text : 'Move ' + elem.tagName; _this.oldNextSibling = oldNextSibling; @@ -3891,6 +3980,10 @@ _this.newParent = elem.parentNode; return _this; } + /** + * @returns {"svgedit.history.MoveElementCommand"} + */ + _createClass(MoveElementCommand, [{ key: "type", @@ -3956,28 +4049,33 @@ /** * History command for an element that was added to the DOM. * @implements {module:history.HistoryCommand} - * - * @param {Element} elem - The newly added DOM element - * @param {string} text - An optional string visible to user related to this change */ - var InsertElementCommand = - /*#__PURE__*/ - function (_Command2) { + var InsertElementCommand = /*#__PURE__*/function (_Command2) { _inherits(InsertElementCommand, _Command2); + var _super2 = _createSuper(InsertElementCommand); + + /** + * @param {Element} elem - The newly added DOM element + * @param {string} text - An optional string visible to user related to this change + */ function InsertElementCommand(elem, text) { var _this2; _classCallCheck(this, InsertElementCommand); - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(InsertElementCommand).call(this)); + _this2 = _super2.call(this); _this2.elem = elem; _this2.text = text || 'Create ' + elem.tagName; _this2.parent = elem.parentNode; _this2.nextSibling = _this2.elem.nextSibling; return _this2; } + /** + * @returns {"svgedit.history.InsertElementCommand"} + */ + _createClass(InsertElementCommand, [{ key: "type", @@ -4020,7 +4118,7 @@ } this.parent = this.elem.parentNode; - this.elem = this.elem.parentNode.removeChild(this.elem); + this.elem = this.elem.remove(); if (handler) { handler.handleHistoryEvent(HistoryEventTypes.AFTER_UNAPPLY, this); @@ -4043,23 +4141,25 @@ /** * History command for an element removed from the DOM. * @implements {module:history.HistoryCommand} - * @param {Element} elem - The removed DOM element - * @param {Node} oldNextSibling - The DOM element's nextSibling when it was in the DOM - * @param {Element} oldParent - The DOM element's parent - * @param {string} [text] - An optional string visible to user related to this change */ - var RemoveElementCommand = - /*#__PURE__*/ - function (_Command3) { + var RemoveElementCommand = /*#__PURE__*/function (_Command3) { _inherits(RemoveElementCommand, _Command3); + var _super3 = _createSuper(RemoveElementCommand); + + /** + * @param {Element} elem - The removed DOM element + * @param {Node} oldNextSibling - The DOM element's nextSibling when it was in the DOM + * @param {Element} oldParent - The DOM element's parent + * @param {string} [text] - An optional string visible to user related to this change + */ function RemoveElementCommand(elem, oldNextSibling, oldParent, text) { var _this3; _classCallCheck(this, RemoveElementCommand); - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(RemoveElementCommand).call(this)); + _this3 = _super3.call(this); _this3.elem = elem; _this3.text = text || 'Delete ' + elem.tagName; _this3.nextSibling = oldNextSibling; @@ -4068,6 +4168,10 @@ removeElementFromListMap(elem); return _this3; } + /** + * @returns {"svgedit.history.RemoveElementCommand"} + */ + _createClass(RemoveElementCommand, [{ key: "type", @@ -4091,7 +4195,7 @@ removeElementFromListMap(this.elem); this.parent = this.elem.parentNode; - this.elem = this.parent.removeChild(this.elem); + this.elem = this.elem.remove(); if (handler) { handler.handleHistoryEvent(HistoryEventTypes.AFTER_APPLY, this); @@ -4151,22 +4255,24 @@ * History command to make a change to an element. * Usually an attribute change, but can also be textcontent. * @implements {module:history.HistoryCommand} - * @param {Element} elem - The DOM element that was changed - * @param {module:history.CommandAttributes} attrs - Attributes to be changed with the values they had *before* the change - * @param {string} text - An optional string visible to user related to this change */ - var ChangeElementCommand = - /*#__PURE__*/ - function (_Command4) { + var ChangeElementCommand = /*#__PURE__*/function (_Command4) { _inherits(ChangeElementCommand, _Command4); + var _super4 = _createSuper(ChangeElementCommand); + + /** + * @param {Element} elem - The DOM element that was changed + * @param {module:history.CommandAttributes} attrs - Attributes to be changed with the values they had *before* the change + * @param {string} text - An optional string visible to user related to this change + */ function ChangeElementCommand(elem, attrs, text) { var _this4; _classCallCheck(this, ChangeElementCommand); - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(ChangeElementCommand).call(this)); + _this4 = _super4.call(this); _this4.elem = elem; _this4.text = text ? 'Change ' + elem.tagName + ' ' + text : 'Change ' + elem.tagName; _this4.newValues = {}; @@ -4184,6 +4290,10 @@ return _this4; } + /** + * @returns {"svgedit.history.ChangeElementCommand"} + */ + _createClass(ChangeElementCommand, [{ key: "type", @@ -4342,11 +4452,11 @@ * @implements {module:history.HistoryCommand} */ - var BatchCommand = - /*#__PURE__*/ - function (_Command5) { + var BatchCommand = /*#__PURE__*/function (_Command5) { _inherits(BatchCommand, _Command5); + var _super5 = _createSuper(BatchCommand); + /** * @param {string} [text] - An optional string visible to user related to this change */ @@ -4355,11 +4465,15 @@ _classCallCheck(this, BatchCommand); - _this7 = _possibleConstructorReturn(this, _getPrototypeOf(BatchCommand).call(this)); + _this7 = _super5.call(this); _this7.text = text || 'Batch Command'; _this7.stack = []; return _this7; } + /** + * @returns {"svgedit.history.BatchCommand"} + */ + _createClass(BatchCommand, [{ key: "type", @@ -4466,9 +4580,7 @@ * */ - var UndoManager = - /*#__PURE__*/ - function () { + var UndoManager = /*#__PURE__*/function () { /** * @param {module:history.HistoryEventHandler} historyEventHandler */ @@ -4666,7 +4778,7 @@ }); /** - * Mathematical utilities + * Mathematical utilities. * @module math * @license MIT * @@ -4830,8 +4942,8 @@ min = min || 0; max = max || tlist.numberOfItems - 1; - min = parseInt(min); - max = parseInt(max); + min = Number.parseInt(min); + max = Number.parseInt(max); if (min > max) { var temp = max; @@ -4962,7 +5074,7 @@ */ /** - * Object with the following keys/values + * Object with the following keys/values. * @typedef {PlainObject} module:path.SVGElementJSON * @property {string} element - Tag name of the SVG element to create * @property {PlainObject} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement. @@ -4991,7 +5103,7 @@ */ /** - * Note: This doesn't round to an integer necessarily + * Note: This doesn't round to an integer necessarily. * @function module:path.EditorContext#round * @param {Float} val * @returns {Float} Rounded value to nearest value based on `currentZoom` @@ -5089,19 +5201,19 @@ */ /** - * Returns the last created DOM element ID string + * Returns the last created DOM element ID string. * @function module:path.EditorContext#getId * @returns {string} */ /** - * Creates and returns a unique ID string for a DOM element + * Creates and returns a unique ID string for a DOM element. * @function module:path.EditorContext#getNextId * @returns {string} */ /** - * Gets the desired element from a mouse event + * Gets the desired element from a mouse event. * @function module:path.EditorContext#getMouseTarget * @param {external:MouseEvent} evt - Event object from the mouse event * @returns {Element} DOM element we want @@ -5607,9 +5719,7 @@ * */ - var Segment = - /*#__PURE__*/ - function () { + var Segment = /*#__PURE__*/function () { /** * @param {Integer} index * @param {SVGPathSeg} item @@ -5837,9 +5947,7 @@ * */ - var Path = - /*#__PURE__*/ - function () { + var Path = /*#__PURE__*/function () { /** * @param {SVGPathElement} elem * @throws {Error} If constructed without a path element @@ -6552,7 +6660,7 @@ } }; /** - * This is how we map paths to our preferred relative segment types + * This is how we map paths to our preferred relative segment types. * @name module:path.pathMap * @type {GenericArray} */ @@ -6585,7 +6693,7 @@ x2 = seg.x2 || 0, y2 = seg.y2 || 0; var type = seg.pathSegType; - var letter = pathMap[type]['to' + (toRel ? 'Lower' : 'Upper') + 'Case'](); + var letter = pathMap[type][toRel ? 'toLowerCase' : 'toUpperCase'](); switch (type) { case 1: @@ -6607,16 +6715,18 @@ case 13: // relative horizontal line (h) if (toRel) { + y = 0; curx += x; letter = 'l'; } else { + y = cury; x += curx; curx = x; letter = 'L'; } // Convert to "line" for easier editing - d += pathDSegment(letter, [[x, cury]]); + d += pathDSegment(letter, [[x, y]]); break; case 14: @@ -6627,16 +6737,18 @@ case 15: // relative vertical line (v) if (toRel) { + x = 0; cury += y; letter = 'l'; } else { + x = curx; y += cury; cury = y; letter = 'L'; } // Convert to "line" for easier editing - d += pathDSegment(letter, [[curx, y]]); + d += pathDSegment(letter, [[x, y]]); break; case 2: // absolute move (M) @@ -6805,15 +6917,18 @@ return segment; } + /* eslint-disable jsdoc/require-property */ + /** - * Group: Path edit functions - * Functions relating to editing path elements + * Group: Path edit functions. + * Functions relating to editing path elements. * @namespace {PlainObject} pathActions * @memberof module:path */ var pathActions = function () { + /* eslint-enable jsdoc/require-property */ var subpath = false; var newPoint, firstCtrl; var currentPath = null; @@ -7108,7 +7223,7 @@ if (id.substr(0, 14) === 'pathpointgrip_') { // Select this point - curPt = path.cur_pt = parseInt(id.substr(14)); + curPt = path.cur_pt = Number.parseInt(id.substr(14)); path.dragging = [startX, startY]; var seg = path.segs[curPt]; // only clear selection if shift is not pressed (otherwise, add // node to selection) @@ -7140,11 +7255,10 @@ rubberBox = editorContext_.setRubberBox(editorContext_.selectorManager.getRubberBandBox()); } - var _currentZoom = editorContext_.getCurrentZoom(); - + var currentZoom = editorContext_.getCurrentZoom(); assignAttributes(rubberBox, { - x: startX * _currentZoom, - y: startY * _currentZoom, + x: startX * currentZoom, + y: startY * currentZoom, width: 0, height: 0, display: 'inline' @@ -7790,15 +7904,19 @@ path.endChanges('Delete path node(s)'); }, + + /* eslint-disable jsdoc/require-returns */ // Can't seem to use `@borrows` here, so using `@see` /** - * Smooth polyline into path + * Smooth polyline into path. * @function module:path.pathActions.smoothPolylineIntoPath * @see module:path~smoothPolylineIntoPath */ smoothPolylineIntoPath: smoothPolylineIntoPath, + /* eslint-enable jsdoc/require-returns */ + /** * @param {?Integer} v See {@link https://www.w3.org/TR/SVG/single-page.html#paths-InterfaceSVGPathSeg} * @returns {void} @@ -7868,14 +7986,18 @@ editorContext_.resetD(elem); } }, + + /* eslint-disable jsdoc/require-returns */ // Can't seem to use `@borrows` here, so using `@see` /** - * Convert a path to one with only absolute or relative values + * Convert a path to one with only absolute or relative values. * @function module:path.pathActions.convertPath * @see module:path.convertPath */ convertPath: convertPath + /* eslint-enable jsdoc/require-returns */ + } ); }(); // end pathActions @@ -7892,7 +8014,7 @@ var domcontainer_ = null; var svgroot_ = null; /** - * Object with the following keys/values + * Object with the following keys/values. * @typedef {PlainObject} module:utilities.SVGElementJSON * @property {string} element - Tag name of the SVG element to create * @property {PlainObject} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement. @@ -7916,7 +8038,7 @@ /** * Create a new SVG element based on the given object keys/values and add it * to the current layer. - * The element will be run through `cleanupElement` before being returned + * The element will be run through `cleanupElement` before being returned. * @function module:utilities.EditorContext#addSVGElementFromJson * @param {module:utilities.SVGElementJSON} data * @returns {Element} The new element @@ -7966,13 +8088,13 @@ }; /** * Used to prevent the [Billion laughs attack]{@link https://en.wikipedia.org/wiki/Billion_laughs_attack}. - * @function module:utilities.dropXMLInteralSubset + * @function module:utilities.dropXMLInternalSubset * @param {string} str String to be processed * @returns {string} The string with entity declarations in the internal subset removed * @todo This might be needed in other places `parseFromString` is used even without LGTM flagging */ - var dropXMLInteralSubset = function dropXMLInteralSubset(str) { + var dropXMLInternalSubset = function dropXMLInternalSubset(str) { return str.replace(/()/, '$1$2'); // return str.replace(/(?\?\]>)/, '$$'); }; /** @@ -8025,10 +8147,10 @@ var enc4 = chr3 & 63; /* eslint-enable no-bitwise */ - if (isNaN(chr2)) { + if (Number.isNaN(chr2)) { enc3 = 64; enc4 = 64; - } else if (isNaN(chr3)) { + } else if (Number.isNaN(chr3)) { enc4 = 64; } @@ -8562,8 +8684,8 @@ var bb = { width: width, height: height, - x: x + parseFloat(selected.getAttribute('x') || 0), - y: y + parseFloat(selected.getAttribute('y') || 0) + x: x + Number.parseFloat(selected.getAttribute('x') || 0), + y: y + Number.parseFloat(selected.getAttribute('y') || 0) }; ret = bb; } @@ -9135,6 +9257,7 @@ }, 9, null).singleNodeValue; } : function (id) { // jQuery lookup: twice as slow as xpath in FF + // eslint-disable-next-line unicorn/no-fn-reference-in-iterator return $$2(svgroot_).find('[id=' + id + ']')[0]; }; /** @@ -9155,6 +9278,16 @@ var ns = key.substr(0, 4) === 'xml:' ? NS.XML : key.substr(0, 6) === 'xlink:' ? NS.XLINK : null; + if (isNullish(value)) { + if (ns) { + elem.removeAttributeNS(ns, key); + } else { + elem.removeAttribute(key); + } + + continue; + } + if (ns) { elem.setAttributeNS(ns, key, value); } else if (!unitCheck) { @@ -9313,7 +9446,7 @@ /* globals jQuery */ /** - * Adds context menu functionality + * Adds context menu functionality. * @module contextmenu * @license Apache-2.0 * @author Adam Bender @@ -9367,11 +9500,12 @@ }); }; - // MIT License - // From: https://github.com/uupaa/dynamic-import-polyfill/blob/master/importModule.js + /* eslint-disable jsdoc/require-file-overview */ /** + * Adapted from {@link https://github.com/uupaa/dynamic-import-polyfill/blob/master/importModule.js}. * @module importModule + * @license MIT */ /** @@ -9441,9 +9575,7 @@ */ function _importSetGlobal() { - _importSetGlobal = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee(url, _ref) { + _importSetGlobal = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url, _ref) { var glob, returnDefault, modularVersion; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { @@ -9598,6 +9730,94 @@ }); } + /** + * Created by alexey2baranov on 28.01.17. + */ + + /* + An extraction of the deparam method from Ben Alman's jQuery BBQ + http://benalman.com/projects/jquery-bbq-plugin/ + */ + var coerce_types = { + 'true': !0, + 'false': !1, + 'null': null + }; + + function deparam(params, coerce) { + // console.log(params) + var obj = {}; // Iterate over all name=value pairs. + + params.replace(/\+/g, ' ').split('&').forEach(function (v) { + var param = v.split('='); + var key = decodeURIComponent(param[0]), + // If key is more complex than 'foo', like 'a[]' or 'a[b][c]', split it + // into its component parts. + keys = key.split(']['), + keys_last = keys.length - 1; // If the first keys part contains [ and the last ends with ], then [] + // are correctly balanced. + + if (/\[/.test(keys[0]) && /\]$/.test(keys[keys_last])) { + // Remove the trailing ] from the last keys part. + keys[keys_last] = keys[keys_last].replace(/\]$/, ''); // Split first keys part into two parts on the [ and add them back onto + // the beginning of the keys array. + + keys = keys.shift().split('[').concat(keys); + keys_last = keys.length - 1; + } else { + // Basic 'foo' style key. + keys_last = 0; + } // Are we dealing with a name=value pair, or just a name? + + + if (param.length >= 2) { + var val = decodeURIComponent(param.slice(1).join('=')); // Coerce values. + + if (coerce) { + val = val && !isNaN(val) ? +val // number + : val === 'undefined' ? undefined // undefined + : coerce_types[val] !== undefined ? coerce_types[val] // true, false, null + : val; // string + } + + if (keys_last) { + var cur = obj; // Complex key, build deep object structure based on a few rules: + // * The 'cur' pointer starts at the object top-level. + // * [] = array push (n is set to array length), [n] = array if n is + // numeric, otherwise object. + // * If at the last keys part, set the value. + // * For each keys part, if the current level is undefined create an + // object or array based on the type of the next keys part. + // * Move the 'cur' pointer to the next level. + // * Rinse & repeat. + + for (var i = 0; i <= keys_last; i++) { + key = keys[i] === '' ? cur.length : keys[i]; + cur = cur[key] = i < keys_last ? cur[key] || (keys[i + 1] && isNaN(keys[i + 1]) ? {} : []) : val; + } + } else { + // Simple key, even simpler rules, since only scalars and shallow + // arrays are allowed. + if (Array.isArray(obj[key])) { + // val is already an array, so push on the next value. + obj[key].push(val); + } else if (obj[key] !== undefined) { + // val isn't an array, but since a second value has been specified, + // convert val into an array. + obj[key] = [obj[key], val]; + } else { + // val is a scalar. + obj[key] = val; + } + } + } else if (key) { + // No value was defined, so set something meaningful. + obj[key] = coerce ? undefined : ''; + } + }); + return obj; + } + /** * @module jQueryPluginDBox */ @@ -9816,9 +10036,7 @@ * @memberof module:layer */ - var Layer = - /*#__PURE__*/ - function () { + var Layer = /*#__PURE__*/function () { /** * @param {string} name - Layer name * @param {SVGGElement|null} group - An existing SVG group element or null. @@ -9936,7 +10154,7 @@ return 1; } - return parseFloat(opacity); + return Number.parseFloat(opacity); } /** * Sets the opacity of this layer. If opacity is not a value between 0.0 and 1.0, @@ -9961,28 +10179,18 @@ }, { key: "appendChildren", value: function appendChildren(children) { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + var _iterator = _createForOfIteratorHelper(children), + _step; try { - for (var _iterator = children[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + for (_iterator.s(); !(_step = _iterator.n()).done;) { var child = _step.value; this.group_.append(child); } } catch (err) { - _didIteratorError = true; - _iteratorError = err; + _iterator.e(err); } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + _iterator.f(); } } /** @@ -10043,8 +10251,7 @@ }, { key: "removeGroup", value: function removeGroup() { - var parent = this.group_.parentNode; - var group = parent.removeChild(this.group_); + var group = this.group_.remove(); this.group_ = undefined; return group; } @@ -10094,7 +10301,7 @@ * * The following will record history: insert, batch, insert. * @example - * hrService = new history.HistoryRecordingService(this.undoMgr); + * hrService = new HistoryRecordingService(this.undoMgr); * hrService.insertElement(elem, text); // add simple command to history. * hrService.startBatchCommand('create two elements'); * hrService.changeElement(elem, attrs, text); // add to batchCommand @@ -10113,9 +10320,7 @@ * @memberof module:history */ - var HistoryRecordingService = - /*#__PURE__*/ - function () { + var HistoryRecordingService = /*#__PURE__*/function () { /** * @param {history.UndoManager|null} undoManager - The undo manager. * A value of `null` is valid for cases where no history recording is required. @@ -10328,9 +10533,7 @@ */ - var Drawing = - /*#__PURE__*/ - function () { + var Drawing = /*#__PURE__*/function () { /** * @param {SVGSVGElement} svgElem - The SVG DOM Element that this JS object * encapsulates. If the svgElem has a se:nonce attribute on it, then @@ -10421,6 +10624,7 @@ // querySelector lookup return this.svgElem_.querySelector('#' + id); } // jQuery lookup: twice as slow as xpath in FF + // eslint-disable-next-line unicorn/no-fn-reference-in-iterator return $$5(this.svgElem_).find('[id=' + id + ']')[0]; @@ -10537,7 +10741,7 @@ } // extract the obj_num of this id - var num = parseInt(id.substr(front.length)); // if we didn't get a positive number or we already released this number + var num = Number.parseInt(id.substr(front.length)); // if we didn't get a positive number or we already released this number // then return false. if (typeof num !== 'number' || num <= 0 || this.releasedNums.includes(num)) { @@ -11071,7 +11275,7 @@ }; // Layer API Functions /** - * Group: Layers + * Group: Layers. */ /** @@ -11119,7 +11323,7 @@ */ /** - * Run the callback function associated with the given event + * Run the callback function associated with the given event. * @function module:draw.DrawCanvasInit#call * @param {"changed"|"contextset"} ev - String with the event name * @param {module:svgcanvas.SvgCanvas#event:changed|module:svgcanvas.SvgCanvas#event:contextset} arg - Argument to pass through to the callback @@ -11443,7 +11647,7 @@ /** * This defines which elements and attributes that we support (or at least - * don't remove) + * don't remove). * @type {PlainObject} */ @@ -11814,8 +12018,8 @@ // therefore [T'] = [M_inv][T][M] var existing = transformListToTransform(selected).matrix, tNew = matrixMultiply(existing.inverse(), m, existing); - changes.x = parseFloat(changes.x) + tNew.e; - changes.y = parseFloat(changes.y) + tNew.f; + changes.x = Number.parseFloat(changes.x) + tNew.e; + changes.y = Number.parseFloat(changes.y) + tNew.f; } else { // we just absorb all matrices into the element and don't do any remapping var chlist = getTransformList(selected); @@ -12997,9 +13201,7 @@ * Private class for DOM element selection boxes. */ - var Selector = - /*#__PURE__*/ - function () { + var Selector = /*#__PURE__*/function () { /** * @param {Integer} id - Internally identify the selector * @param {Element} elem - DOM element associated with this selector @@ -13246,9 +13448,10 @@ * Manage all selector objects (selection boxes). */ - var SelectorManager = - /*#__PURE__*/ - function () { + var SelectorManager = /*#__PURE__*/function () { + /** + * Sets up properties and calls `initGroup`. + */ function SelectorManager() { _classCallCheck(this, SelectorManager); @@ -13654,7 +13857,7 @@ var svgroot = svgdoc.importNode(text2xml('' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '').documentElement, true); container.append(svgroot); /** - * The actual element that represents the final output SVG element + * The actual element that represents the final output SVG element. * @name module:svgcanvas~svgcontent * @type {SVGSVGElement} */ @@ -13699,7 +13902,7 @@ idprefix = p; }; /** - * Current draw.Drawing object + * Current `draw.Drawing` object. * @type {module:draw.Drawing} * @name module:svgcanvas.SvgCanvas#current_drawing_ */ @@ -13716,7 +13919,7 @@ return canvas.current_drawing_; }; /** - * Float displaying the current zoom level (1 = 100%, .5 = 50%, etc) + * Float displaying the current zoom level (1 = 100%, .5 = 50%, etc.). * @type {Float} */ @@ -13852,8 +14055,8 @@ return curConfig.baseUnit; }; /** - * initialize from units.js. - * Send in an object implementing the ElementContainer interface (see units.js) + * Initialize from units.js. + * Send in an object implementing the ElementContainer interface (see units.js). */ @@ -14080,12 +14283,12 @@ var round = this.round = function (val) { - return parseInt(val * currentZoom) / currentZoom; + return Number.parseInt(val * currentZoom) / currentZoom; }; init$6(curConfig, /** - * Export to select.js + * Export to select.js. * @implements {module:select.SVGFactory} */ { @@ -14101,7 +14304,7 @@ getCurrentZoom: getCurrentZoom }); /** - * This object manages selectors for us + * This object manages selectors for us. * @name module:svgcanvas.SvgCanvas#selectorManager * @type {module:select.SelectorManager} */ @@ -14220,6 +14423,10 @@ } } + if (!selectedElements.length) { + return; + } + call('selected', selectedElements); if (showGrips || selectedElements.length === 1) { @@ -14697,8 +14904,8 @@ /** * @typedef {PlainObject} module:svgcanvas.ExtensionInitArgs - * @param {external:jQuery} initArgs.$ - * @param {module:SVGEditor~ImportLocale} initArgs.importLocale + * @property {external:jQuery} $ + * @property {module:SVGEditor~ImportLocale} importLocale */ /** @@ -14714,12 +14921,8 @@ */ - this.addExtension = - /*#__PURE__*/ - function () { - var _ref4 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee(name, extInitFunc, _ref3) { + this.addExtension = /*#__PURE__*/function () { + var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(name, extInitFunc, _ref3) { var jq, importLocale, argObj, extObj; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { @@ -14774,8 +14977,7 @@ if (extObj) { extObj.name = name; - } // eslint-disable-next-line require-atomic-updates - + } extensions[name] = extObj; return _context.abrupt("return", call('extension_added', extObj)); @@ -14834,8 +15036,8 @@ if (!isIE()) { if (typeof svgroot.getIntersectionList === 'function') { // Offset the bbox of the rubber box by the offset of the svgcontent element. - rubberBBox.x += parseInt(svgcontent.getAttribute('x')); - rubberBBox.y += parseInt(svgcontent.getAttribute('y')); + rubberBBox.x += Number.parseInt(svgcontent.getAttribute('x')); + rubberBBox.y += Number.parseInt(svgcontent.getAttribute('y')); resultList = svgroot.getIntersectionList(rubberBBox, parent); } } @@ -14919,26 +15121,26 @@ var events = {}; canvas.call = call; /** - * Array of what was changed (elements, layers) + * Array of what was changed (elements, layers). * @event module:svgcanvas.SvgCanvas#event:changed * @type {Element[]} */ /** - * Array of selected elements + * Array of selected elements. * @event module:svgcanvas.SvgCanvas#event:selected * @type {Element[]} */ /** - * Array of selected elements + * Array of selected elements. * @event module:svgcanvas.SvgCanvas#event:transition * @type {Element[]} */ /** * The Element is always `SVGGElement`? - * If not `null`, will be the set current group element + * If not `null`, will be the set current group element. * @event module:svgcanvas.SvgCanvas#event:contextset * @type {null|Element} */ @@ -14999,7 +15201,7 @@ */ /** - * SVG canvas converted to string + * SVG canvas converted to string. * @event module:svgcanvas.SvgCanvas#event:saved * @type {string} */ @@ -15043,7 +15245,7 @@ /** * The promise return, if present, resolves to `undefined` - * (`extension_added`, `exported`, `saved`) + * (`extension_added`, `exported`, `saved`). * @typedef {Promise|void} module:svgcanvas.EventHandlerReturn */ @@ -15130,7 +15332,7 @@ this.setRotationAngle = function (val, preventUndo) { // ensure val is the proper type - val = parseFloat(val); + val = Number.parseFloat(val); var elem = selectedElements[0]; var oldTransform = elem.getAttribute('transform'); var bbox = getBBox(elem); @@ -15222,7 +15424,7 @@ var rootSctm = null; /** - * Group: Selection + * Group: Selection. */ // TODO: do we need to worry about selectedBBoxes here? @@ -15468,12 +15670,11 @@ if (!rightClick) { // insert a dummy transform so if the element(s) are moved it will have // a transform to use for its translate - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + var _iterator = _createForOfIteratorHelper(selectedElements), + _step; try { - for (var _iterator = selectedElements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + for (_iterator.s(); !(_step = _iterator.n()).done;) { var selectedElement = _step.value; if (isNullish(selectedElement)) { @@ -15489,18 +15690,9 @@ } } } catch (err) { - _didIteratorError = true; - _iteratorError = err; + _iterator.e(err); } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + _iterator.f(); } } } else if (!rightClick) { @@ -15621,6 +15813,14 @@ case 'fhpath': start.x = realX; start.y = realY; + controllPoint1 = { + x: 0, + y: 0 + }; + controllPoint2 = { + x: 0, + y: 0 + }; started = true; dAttr = realX + ',' + realY + ' '; // Commented out as doing nothing now: // strokeW = parseFloat(curShape.stroke_width) === 0 ? 1 : curShape.stroke_width; @@ -15789,7 +15989,7 @@ break; } /** - * The main (left) mouse button is held down on the canvas area + * The main (left) mouse button is held down on the canvas area. * @event module:svgcanvas.SvgCanvas#event:ext_mouseDown * @type {PlainObject} * @property {MouseEvent} event The event object @@ -16332,7 +16532,7 @@ } } /** - * The mouse has moved on the canvas area + * The mouse has moved on the canvas area. * @event module:svgcanvas.SvgCanvas#event:ext_mouseMove * @type {PlainObject} * @property {MouseEvent} event The event object @@ -16649,7 +16849,7 @@ } } /** - * The main (left) mouse button is released (anywhere) + * The main (left) mouse button is released (anywhere). * @event module:svgcanvas.SvgCanvas#event:ext_mouseUp * @type {PlainObject} * @property {MouseEvent} event The event object @@ -16703,7 +16903,7 @@ var aniDur = 0.2; var cAni; - if (opacAni.beginElement && parseFloat(element.getAttribute('opacity')) !== curShape.opacity) { + if (opacAni.beginElement && Number.parseFloat(element.getAttribute('opacity')) !== curShape.opacity) { cAni = $$9(opacAni).clone().attr({ to: curShape.opacity, dur: aniDur @@ -16878,15 +17078,18 @@ call('zoomDone'); }); })(); + /* eslint-disable jsdoc/require-property */ + /** * Group: Text edit functions - * Functions relating to editing text elements + * Functions relating to editing text elements. * @namespace {PlainObject} textActions * @memberof module:svgcanvas.SvgCanvas# */ var textActions = canvas.textActions = function () { + /* eslint-enable jsdoc/require-property */ var curtext; var textinput; var cursor; @@ -17404,7 +17607,7 @@ ); }(); /** - * Group: Serialization + * Group: Serialization. */ /** @@ -17634,6 +17837,16 @@ continue; } + if (_attrVal === 'null') { + var styleName = _attr.localName.replace(/-[a-z]/g, function (s) { + return s[1].toUpperCase(); + }); + + if (Object.prototype.hasOwnProperty.call(elem.style, styleName)) { + continue; + } + } + if (_attrVal !== '') { if (_attrVal.startsWith('pointer-events')) { continue; @@ -17688,7 +17901,7 @@ case 1: // element node out.push('\n'); - out.push(this.svgToString(childs.item(_i4), indent)); + out.push(this.svgToString(child, indent)); break; case 3: @@ -17747,7 +17960,7 @@ }; // end svgToString() /** - * Function to run when image data is found + * Function to run when image data is found. * @callback module:svgcanvas.ImageEmbeddedCallback * @param {string|false} result Data URL * @returns {void} @@ -17912,12 +18125,8 @@ * @returns {Promise} Resolves to {@link module:svgcanvas.ImageExportedResults} */ - this.rasterExport = - /*#__PURE__*/ - function () { - var _ref5 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee2(imgType, quality, exportWindowName) { + this.rasterExport = /*#__PURE__*/function () { + var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(imgType, quality, exportWindowName) { var opts, type, mimeType, @@ -17925,7 +18134,7 @@ issues, issueCodes, svg, - _ref6, + _yield$importSetGloba, c, _args2 = arguments; @@ -17950,8 +18159,8 @@ }); case 8: - _ref6 = _context2.sent; - canvg = _ref6.canvg; + _yield$importSetGloba = _context2.sent; + canvg = _yield$importSetGloba.canvg; case 10: if (!$$9('#export_canvas').length) { @@ -18060,12 +18269,8 @@ */ - this.exportPDF = - /*#__PURE__*/ - function () { - var _ref7 = _asyncToGenerator( - /*#__PURE__*/ - regeneratorRuntime.mark(function _callee3(exportWindowName) { + this.exportPDF = /*#__PURE__*/function () { + var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(exportWindowName) { var outputType, modularVersion, res, @@ -18094,7 +18299,8 @@ _context3.next = 4; return importScript([// We do not currently have these paths configurable as they are // currently global-only, so not Rolled-up - 'jspdf/underscore-min.js', 'jspdf/jspdf.min.js']); + 'jspdf/underscore-min.js', // 'jspdf/jspdf.min.js', + '../../svgedit-myfix/editor/jspdf/jspdf-1.0.150.debug.js']); case 4: modularVersion = !('svgEditor' in window) || !window.svgEditor || window.svgEditor.modules !== false; // Todo: Switch to `import()` when widely supported and available (also allow customization of path) @@ -18154,7 +18360,7 @@ })); return function (_x7) { - return _ref7.apply(this, arguments); + return _ref6.apply(this, arguments); }; }(); /** @@ -18570,7 +18776,8 @@ var _svgcontent = svgcontent, nextSibling = _svgcontent.nextSibling; - var oldzoom = svgroot.removeChild(svgcontent); + svgcontent.remove(); + var oldzoom = svgcontent; batchCmd.addSubCommand(new RemoveElementCommand$1(oldzoom, nextSibling, svgroot)); // set new svg document // If DOM3 adoptNode() available, use it. Otherwise fall back to DOM2 importNode() @@ -18805,29 +19012,20 @@ } var attrs = svg.attributes; - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + + var _iterator2 = _createForOfIteratorHelper(attrs), + _step2; try { - for (var _iterator2 = attrs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var attr = _step2.value; // Ok for `NamedNodeMap` symbol.setAttribute(attr.nodeName, attr.value); } } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; + _iterator2.e(err); } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } + _iterator2.f(); } symbol.id = getNextId(); // Store data @@ -18883,10 +19081,10 @@ leaveContext: leaveContext, setContext: setContext }; - Object.entries(dr).forEach(function (_ref8) { - var _ref9 = _slicedToArray(_ref8, 2), - prop = _ref9[0], - propVal = _ref9[1]; + Object.entries(dr).forEach(function (_ref7) { + var _ref8 = _slicedToArray(_ref7, 2), + prop = _ref8[0], + propVal = _ref8[1]; canvas[prop] = propVal; }); @@ -18920,7 +19118,7 @@ } }); /** - * Group: Document functions + * Group: Document functions. */ /** @@ -19050,12 +19248,12 @@ elem = $$9(elem).data('gsvg') || $$9(elem).data('symbol') || elem; var childs = elem.childNodes; - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; + + var _iterator3 = _createForOfIteratorHelper(childs), + _step3; try { - for (var _iterator3 = childs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { var child = _step3.value; if (child.nodeName === 'title') { @@ -19063,18 +19261,9 @@ } } } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; + _iterator3.e(err); } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { - _iterator3["return"](); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } + _iterator3.f(); } return ''; @@ -19140,12 +19329,12 @@ var docTitle = false, oldTitle = ''; var batchCmd = new BatchCommand$1('Change Image Title'); - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; + + var _iterator4 = _createForOfIteratorHelper(childs), + _step4; try { - for (var _iterator4 = childs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { + for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { var child = _step4.value; if (child.nodeName === 'title') { @@ -19155,18 +19344,9 @@ } } } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; + _iterator4.e(err); } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { - _iterator4["return"](); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } + _iterator4.f(); } if (!docTitle) { @@ -19387,7 +19567,7 @@ */ /** - * The bottom panel was updated + * The bottom panel was updated. * @event module:svgcanvas.SvgCanvas#event:ext_toolButtonStateUpdate * @type {PlainObject} * @property {boolean} nofill Indicates fill is disabled @@ -19395,7 +19575,7 @@ */ /** - * The element selection has changed (elements were added/removed from selection) + * The element selection has changed (elements were added/removed from selection). * @event module:svgcanvas.SvgCanvas#event:ext_selectedChanged * @type {PlainObject} * @property {Element[]} elems Array of the newly selected elements @@ -19412,14 +19592,14 @@ */ /** - * One or more elements were changed + * One or more elements were changed. * @event module:svgcanvas.SvgCanvas#event:ext_elementChanged * @type {PlainObject} * @property {Element[]} elems Array of the affected elements */ /** - * Invoked as soon as the locale is ready + * Invoked as soon as the locale is ready. * @event module:svgcanvas.SvgCanvas#event:ext_langReady * @type {PlainObject} * @property {string} lang The two-letter language code @@ -19442,13 +19622,13 @@ */ /** - * Called when new image is created + * Called when new image is created. * @event module:svgcanvas.SvgCanvas#event:ext_onNewDocument * @type {void} */ /** - * Called when sidepanel is resized or toggled + * Called when sidepanel is resized or toggled. * @event module:svgcanvas.SvgCanvas#event:ext_workareaResized * @type {void} */ @@ -19509,7 +19689,7 @@ currentMode = name; }; /** - * Group: Element Styling + * Group: Element Styling. */ /** @@ -20382,7 +20562,7 @@ canvas.ungroupSelectedElement(); }; /** - * Group: Element manipulation + * Group: Element manipulation. */ /** @@ -20641,7 +20821,8 @@ var _t = t, nextSibling = _t.nextSibling; - var elem = parent.removeChild(t); + t.remove(); + var elem = t; selectedCopy.push(selected); // for the copy batchCmd.addSubCommand(new RemoveElementCommand$1(elem, nextSibling, parent)); @@ -20668,18 +20849,62 @@ canvas.copySelectedElements(); canvas.deleteSelectedElements(); }; + + var CLIPBOARD_ID = 'svgedit_clipboard'; + /** + * Flash the clipboard data momentarily on localStorage so all tabs can see. + * @returns {void} + */ + + function flashStorage() { + var data = sessionStorage.getItem(CLIPBOARD_ID); + localStorage.setItem(CLIPBOARD_ID, data); + setTimeout(function () { + localStorage.removeItem(CLIPBOARD_ID); + }, 1); + } + /** + * Transfers sessionStorage from one tab to another. + * @param {!Event} ev Storage event. + * @returns {void} + */ + + + function storageChange(ev) { + if (!ev.newValue) return; // This is a call from removeItem. + + if (ev.key === CLIPBOARD_ID + '_startup') { + // Another tab asked for our sessionStorage. + localStorage.removeItem(CLIPBOARD_ID + '_startup'); + flashStorage(); + } else if (ev.key === CLIPBOARD_ID) { + // Another tab sent data. + sessionStorage.setItem(CLIPBOARD_ID, ev.newValue); + } + } // Listen for changes to localStorage. + + + window.addEventListener('storage', storageChange, false); // Ask other tabs for sessionStorage (this is ONLY to trigger event). + + localStorage.setItem(CLIPBOARD_ID + '_startup', Math.random()); /** * Remembers the current selected elements on the clipboard. * @function module:svgcanvas.SvgCanvas#copySelectedElements * @returns {void} */ - this.copySelectedElements = function () { - localStorage.setItem('svgedit_clipboard', JSON.stringify(selectedElements.map(function (x) { + var data = JSON.stringify(selectedElements.map(function (x) { return getJsonFromSvgElement(x); - }))); - $$9('#cmenu_canvas').enableContextMenuItems('#paste,#paste_in_place'); + })); // Use sessionStorage for the clipboard data. + + sessionStorage.setItem(CLIPBOARD_ID, data); + flashStorage(); + var menu = $$9('#cmenu_canvas'); // Context menu might not exist (it is provided by editor.js). + + if (menu.enableContextMenuItems) { + menu.enableContextMenuItems('#paste,#paste_in_place'); + } }; /** * @function module:svgcanvas.SvgCanvas#pasteElements @@ -20693,13 +20918,10 @@ this.pasteElements = function (type, x, y) { - var clipb = JSON.parse(localStorage.getItem('svgedit_clipboard')); + var clipb = JSON.parse(sessionStorage.getItem(CLIPBOARD_ID)); + if (!clipb) return; var len = clipb.length; - - if (!len) { - return; - } - + if (!len) return; var pasted = []; var batchCmd = new BatchCommand$1('Paste elements'); // const drawing = getCurrentDrawing(); @@ -20731,7 +20953,7 @@ clipb.forEach(checkIDs); // Give extensions like the connector extension a chance to reflect new IDs and remove invalid elements /** - * Triggered when `pasteElements` is called from a paste action (context menu or key) + * Triggered when `pasteElements` is called from a paste action (context menu or key). * @event module:svgcanvas.SvgCanvas#event:ext_IDsUpdated * @type {PlainObject} * @property {module:svgcanvas.SVGAsJSON[]} elems @@ -21116,14 +21338,19 @@ var oldParent = elem.parentNode; // Remove child title elements if (elem.tagName === 'title') { - var _elem2 = elem, - nextSibling = _elem2.nextSibling; + var nextSibling = elem.nextSibling; batchCmd.addSubCommand(new RemoveElementCommand$1(elem, nextSibling, oldParent)); elem.remove(); continue; } - children[i++] = elem = parent.insertBefore(elem, anchor); + if (anchor) { + anchor.before(elem); + } else { + g.after(elem); + } + + children[i++] = elem; batchCmd.addSubCommand(new MoveElementCommand$1(elem, oldNextSibling, oldParent)); } // remove the group from the selection @@ -21131,7 +21358,7 @@ clearSelection(); // delete the group element (but make undo-able) var gNextSibling = g.nextSibling; - g = parent.removeChild(g); + g.remove(); batchCmd.addSubCommand(new RemoveElementCommand$1(g, gNextSibling, parent)); if (!batchCmd.isEmpty()) { @@ -21535,7 +21762,7 @@ this.moveSelectedElements(dx, dy); }; /** - * Group: Additional editor tools + * Group: Additional editor tools. */ /** @@ -21647,7 +21874,29 @@ var bg = getElem('canvasBackground'); var border = $$9(bg).find('rect')[0]; var bgImg = getElem('background_image'); - border.setAttribute('fill', color); + var bgPattern = getElem('background_pattern'); + border.setAttribute('fill', color === 'chessboard' ? '#fff' : color); + + if (color === 'chessboard') { + if (!bgPattern) { + bgPattern = svgdoc.createElementNS(NS.SVG, 'foreignObject'); + assignAttributes(bgPattern, { + id: 'background_pattern', + width: '100%', + height: '100%', + preserveAspectRatio: 'xMinYMin', + style: 'pointer-events:none' + }); + var div = document.createElement('div'); + assignAttributes(div, { + style: 'pointer-events:none;width:100%;height:100%;background-image:url(data:image/gif;base64,R0lGODlhEAAQAIAAAP///9bW1iH5BAAAAAAALAAAAAAQABAAAAIfjG+gq4jM3IFLJgpswNly/XkcBpIiVaInlLJr9FZWAQA7);' + }); + bgPattern.appendChild(div); + bg.append(bgPattern); + } + } else if (bgPattern) { + bgPattern.remove(); + } if (url) { if (!bgImg) { @@ -21720,7 +21969,7 @@ * @property {module:history.HistoryCommand} BatchCommand * @property {module:history.HistoryCommand} ChangeElementCommand * @property {module:utilities.decode64} decode64 - * @property {module:utilities.dropXMLInteralSubset} dropXMLInteralSubset + * @property {module:utilities.dropXMLInternalSubset} dropXMLInternalSubset * @property {module:utilities.encode64} encode64 * @property {module:svgcanvas~ffClone} ffClone * @property {module:svgcanvas~findDuplicateGradient} findDuplicateGradient @@ -21762,7 +22011,7 @@ BatchCommand: BatchCommand$1, ChangeElementCommand: ChangeElementCommand$1, decode64: decode64, - dropXMLInteralSubset: dropXMLInteralSubset, + dropXMLInternalSubset: dropXMLInternalSubset, encode64: encode64, ffClone: ffClone, findDefs: findDefs, @@ -21950,369 +22199,8 @@ return b; } - /* - * Todo: Update to latest at https://github.com/cowboy/jquery-bbq ? - * jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010 - * http://benalman.com/projects/jquery-bbq-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ - // For sake of modules, added this wrapping export and changed `this` to `window` - function jQueryPluginBBQ (jQuery) { - (function ($, p) { - var i, - m = Array.prototype.slice, - r = decodeURIComponent, - a = $.param, - c, - l, - v, - b = $.bbq = $.bbq || {}, - q, - u, - j, - e = $.event.special, - d = "hashchange", - A = "querystring", - D = "fragment", - y = "elemUrlAttr", - g = "location", - k = "href", - t = "src", - x = /^.*\?|#.*$/g, - w = /^.*\#/, - h, - C = {}; - - function E(F) { - return typeof F === "string"; - } - - function B(G) { - var F = m.call(arguments, 1); - return function () { - return G.apply(this, F.concat(m.call(arguments))); - }; - } - - function n(F) { - return F.replace(/^[^#]*#?(.*)$/, "$1"); - } - - function o(F) { - return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/, "$1"); - } - - function f(H, M, F, I, G) { - var O, L, K, N, J; - - if (I !== i) { - K = F.match(H ? /^([^#]*)\#?(.*)$/ : /^([^#?]*)\??([^#]*)(#?.*)/); - J = K[3] || ""; - - if (G === 2 && E(I)) { - L = I.replace(H ? w : x, ""); - } else { - N = l(K[2]); - I = E(I) ? l[H ? D : A](I) : I; - L = G === 2 ? I : G === 1 ? $.extend({}, I, N) : $.extend({}, N, I); - L = a(L); - - if (H) { - L = L.replace(h, r); - } - } - - O = K[1] + (H ? "#" : L || !K[1] ? "?" : "") + L + J; - } else { - O = M(F !== i ? F : p[g][k]); - } - - return O; - } - - a[A] = B(f, 0, o); - a[D] = c = B(f, 1, n); - - c.noEscape = function (G) { - G = G || ""; - var F = $.map(G.split(""), encodeURIComponent); - h = new RegExp(F.join("|"), "g"); - }; - - c.noEscape(",/"); - - $.deparam = l = function l(I, F) { - var H = {}, - G = { - "true": !0, - "false": !1, - "null": null - }; - $.each(I.replace(/\+/g, " ").split("&"), function (L, Q) { - var K = Q.split("="), - P = r(K[0]), - J, - O = H, - M = 0, - R = P.split("]["), - N = R.length - 1; - - if (/\[/.test(R[0]) && /\]$/.test(R[N])) { - R[N] = R[N].replace(/\]$/, ""); - R = R.shift().split("[").concat(R); - N = R.length - 1; - } else { - N = 0; - } - - if (K.length === 2) { - J = r(K[1]); - - if (F) { - J = J && !isNaN(J) ? +J : J === "undefined" ? i : G[J] !== i ? G[J] : J; - } - - if (N) { - for (; M <= N; M++) { - P = R[M] === "" ? O.length : R[M]; - O = O[P] = M < N ? O[P] || (R[M + 1] && isNaN(R[M + 1]) ? {} : []) : J; - } - } else { - if ($.isArray(H[P])) { - H[P].push(J); - } else { - if (H[P] !== i) { - H[P] = [H[P], J]; - } else { - H[P] = J; - } - } - } - } else { - if (P) { - H[P] = F ? i : ""; - } - } - }); - return H; - }; - - function z(H, F, G) { - if (F === i || typeof F === "boolean") { - G = F; - F = a[H ? D : A](); - } else { - F = E(F) ? F.replace(H ? w : x, "") : F; - } - - return l(F, G); - } - - l[A] = B(z, 0); - l[D] = v = B(z, 1); - $[y] || ($[y] = function (F) { - return $.extend(C, F); - })({ - a: k, - base: k, - iframe: t, - img: t, - input: t, - form: "action", - link: k, - script: t - }); - j = $[y]; - - function s(I, G, H, F) { - if (!E(H) && _typeof(H) !== "object") { - F = H; - H = G; - G = i; - } - - return this.each(function () { - var L = $(this), - J = G || j()[(this.nodeName || "").toLowerCase()] || "", - K = J && L.attr(J) || ""; - L.attr(J, a[I](K, H, F)); - }); - } - - $.fn[A] = B(s, A); - $.fn[D] = B(s, D); - - b.pushState = q = function q(I, F) { - if (E(I) && /^#/.test(I) && F === i) { - F = 2; - } - - var H = I !== i, - G = c(p[g][k], H ? I : {}, H ? F : 2); - p[g][k] = G + (/#/.test(G) ? "" : "#"); - }; - - b.getState = u = function u(F, G) { - return F === i || typeof F === "boolean" ? v(F) : v(G)[F]; - }; - - b.removeState = function (F) { - var G = {}; - - if (F !== i) { - G = u(); - $.each($.isArray(F) ? F : arguments, function (I, H) { - delete G[H]; - }); - } - - q(G, 2); - }; - - e[d] = $.extend(e[d], { - add: function add(F) { - var H; - - function G(J) { - var I = J[D] = c(); - - J.getState = function (K, L) { - return K === i || typeof K === "boolean" ? l(I, K) : l(I, L)[K]; - }; - - H.apply(this, arguments); - } - - if ($.isFunction(F)) { - H = F; - return G; - } else { - H = F.handler; - F.handler = G; - } - } - }); - })(jQuery, window); - /* - * jQuery hashchange event - v1.2 - 2/11/2010 - * http://benalman.com/projects/jquery-hashchange-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ - - - (function ($, i, b) { - var j, - k = $.event.special, - c = "location", - d = "hashchange", - l = "href", - f = $.browser, - g = document.documentMode, - h = f.msie && (g === b || g < 8), - e = "on" + d in i && !h; - - function a(m) { - m = m || i[c][l]; - return m.replace(/^[^#]*#?(.*)$/, "$1"); - } - - $[d + "Delay"] = 100; - k[d] = $.extend(k[d], { - setup: function setup() { - if (e) { - return false; - } - - $(j.start); - }, - teardown: function teardown() { - if (e) { - return false; - } - - $(j.stop); - } - }); - - j = function () { - var m = {}, - r, - n, - o, - q; - - function p() { - o = q = function q(s) { - return s; - }; - - if (h) { - n = $('