diff --git a/api/index.html b/api/index.html index 31d25f83..f577dca5 100644 --- a/api/index.html +++ b/api/index.html @@ -122,7 +122,6 @@
DAOstar Endpoint Service v0.2 (C form.addEventListener('submit', async function (e) { e.preventDefault(); const form_data = Object.fromEntries(new FormData(form).entries()); - console.log(form_data); if (checkboxElem.checked) { window.location.href = `/api/view?cid=${form_data.contract_id}`; } else { diff --git a/api/manage.html b/api/manage.html index b14d490f..26b4a064 100644 --- a/api/manage.html +++ b/api/manage.html @@ -239,7 +239,6 @@
body: JSON.stringify(payload) }); - console.log(endpoint, response); const result = await response.json(); updateAlert.classList.toggle("show"); @@ -253,7 +252,6 @@
fetch(endpoint, { method: 'DELETE' }) .then(resp => resp.json()) .then(data => { - console.log(data); window.location.href = "/api"; }) } diff --git a/css/style.css b/css/style.css index 439d4e66..0df6f316 100644 --- a/css/style.css +++ b/css/style.css @@ -189,7 +189,7 @@ iframe { align-items: flex-start; gap: 20px; /* flex-wrap: wrap; */ - margin: 5% auto; + margin: 32px auto; } .rows > div { display: flex; diff --git a/daostar-website/.gitignore b/daostar-website/.gitignore new file mode 100644 index 00000000..4d29575d --- /dev/null +++ b/daostar-website/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/daostar-website/netlify.toml b/daostar-website/netlify.toml new file mode 100644 index 00000000..7b643fa8 --- /dev/null +++ b/daostar-website/netlify.toml @@ -0,0 +1,3 @@ +[context.production.environment] + REACT_APP_API_URL = "https://api.daostar.org" + CI = "false" \ No newline at end of file diff --git a/daostar-website/package-lock.json b/daostar-website/package-lock.json new file mode 100644 index 00000000..e93003de --- /dev/null +++ b/daostar-website/package-lock.json @@ -0,0 +1,20825 @@ +{ + "name": "daostar-website", + "version": "0.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@adobe/css-tools": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz", + "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==" + }, + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "requires": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + } + }, + "@apollo/client": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.1.tgz", + "integrity": "sha512-xu5M/l7p9gT9Fx7nF3AQivp0XukjB7TM7tOd5wifIpI8RskYveL4I+rpTijzWrnqCPZabkbzJKH7WEAKdctt9w==", + "requires": { + "@graphql-typed-document-node/core": "^3.1.1", + "@wry/context": "^0.7.0", + "@wry/equality": "^0.5.0", + "@wry/trie": "^0.3.0", + "graphql-tag": "^2.12.6", + "hoist-non-react-statics": "^3.3.2", + "optimism": "^0.16.1", + "prop-types": "^15.7.2", + "response-iterator": "^0.2.6", + "symbol-observable": "^4.0.0", + "ts-invariant": "^0.10.3", + "tslib": "^2.3.0", + "zen-observable-ts": "^1.2.5" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + } + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", + "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==" + }, + "@babel/core": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.6", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "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==" + } + } + }, + "@babel/eslint-parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", + "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "requires": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/generator": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz", + "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==", + "requires": { + "@babel/types": "^7.19.4", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", + "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", + "requires": { + "@babel/compat-data": "^7.19.3", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "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==" + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", + "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.2.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "requires": { + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-replace-supers": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", + "requires": { + "@babel/types": "^7.19.4" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", + "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "requires": { + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" + }, + "@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "requires": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "dependencies": { + "@babel/generator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", + "requires": { + "@babel/types": "^7.20.5", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + } + }, + "@babel/parser": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==" + }, + "@babel/traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helpers": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", + "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", + "requires": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.4", + "@babel/types": "^7.19.4" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", + "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.19.6.tgz", + "integrity": "sha512-PKWforYpkVkogpOW0RaPuh7eQ7AoFgBJP+d87tQCRY2LVbvyGtfRM7RtrhCBsNgZb+2EY28SeWB6p2xe1Z5oAw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/plugin-syntax-decorators": "^7.19.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", + "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", + "requires": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.1" + }, + "dependencies": { + "@babel/compat-data": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==" + }, + "@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "requires": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "dependencies": { + "@babel/helper-create-class-features-plugin": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", + "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + } + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-async-generators": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz", + "integrity": "sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz", + "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "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==", + "requires": { + "@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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", + "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz", + "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + } + } + }, + "@babel/plugin-transform-classes": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", + "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/compat-data": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==" + }, + "@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "requires": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", + "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + } + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz", + "integrity": "sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-flow": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "requires": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "requires": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "requires": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.19.1" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + } + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", + "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + } + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.18.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.12.tgz", + "integrity": "sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.19.0" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "requires": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + } + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "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==" + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.3.tgz", + "integrity": "sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-typescript": "^7.18.6" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "requires": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/compat-data": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==" + }, + "@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "requires": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + }, + "@babel/types": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "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.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + } + }, + "@babel/preset-typescript": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", + "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-typescript": "^7.18.6" + } + }, + "@babel/runtime": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", + "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.6.tgz", + "integrity": "sha512-oWNn1ZlGde7b4i/3tnixpH9qI0bOAACiUs+KEES4UUCnsPjVWFlWdLV/iwJuPC2qp3EowbAqsm+0XqNwnwYhxA==", + "requires": { + "core-js-pure": "^3.25.1", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz", + "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.19.6", + "@babel/types": "^7.19.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", + "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "@blueprintjs/colors": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@blueprintjs/colors/-/colors-4.1.8.tgz", + "integrity": "sha512-J3N3PIBlmZS7+br+8KkR0yilGp74Fwp8SXfs0Bf4OGgLcqrBixqCqAs+YnpS2iOV0m2D22cZc8YsnPVdx0kH7w==" + }, + "@blueprintjs/core": { + "version": "4.11.5", + "resolved": "https://registry.npmjs.org/@blueprintjs/core/-/core-4.11.5.tgz", + "integrity": "sha512-DktmpkmTA6FA23YpEHnA/CdnjrSgin7yJ8E2rN3yJ7BdnW4qRnsdY8wx9p1i9WrKe6kA3HhWUI1vrFcEWEukiA==", + "requires": { + "@blueprintjs/colors": "^4.1.8", + "@blueprintjs/icons": "^4.9.0", + "@juggle/resize-observer": "^3.4.0", + "@types/dom4": "^2.0.2", + "classnames": "^2.3.1", + "dom4": "^2.1.5", + "normalize.css": "^8.0.1", + "popper.js": "^1.16.1", + "react-popper": "^1.3.7", + "react-transition-group": "^4.4.5", + "tslib": "~2.3.1" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@blueprintjs/icons": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@blueprintjs/icons/-/icons-4.9.0.tgz", + "integrity": "sha512-3EsWXfg2g+/R47WYWuXeGsCpxBhId0gnYvVxlrkcFjO76kvYXXobM9zj19T9nTvUhTEjksHUPxM61y4ltOIl3Q==", + "requires": { + "change-case": "^4.1.2", + "classnames": "^2.3.1", + "tslib": "~2.3.1" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@coinbase/wallet-sdk": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-3.5.3.tgz", + "integrity": "sha512-kaGMk9KyiSLPm1+BvCQSc99ku9gn0j+M1+2Beii+4gx/lRVhutlzmn6l+5zTB/n3xri25iTr+SxjMZLlMfW8Hg==", + "requires": { + "@metamask/safe-event-emitter": "2.0.0", + "@solana/web3.js": "1.52.0", + "bind-decorator": "^1.0.11", + "bn.js": "^5.1.1", + "buffer": "^6.0.3", + "clsx": "^1.1.0", + "eth-block-tracker": "4.4.3", + "eth-json-rpc-filters": "4.2.2", + "eth-rpc-errors": "4.0.2", + "json-rpc-engine": "6.1.0", + "keccak": "^3.0.1", + "preact": "^10.5.9", + "qs": "^6.10.3", + "rxjs": "^6.6.3", + "sha.js": "^2.4.11", + "stream-browserify": "^3.0.0", + "util": "^0.12.4" + } + }, + "@csstools/normalize.css": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", + "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" + }, + "@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "requires": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + } + }, + "@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "requires": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + } + }, + "@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==" + }, + "@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==" + }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "optional": true, + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true + }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "@ethereumjs/common": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", + "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "requires": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.1" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "requires": { + "@types/node": "*" + } + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + } + } + }, + "@ethereumjs/tx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", + "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "requires": { + "@ethereumjs/common": "^2.5.0", + "ethereumjs-util": "^7.1.2" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "requires": { + "@types/node": "*" + } + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + } + } + }, + "@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "requires": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + }, + "dependencies": { + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + } + } + }, + "@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" + }, + "@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + }, + "dependencies": { + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + } + } + }, + "@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@graphql-typed-document-node/core": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", + "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==" + }, + "@humanwhocodes/config-array": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz", + "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==", + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "@hypnosphi/create-react-context": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz", + "integrity": "sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A==", + "requires": { + "gud": "^1.0.0", + "warning": "^4.0.3" + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "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==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.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==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" + }, + "@jest/console": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz", + "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "slash": "^3.0.0" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", + "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==", + "requires": { + "@jest/console": "^29.3.1", + "@jest/reporters": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.2.0", + "jest-config": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-resolve-dependencies": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "jest-watcher": "^29.3.1", + "micromatch": "^4.0.4", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==" + }, + "jest-haste-map": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", + "requires": { + "@jest/types": "^29.3.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-regex-util": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==" + }, + "jest-resolve": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", + "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + } + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", + "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", + "requires": { + "@jest/types": "^29.3.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.2.0", + "leven": "^3.1.0", + "pretty-format": "^29.3.1" + } + }, + "jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "requires": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/environment": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", + "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", + "requires": { + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-mock": "^29.3.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/expect": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", + "requires": { + "expect": "^29.3.1", + "jest-snapshot": "^29.3.1" + } + }, + "@jest/expect-utils": { + "version": "29.2.2", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.2.2.tgz", + "integrity": "sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg==", + "requires": { + "jest-get-type": "^29.2.0" + }, + "dependencies": { + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==" + } + } + }, + "@jest/fake-timers": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", + "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", + "requires": { + "@jest/types": "^29.3.1", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/globals": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", + "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", + "requires": { + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/types": "^29.3.1", + "jest-mock": "^29.3.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/reporters": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz", + "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==", + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "requires": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/source-map": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.2.0.tgz", + "integrity": "sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==", + "requires": { + "@jridgewell/trace-mapping": "^0.3.15", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz", + "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==", + "requires": { + "@jest/console": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/test-sequencer": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz", + "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==", + "requires": { + "@jest/test-result": "^29.3.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "slash": "^3.0.0" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-haste-map": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", + "requires": { + "@jest/types": "^29.3.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-regex-util": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==" + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "requires": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/transform": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", + "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-haste-map": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", + "requires": { + "@jest/types": "^29.3.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-regex-util": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==" + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "requires": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@json-rpc-tools/provider": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@json-rpc-tools/provider/-/provider-1.7.6.tgz", + "integrity": "sha512-z7D3xvJ33UfCGv77n40lbzOYjZKVM3k2+5cV7xS8G6SCvKTzMkhkUYuD/qzQUNT4cG/lv0e9mRToweEEVLVVmA==", + "requires": { + "@json-rpc-tools/utils": "^1.7.6", + "axios": "^0.21.0", + "safe-json-utils": "^1.1.1", + "ws": "^7.4.0" + }, + "dependencies": { + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + } + } + }, + "@json-rpc-tools/types": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@json-rpc-tools/types/-/types-1.7.6.tgz", + "integrity": "sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ==", + "requires": { + "keyvaluestorage-interface": "^1.0.0" + } + }, + "@json-rpc-tools/utils": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@json-rpc-tools/utils/-/utils-1.7.6.tgz", + "integrity": "sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw==", + "requires": { + "@json-rpc-tools/types": "^1.7.6", + "@pedrouid/environment": "^1.0.1" + } + }, + "@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "@lit/reactive-element": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.4.1.tgz", + "integrity": "sha512-qDv4851VFSaBWzpS02cXHclo40jsbAjRXnebNXpm0uVg32kCneZPo9RYVQtrTNICtZ+1wAYHu1ZtxWSWMbKrBw==" + }, + "@metamask/safe-event-emitter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", + "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==" + }, + "@motionone/animation": { + "version": "10.14.0", + "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.14.0.tgz", + "integrity": "sha512-h+1sdyBP8vbxEBW5gPFDnj+m2DCqdlAuf2g6Iafb1lcMnqjsRXWlPw1AXgvUMXmreyhqmPbJqoNfIKdytampRQ==", + "requires": { + "@motionone/easing": "^10.14.0", + "@motionone/types": "^10.14.0", + "@motionone/utils": "^10.14.0", + "tslib": "^2.3.1" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@motionone/dom": { + "version": "10.14.2", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.14.2.tgz", + "integrity": "sha512-GbGtvTSelXfT4TeQUQ3Y31PllAu0Uvghqr68FSPAJsh1hjbuYPaiPJWpP6+t/t50cHtvUbl4m2SgnGKJ0NCgWA==", + "requires": { + "@motionone/animation": "^10.14.0", + "@motionone/generators": "^10.14.0", + "@motionone/types": "^10.14.0", + "@motionone/utils": "^10.14.0", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@motionone/easing": { + "version": "10.14.0", + "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.14.0.tgz", + "integrity": "sha512-2vUBdH9uWTlRbuErhcsMmt1jvMTTqvGmn9fHq8FleFDXBlHFs5jZzHJT9iw+4kR1h6a4SZQuCf72b9ji92qNYA==", + "requires": { + "@motionone/utils": "^10.14.0", + "tslib": "^2.3.1" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@motionone/generators": { + "version": "10.14.0", + "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.14.0.tgz", + "integrity": "sha512-6kRHezoFfIjFN7pPpaxmkdZXD36tQNcyJe3nwVqwJ+ZfC0e3rFmszR8kp9DEVFs9QL/akWjuGPSLBI1tvz+Vjg==", + "requires": { + "@motionone/types": "^10.14.0", + "@motionone/utils": "^10.14.0", + "tslib": "^2.3.1" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@motionone/svelte": { + "version": "10.14.2", + "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.14.2.tgz", + "integrity": "sha512-WKgER0eH7b8q0/ODElHIbzMM3uIINdcdCw87jf7xqs4daidsy6e1ckh2XJF2Z8zyWyUEtO4VHvGumRX7EjrxFA==", + "requires": { + "@motionone/dom": "^10.14.2", + "tslib": "^2.3.1" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@motionone/types": { + "version": "10.14.0", + "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.14.0.tgz", + "integrity": "sha512-3bNWyYBHtVd27KncnJLhksMFQ5o2MSdk1cA/IZqsHtA9DnRM1SYgN01CTcJ8Iw8pCXF5Ocp34tyAjY7WRpOJJQ==" + }, + "@motionone/utils": { + "version": "10.14.0", + "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.14.0.tgz", + "integrity": "sha512-sLWBLPzRqkxmOTRzSaD3LFQXCPHvDzyHJ1a3VP9PRzBxyVd2pv51/gMOsdAcxQ9n+MIeGJnxzXBYplUHKj4jkw==", + "requires": { + "@motionone/types": "^10.14.0", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@motionone/vue": { + "version": "10.14.2", + "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.14.2.tgz", + "integrity": "sha512-nxC/j4WhOsXxVDUdWHJDUIvHSb97eu0Kn1HNzGp08Fm9WTFkKy0HtJtTqTdkGVks2jB/XBh/FO3wU2OzyDFZNw==", + "requires": { + "@motionone/dom": "^10.14.2", + "tslib": "^2.3.1" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "requires": { + "eslint-scope": "5.1.1" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@pedrouid/environment": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@pedrouid/environment/-/environment-1.0.1.tgz", + "integrity": "sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==" + }, + "@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.8.tgz", + "integrity": "sha512-wxXRwf+IQ6zvHSJZ+5T2RQNEsq+kx4jKRXfFvdt3nBIUzJUAvXEFsUeoaohDe/Kr84MTjGwcuIUPNcstNJORsA==", + "requires": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + } + }, + "@react-three/fiber": { + "version": "8.9.2", + "resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-8.9.2.tgz", + "integrity": "sha512-uhDQvxUZ0M2SU/gAtY2tcEaa+Pp9JSDmSzm7Dw6q9/KMReqcImNLjPzkjVsWV5DKP7fELC6c4Bgs9sVIahM6LQ==", + "requires": { + "@babel/runtime": "^7.17.8", + "@types/react-reconciler": "^0.26.7", + "its-fine": "^1.0.6", + "react-reconciler": "^0.27.0", + "react-use-measure": "^2.1.1", + "scheduler": "^0.21.0", + "suspend-react": "^0.0.8", + "zustand": "^3.7.1" + }, + "dependencies": { + "scheduler": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz", + "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "zustand": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz", + "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==" + } + } + }, + "@remix-run/router": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.2.tgz", + "integrity": "sha512-GRSOFhJzjGN+d4sKHTMSvNeUPoZiDHWmRnXfzaxrqe7dE/Nzlc8BiMSJdLDESZlndM7jIUrZ/F4yWqVYlI0rwQ==" + }, + "@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + } + }, + "@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + } + }, + "@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + } + } + }, + "@rushstack/eslint-patch": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", + "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==" + }, + "@sinclair/typebox": { + "version": "0.24.50", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.50.tgz", + "integrity": "sha512-k8ETQOOQDg5FtK7y9KJWpsGLik+QlPmIi8zzl/dGUgshV2QitprkFlCR/AemjWOTyKn9UwSSGRTzLVotvgCjYQ==" + }, + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" + }, + "@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@solana/buffer-layout": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz", + "integrity": "sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==", + "requires": { + "buffer": "~6.0.3" + } + }, + "@solana/web3.js": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.52.0.tgz", + "integrity": "sha512-oG1+BX4nVYZ0OBzmk6DRrY8oBYMsbXVQEf9N9JOfKm+wXSmjxVEEo8v3IPV8mKwR0JvUWuE8lOn3IUDiMlRLgg==", + "requires": { + "@babel/runtime": "^7.12.5", + "@ethersproject/sha2": "^5.5.0", + "@solana/buffer-layout": "^4.0.0", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.0.0", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.1", + "fast-stable-stringify": "^1.0.0", + "jayson": "^3.4.4", + "js-sha3": "^0.8.0", + "node-fetch": "2", + "react-native-url-polyfill": "^1.3.0", + "rpc-websockets": "^7.5.0", + "secp256k1": "^4.0.2", + "superstruct": "^0.14.2", + "tweetnacl": "^1.0.3" + }, + "dependencies": { + "buffer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz", + "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, + "@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "requires": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==" + }, + "@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==" + }, + "@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==" + }, + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==" + }, + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==" + }, + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==" + }, + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==" + }, + "@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==" + }, + "@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "requires": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + } + }, + "@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "requires": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + } + }, + "@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "requires": { + "@babel/types": "^7.12.6" + } + }, + "@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "requires": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + } + }, + "@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "requires": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + } + }, + "@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "requires": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + } + }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "requires": { + "defer-to-connect": "^2.0.1" + } + }, + "@tanstack/query-core": { + "version": "4.14.5", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.14.5.tgz", + "integrity": "sha512-Su1AyrPb6xnm7wXTvpN5tt+B7LViYSh9k04vvuc6+eMVH0HkE9ktZTXibRrTvV83BI1KP5MG7v/k90ne/4zQzw==" + }, + "@tanstack/query-persist-client-core": { + "version": "4.14.5", + "resolved": "https://registry.npmjs.org/@tanstack/query-persist-client-core/-/query-persist-client-core-4.14.5.tgz", + "integrity": "sha512-L3PKTR4XEyEwPSAmtWq5ZGd5O5MGo5/BTLidhfW/nr9+updlsHTQfDAHMmE1aaWehU+PYbFH8ws1qBpJiJ/S8g==" + }, + "@tanstack/query-sync-storage-persister": { + "version": "4.14.5", + "resolved": "https://registry.npmjs.org/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.14.5.tgz", + "integrity": "sha512-+ZqGzAUQOTqPASCqUgzbRU9TszCK50wojwV8Hy4lfBms6SXUSN8suioOi8ZuADkHL810LBMTbhM++nbvEA5Pyw==", + "requires": { + "@tanstack/query-persist-client-core": "4.14.5" + } + }, + "@tanstack/react-query": { + "version": "4.14.6", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.14.6.tgz", + "integrity": "sha512-ubx49AeV0SXfbt4mZmb0JlJa1PRXynGm+uorJhM50HVDppt/SjcOUNK5kptEWBRzTjKVS9KhpoMkKKJ/ZzuBFQ==", + "requires": { + "@tanstack/query-core": "4.14.5", + "use-sync-external-store": "^1.2.0" + } + }, + "@tanstack/react-query-persist-client": { + "version": "4.14.6", + "resolved": "https://registry.npmjs.org/@tanstack/react-query-persist-client/-/react-query-persist-client-4.14.6.tgz", + "integrity": "sha512-jibqEQXStTiDpWZ09Nvcn1bnAkUDj5kOhm3Gv29XyHt9tMD23nmkVAf5JyVYUb0LELwIMa0Y/wB1KYfoWGQe6A==", + "requires": { + "@tanstack/query-persist-client-core": "4.14.5" + } + }, + "@testing-library/dom": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz", + "integrity": "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "requires": { + "deep-equal": "^2.0.5" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/jest-dom": { + "version": "5.16.5", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz", + "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==", + "requires": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "aria-query": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.1.tgz", + "integrity": "sha512-4cPQjOYM2mqq7mZG8CSxkUvL2Yv/x29VhGq5LKehTsxRnoVQps1YGt9NyjcNQsznEsD4rr8a6zGxqeNTqJWjpA==", + "requires": { + "deep-equal": "^2.0.5" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/react": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + } + }, + "@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "requires": { + "@babel/runtime": "^7.12.5" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" + }, + "@types/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "requires": { + "@types/node": "*" + } + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "requires": { + "@types/node": "*" + } + }, + "@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/dom4": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/dom4/-/dom4-2.0.2.tgz", + "integrity": "sha512-Rt4IC1T7xkCWa0OG1oSsPa0iqnxlDeQqKXZAHrQGLb7wFGncWm85MaxKUjAGejOrUynOgWlFi4c6S6IyJwoK4g==" + }, + "@types/eslint": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.7.tgz", + "integrity": "sha512-ehM7cCt2RSFs42mb+lcmhFT9ouIlV92PuaeRGn8N8c98oMjG4Z5pJHA9b1QiCcuqnbPSHcyfiD3mlhqMaHsQIw==", + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" + }, + "@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "requires": { + "@types/node": "*" + } + }, + "@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "29.2.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.2.tgz", + "integrity": "sha512-og1wAmdxKoS71K2ZwSVqWPX6OVn3ihZ6ZT2qvZvZQm90lJVDyXIjYcu4Khx2CNIeaFv12rOU/YObOsI3VOkzog==", + "requires": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz", + "integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "diff-sequences": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.2.0.tgz", + "integrity": "sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw==" + }, + "expect": { + "version": "29.2.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.2.2.tgz", + "integrity": "sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw==", + "requires": { + "@jest/expect-utils": "^29.2.2", + "jest-get-type": "^29.2.0", + "jest-matcher-utils": "^29.2.2", + "jest-message-util": "^29.2.1", + "jest-util": "^29.2.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==" + }, + "jest-diff": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.2.1.tgz", + "integrity": "sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.2.0", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.2.1" + } + }, + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==" + }, + "jest-matcher-utils": { + "version": "29.2.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz", + "integrity": "sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.2.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.2.1" + } + }, + "jest-message-util": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.2.1.tgz", + "integrity": "sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.2.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.2.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-util": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.2.1.tgz", + "integrity": "sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==", + "requires": { + "@jest/types": "^29.2.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "pretty-format": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz", + "integrity": "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==", + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "requires": { + "@types/node": "*" + } + }, + "@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" + }, + "@types/node": { + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==" + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "@types/react": { + "version": "18.0.25", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.25.tgz", + "integrity": "sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.0.8", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.8.tgz", + "integrity": "sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw==", + "requires": { + "@types/react": "*" + } + }, + "@types/react-reconciler": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.26.7.tgz", + "integrity": "sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ==", + "requires": { + "@types/react": "*" + } + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "requires": { + "@types/node": "*" + } + }, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "requires": { + "@types/node": "*" + } + }, + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "requires": { + "@types/node": "*" + } + }, + "@types/semver": { + "version": "7.3.12", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz", + "integrity": "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==" + }, + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "requires": { + "@types/node": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + }, + "@types/testing-library__jest-dom": { + "version": "5.14.5", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", + "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", + "requires": { + "@types/jest": "*" + } + }, + "@types/trusted-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", + "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "requires": { + "@types/node": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.40.1.tgz", + "integrity": "sha512-FsWboKkWdytGiXT5O1/R9j37YgcjO8MKHSUmWnIEjVaz0krHkplPnYi7mwdb+5+cs0toFNQb0HIrN7zONdIEWg==", + "requires": { + "@typescript-eslint/scope-manager": "5.40.1", + "@typescript-eslint/type-utils": "5.40.1", + "@typescript-eslint/utils": "5.40.1", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.40.1.tgz", + "integrity": "sha512-lynjgnQuoCgxtYgYWjoQqijk0kYQNiztnVhoqha3N0kMYFVPURidzCq2vn9XvUUu2XxP130ZRKVDKyeGa2bhbw==", + "requires": { + "@typescript-eslint/utils": "5.40.1" + } + }, + "@typescript-eslint/parser": { + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.40.1.tgz", + "integrity": "sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg==", + "requires": { + "@typescript-eslint/scope-manager": "5.40.1", + "@typescript-eslint/types": "5.40.1", + "@typescript-eslint/typescript-estree": "5.40.1", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.40.1.tgz", + "integrity": "sha512-jkn4xsJiUQucI16OLCXrLRXDZ3afKhOIqXs4R3O+M00hdQLKR58WuyXPZZjhKLFCEP2g+TXdBRtLQ33UfAdRUg==", + "requires": { + "@typescript-eslint/types": "5.40.1", + "@typescript-eslint/visitor-keys": "5.40.1" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.40.1.tgz", + "integrity": "sha512-DLAs+AHQOe6n5LRraXiv27IYPhleF0ldEmx6yBqBgBLaNRKTkffhV1RPsjoJBhVup2zHxfaRtan8/YRBgYhU9Q==", + "requires": { + "@typescript-eslint/typescript-estree": "5.40.1", + "@typescript-eslint/utils": "5.40.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.40.1.tgz", + "integrity": "sha512-Icg9kiuVJSwdzSQvtdGspOlWNjVDnF3qVIKXdJ103o36yRprdl3Ge5cABQx+csx960nuMF21v8qvO31v9t3OHw==" + }, + "@typescript-eslint/typescript-estree": { + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.1.tgz", + "integrity": "sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA==", + "requires": { + "@typescript-eslint/types": "5.40.1", + "@typescript-eslint/visitor-keys": "5.40.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.40.1.tgz", + "integrity": "sha512-a2TAVScoX9fjryNrW6BZRnreDUszxqm9eQ9Esv8n5nXApMW0zeANUYlwh/DED04SC/ifuBvXgZpIK5xeJHQ3aw==", + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.40.1", + "@typescript-eslint/types": "5.40.1", + "@typescript-eslint/typescript-estree": "5.40.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.40.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.1.tgz", + "integrity": "sha512-A2DGmeZ+FMja0geX5rww+DpvILpwo1OsiQs0M+joPWJYsiEFBLsH0y1oFymPNul6Z5okSmHpP4ivkc2N0Cgfkw==", + "requires": { + "@typescript-eslint/types": "5.40.1", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@wagmi/core": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-0.6.6.tgz", + "integrity": "sha512-1gEjDFmlJ6R2uF6BX04Q768OdpoW/pNGGUTaJU+W7YP/3uOf4TwsXgqMEN/0uyZqptL+RQsworeVh11JXCbX1g==", + "requires": { + "abitype": "^0.1.7", + "eventemitter3": "^4.0.7", + "zustand": "^4.1.1" + } + }, + "@walletconnect/browser-utils": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz", + "integrity": "sha512-Wcqqx+wjxIo9fv6eBUFHPsW1y/bGWWRboni5dfD8PtOmrihrEpOCmvRJe4rfl7xgJW8Ea9UqKEaq0bIRLHlK4A==", + "requires": { + "@walletconnect/safe-json": "1.0.0", + "@walletconnect/types": "^1.8.0", + "@walletconnect/window-getters": "1.0.0", + "@walletconnect/window-metadata": "1.0.0", + "detect-browser": "5.2.0" + } + }, + "@walletconnect/client": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/client/-/client-1.8.0.tgz", + "integrity": "sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ==", + "requires": { + "@walletconnect/core": "^1.8.0", + "@walletconnect/iso-crypto": "^1.8.0", + "@walletconnect/types": "^1.8.0", + "@walletconnect/utils": "^1.8.0" + } + }, + "@walletconnect/core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-1.8.0.tgz", + "integrity": "sha512-aFTHvEEbXcZ8XdWBw6rpQDte41Rxwnuk3SgTD8/iKGSRTni50gI9S3YEzMj05jozSiOBxQci4pJDMVhIUMtarw==", + "requires": { + "@walletconnect/socket-transport": "^1.8.0", + "@walletconnect/types": "^1.8.0", + "@walletconnect/utils": "^1.8.0" + } + }, + "@walletconnect/crypto": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/crypto/-/crypto-1.0.2.tgz", + "integrity": "sha512-+OlNtwieUqVcOpFTvLBvH+9J9pntEqH5evpINHfVxff1XIgwV55PpbdvkHu6r9Ib4WQDOFiD8OeeXs1vHw7xKQ==", + "requires": { + "@walletconnect/encoding": "^1.0.1", + "@walletconnect/environment": "^1.0.0", + "@walletconnect/randombytes": "^1.0.2", + "aes-js": "^3.1.2", + "hash.js": "^1.1.7" + } + }, + "@walletconnect/encoding": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/encoding/-/encoding-1.0.1.tgz", + "integrity": "sha512-8opL2rs6N6E3tJfsqwS82aZQDL3gmupWUgmvuZ3CGU7z/InZs3R9jkzH8wmYtpbq0sFK3WkJkQRZFFk4BkrmFA==", + "requires": { + "is-typedarray": "1.0.0", + "typedarray-to-buffer": "3.1.5" + } + }, + "@walletconnect/environment": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.0.tgz", + "integrity": "sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ==" + }, + "@walletconnect/ethereum-provider": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-1.8.0.tgz", + "integrity": "sha512-Nq9m+oo5P0F+njsROHw9KMWdoc/8iGHYzQdkjJN/1C7DtsqFRg5k5a3hd9rzCLpbPsOC1q8Z5lRs6JQgDvPm6Q==", + "requires": { + "@walletconnect/client": "^1.8.0", + "@walletconnect/jsonrpc-http-connection": "^1.0.2", + "@walletconnect/jsonrpc-provider": "^1.0.5", + "@walletconnect/signer-connection": "^1.8.0", + "@walletconnect/types": "^1.8.0", + "@walletconnect/utils": "^1.8.0", + "eip1193-provider": "1.0.1", + "eventemitter3": "4.0.7" + } + }, + "@walletconnect/iso-crypto": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz", + "integrity": "sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ==", + "requires": { + "@walletconnect/crypto": "^1.0.2", + "@walletconnect/types": "^1.8.0", + "@walletconnect/utils": "^1.8.0" + } + }, + "@walletconnect/jsonrpc-http-connection": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.3.tgz", + "integrity": "sha512-npPvDG2JxyxoqOphDiyjp5pPeASRBrlfQS39wHESPHlFIjBuvNt9lV9teh53MK9Ncbyxh4y2qEKMfPgcUulTRg==", + "requires": { + "@walletconnect/jsonrpc-utils": "^1.0.3", + "@walletconnect/safe-json": "^1.0.0", + "cross-fetch": "^3.1.4" + } + }, + "@walletconnect/jsonrpc-provider": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.5.tgz", + "integrity": "sha512-v61u4ZIV8+p9uIHS2Kl2YRj/2idrQiHcrbrJXw3McQkEJtj9mkCofr1Hu/n419wSRM5uiNK8Z4WRS9zGTTAhWQ==", + "requires": { + "@walletconnect/jsonrpc-utils": "^1.0.3", + "@walletconnect/safe-json": "^1.0.0" + } + }, + "@walletconnect/jsonrpc-types": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.1.tgz", + "integrity": "sha512-+6coTtOuChCqM+AoYyi4Q83p9l/laI6NvuM2/AHaZFuf0gT0NjW7IX2+86qGyizn7Ptq4AYZmfxurAxTnhefuw==", + "requires": { + "keyvaluestorage-interface": "^1.0.0" + } + }, + "@walletconnect/jsonrpc-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.3.tgz", + "integrity": "sha512-3yb49bPk16MNLk6uIIHPSHQCpD6UAo1OMOx1rM8cW/MPEAYAzrSW5hkhG7NEUwX9SokRIgnZK3QuQkiyNzBMhQ==", + "requires": { + "@walletconnect/environment": "^1.0.0", + "@walletconnect/jsonrpc-types": "^1.0.1" + } + }, + "@walletconnect/mobile-registry": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz", + "integrity": "sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw==" + }, + "@walletconnect/qrcode-modal": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.8.0.tgz", + "integrity": "sha512-BueaFefaAi8mawE45eUtztg3ZFbsAH4DDXh1UNwdUlsvFMjqcYzLUG0xZvDd6z2eOpbgDg2N3bl6gF0KONj1dg==", + "requires": { + "@walletconnect/browser-utils": "^1.8.0", + "@walletconnect/mobile-registry": "^1.4.0", + "@walletconnect/types": "^1.8.0", + "copy-to-clipboard": "^3.3.1", + "preact": "10.4.1", + "qrcode": "1.4.4" + }, + "dependencies": { + "preact": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.4.1.tgz", + "integrity": "sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q==" + } + } + }, + "@walletconnect/randombytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/randombytes/-/randombytes-1.0.2.tgz", + "integrity": "sha512-ivgOtAyqQnN0rLQmOFPemsgYGysd/ooLfaDA/ACQ3cyqlca56t3rZc7pXfqJOIETx/wSyoF5XbwL+BqYodw27A==", + "requires": { + "@walletconnect/encoding": "^1.0.1", + "@walletconnect/environment": "^1.0.0", + "randombytes": "^2.1.0" + } + }, + "@walletconnect/safe-json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.0.tgz", + "integrity": "sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==" + }, + "@walletconnect/signer-connection": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/signer-connection/-/signer-connection-1.8.0.tgz", + "integrity": "sha512-+YAaTAP52MWZJ2wWnqKClKCPlPHBo6reURFe0cWidLADh9mi/kPWGALZ5AENK22zpem1bbKV466rF5Rzvu0ehA==", + "requires": { + "@walletconnect/client": "^1.8.0", + "@walletconnect/jsonrpc-types": "^1.0.1", + "@walletconnect/jsonrpc-utils": "^1.0.3", + "@walletconnect/qrcode-modal": "^1.8.0", + "@walletconnect/types": "^1.8.0", + "eventemitter3": "4.0.7" + } + }, + "@walletconnect/socket-transport": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/socket-transport/-/socket-transport-1.8.0.tgz", + "integrity": "sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ==", + "requires": { + "@walletconnect/types": "^1.8.0", + "@walletconnect/utils": "^1.8.0", + "ws": "7.5.3" + }, + "dependencies": { + "ws": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==" + } + } + }, + "@walletconnect/types": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-1.8.0.tgz", + "integrity": "sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg==" + }, + "@walletconnect/utils": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-1.8.0.tgz", + "integrity": "sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA==", + "requires": { + "@walletconnect/browser-utils": "^1.8.0", + "@walletconnect/encoding": "^1.0.1", + "@walletconnect/jsonrpc-utils": "^1.0.3", + "@walletconnect/types": "^1.8.0", + "bn.js": "4.11.8", + "js-sha3": "0.8.0", + "query-string": "6.13.5" + }, + "dependencies": { + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + } + } + }, + "@walletconnect/window-getters": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.0.tgz", + "integrity": "sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA==" + }, + "@walletconnect/window-metadata": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz", + "integrity": "sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA==", + "requires": { + "@walletconnect/window-getters": "^1.0.0" + } + }, + "@web3-react/abstract-connector": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@web3-react/abstract-connector/-/abstract-connector-6.0.7.tgz", + "integrity": "sha512-RhQasA4Ox8CxUC0OENc1AJJm8UTybu/oOCM61Zjg6y0iF7Z0sqv1Ai1VdhC33hrQpA8qSBgoXN9PaP8jKmtdqg==", + "requires": { + "@web3-react/types": "^6.0.7" + } + }, + "@web3-react/core": { + "version": "6.1.9", + "resolved": "https://registry.npmjs.org/@web3-react/core/-/core-6.1.9.tgz", + "integrity": "sha512-P877DslsbAkWIlMANpWiK7pCvNwlz0kJC0EGckuVh0wlA23J4UnFxq6xyOaxkxaDCu14rA/tAO0NbwjcXTQgSA==", + "requires": { + "@ethersproject/keccak256": "^5.0.0-beta.130", + "@web3-react/abstract-connector": "^6.0.7", + "@web3-react/types": "^6.0.7", + "tiny-invariant": "^1.0.6", + "tiny-warning": "^1.0.3" + } + }, + "@web3-react/injected-connector": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@web3-react/injected-connector/-/injected-connector-6.0.7.tgz", + "integrity": "sha512-Y7aJSz6pg+MWKtvdyuqyy6LWuH+4Tqtph1LWfiyVms9II9ar/9B/de4R8wh4wjg91wmHkU+D75yP09E/Soh2RA==", + "requires": { + "@web3-react/abstract-connector": "^6.0.7", + "@web3-react/types": "^6.0.7", + "tiny-warning": "^1.0.3" + } + }, + "@web3-react/types": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@web3-react/types/-/types-6.0.7.tgz", + "integrity": "sha512-ofGmfDhxmNT1/P/MgVa8IKSkCStFiyvXe+U5tyZurKdrtTDFU+wJ/LxClPDtFerWpczNFPUSrKcuhfPX1sI6+A==" + }, + "@web3-react/walletconnect-connector": { + "version": "6.2.13", + "resolved": "https://registry.npmjs.org/@web3-react/walletconnect-connector/-/walletconnect-connector-6.2.13.tgz", + "integrity": "sha512-rTsYLv2UpQZ92Yv5kyIwzrG+2aQkzE8ki2ElotJ6GmSl3yF9WSaGNfKpE8XI5+aPvbAk4mMn8lIy+os3a9gJgw==", + "requires": { + "@walletconnect/ethereum-provider": "^1.7.1", + "@walletconnect/types": "^1.7.1", + "@web3-react/abstract-connector": "^6.0.7", + "@web3-react/types": "^6.0.7", + "tiny-invariant": "^1.0.6" + } + }, + "@web3-react/walletlink-connector": { + "version": "6.2.14", + "resolved": "https://registry.npmjs.org/@web3-react/walletlink-connector/-/walletlink-connector-6.2.14.tgz", + "integrity": "sha512-F2v1Uu7Nhptt7AaUEJpz69+NVUJxyUfDEA5B/Vr1HkqAL1aJM5gv6B1m4M/VdXKLpmjZ9Kg6X0+VUEyAx1eQ4w==", + "requires": { + "@coinbase/wallet-sdk": "^3.0.4", + "@web3-react/abstract-connector": "^6.0.7", + "@web3-react/types": "^6.0.7" + } + }, + "@web3modal/core": { + "version": "2.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@web3modal/core/-/core-2.0.0-beta.1.tgz", + "integrity": "sha512-3YDeOj/MU6ee7on7je9v8kbv/7MIwdcpaGfRiO5VKXuD7GiAAyeq/VpIQsuRd+vmQZvqQQTUnWy5ZWK1Y62QHA==", + "requires": { + "buffer": "6.0.3", + "valtio": "1.7.4" + } + }, + "@web3modal/ethereum": { + "version": "2.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@web3modal/ethereum/-/ethereum-2.0.0-beta.1.tgz", + "integrity": "sha512-eE36mTtHRhp21dAJX34Gq5/77xRp202ojtiDeMnDcsVuYPdjbfP0ws74yKQTcrAT5F5KaCZqZUa4IT6MDfdd8w==", + "requires": { + "@coinbase/wallet-sdk": "3.5.3", + "@wagmi/core": "0.6.6", + "@walletconnect/ethereum-provider": "1.8.0" + } + }, + "@web3modal/react": { + "version": "2.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@web3modal/react/-/react-2.0.0-beta.1.tgz", + "integrity": "sha512-bKvOw8B6aO/5Q5m2KCuvYlwR8nxGJVyWeFzSWZoyhE/I9DIoHnxZbsxdOCusNSMZRXvjWUdqOlXWocEl27CYKQ==", + "requires": { + "@web3modal/core": "2.0.0-beta.1", + "@web3modal/ui": "2.0.0-beta.1" + } + }, + "@web3modal/ui": { + "version": "2.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@web3modal/ui/-/ui-2.0.0-beta.1.tgz", + "integrity": "sha512-RN55pWDp9vGjRuh4Xeozhfk6DhIPSVeO4wgGlufWWqq8XoHDvcz+BmwzCINVxx/Nqxh1aXZ5c82BQHG9rLgIfg==", + "requires": { + "@web3modal/core": "2.0.0-beta.1", + "lit": "2.4.0", + "motion": "10.14.2", + "qrcode": "1.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "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==", + "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==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "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==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.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==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==" + }, + "qrcode": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.1.tgz", + "integrity": "sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg==", + "requires": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + } + }, + "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==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "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.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@wry/context": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.0.tgz", + "integrity": "sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ==", + "requires": { + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + } + } + }, + "@wry/equality": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz", + "integrity": "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==", + "requires": { + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + } + } + }, + "@wry/trie": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", + "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", + "requires": { + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + } + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + }, + "abitype": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-0.1.7.tgz", + "integrity": "sha512-mNBIrA8xbkR0PrxXSO/7p3irNhyLKO6S4VfU3YrR37cqpJIq1D63Yg8KlovOZkCVAaQ+lJkGDkOhSpv1QmMXIg==" + }, + "abortcontroller-polyfill": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", + "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==" + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==" + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==" + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, + "address": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.1.tgz", + "integrity": "sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA==" + }, + "adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + } + }, + "aes-js": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", + "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + } + } + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.reduce": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz", + "integrity": "sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" + }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "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==" + }, + "async-mutex": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz", + "integrity": "sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==", + "requires": { + "tslib": "^2.0.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "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==" + }, + "autoprefixer": { + "version": "10.4.12", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz", + "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==", + "requires": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001407", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "axe-core": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", + "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==" + }, + "axios": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", + "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + }, + "dependencies": { + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "axios-hooks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/axios-hooks/-/axios-hooks-4.0.0.tgz", + "integrity": "sha512-IYpVCh/3I99KA826+Qtms581EegvlUVzDkhljglo21Ugc6P9lQQVG6q22seZy0ieYuepjS3kvCtzUG7jAX7BTA==", + "requires": { + "@babel/runtime": "7.19.0", + "dequal": "2.0.3", + "lru-cache": "^7.14.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", + "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==" + } + } + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + }, + "babel-jest": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz", + "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==", + "requires": { + "@jest/transform": "^29.3.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.2.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz", + "integrity": "sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==", + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, + "babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==" + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "babel-plugin-styled-components": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", + "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11", + "picomatch": "^2.3.0" + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" + }, + "babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz", + "integrity": "sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==", + "requires": { + "babel-plugin-jest-hoist": "^29.2.0", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "requires": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "requires": { + "tweetnacl": "^0.14.3" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + } + } + }, + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "bfj": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", + "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", + "requires": { + "bluebird": "^3.5.5", + "check-types": "^11.1.1", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "bigint-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", + "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", + "requires": { + "bindings": "^1.3.0" + } + }, + "bignumber.js": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz", + "integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bind-decorator": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/bind-decorator/-/bind-decorator-1.0.11.tgz", + "integrity": "sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "bonjour-service": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", + "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", + "requires": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "requires": { + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } + }, + "btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" + }, + "cacheable-lookup": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", + "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "caip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/caip/-/caip-1.1.0.tgz", + "integrity": "sha512-yOO3Fu4ygyKYAdznuoaqschMKIZzcdgyMpBNtrIfrUhnOeaOWG+dh0c13wcOS6B/46IGGbncoyzJlio79jU7rw==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + }, + "camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==" + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001423", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001423.tgz", + "integrity": "sha512-09iwWGOlifvE1XuHokFMP7eR38a0JnajoyL3/i87c8ZjRWRrdKo1fqjNfugfBD0UDBIOz0U+jtNhJ0EPm1VleQ==" + }, + "capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "requires": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" + }, + "check-types": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", + "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==" + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + }, + "ci-info": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", + "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==" + }, + "cids": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", + "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", + "requires": { + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "multicodec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", + "requires": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } + } + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + }, + "class-is": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", + "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" + }, + "classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, + "clean-css": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", + "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==" + }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + }, + "common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + }, + "common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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==" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + }, + "connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==" + }, + "connectkit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/connectkit/-/connectkit-1.0.0.tgz", + "integrity": "sha512-3vPH7qTSNUTNqUUQFLgB76Yx+hKLSX7Pr0ml5tIwDKDM9HJ4pIkyDX5NtjypPc4Cf2eFFuC+nBjshBFGTicaDA==", + "requires": { + "buffer": "^6.0.3", + "detect-browser": "^5.3.0", + "framer-motion": "^6.3.11", + "qrcode": "^1.5.0", + "react-transition-state": "^1.1.4", + "react-use-measure": "^2.1.1", + "styled-components": "^5.3.5" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "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==", + "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==" + }, + "detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "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==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.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==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==" + }, + "qrcode": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.1.tgz", + "integrity": "sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg==", + "requires": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + } + }, + "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==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "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.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-hash": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", + "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "requires": { + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "copy-to-clipboard": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.2.tgz", + "integrity": "sha512-Vme1Z6RUDzrb6xAI7EZlVZ5uvOk2F//GaxKUxajDqm9LhOVM1inxNAD2vy+UZDYsd0uyA9s7b3/FVZPSxqrCfg==", + "requires": { + "toggle-selection": "^1.0.6" + } + }, + "core-js": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.0.tgz", + "integrity": "sha512-+DkDrhoR4Y0PxDz6rurahuB+I45OsEUv8E1maPTB6OuHRohMMcznBq9TMpdpDMm/hUPob/mJJS3PqgbHpMTQgw==" + }, + "core-js-compat": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", + "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", + "requires": { + "browserslist": "^4.21.4" + } + }, + "core-js-pure": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz", + "integrity": "sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "requires": { + "node-fetch": "2.6.7" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "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==" + }, + "css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==" + }, + "css-declaration-sorter": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", + "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==" + }, + "css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + } + }, + "css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "requires": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==" + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "css-to-react-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "requires": { + "mdn-data": "2.0.4", + "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==" + } + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + }, + "cssdb": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.0.2.tgz", + "integrity": "sha512-Vm4b6P/PifADu0a76H0DKRNVWq3Rq9xa/Nx6oEMUBJlwTUuZoZ3dkZxo8Gob3UEL53Cq+Ma1GBgISed6XEBs3w==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssnano": { + "version": "5.1.13", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.13.tgz", + "integrity": "sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==", + "requires": { + "cssnano-preset-default": "^5.2.12", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-default": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", + "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "requires": { + "css-declaration-sorter": "^6.3.0", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.6", + "postcss-merge-rules": "^5.1.2", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + } + }, + "cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==" + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + } + } + }, + "csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" + }, + "decimal.js": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==" + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + }, + "deep-equal": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", + "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", + "requires": { + "call-bind": "^1.0.0", + "es-get-iterator": "^1.1.1", + "get-intrinsic": "^1.0.1", + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.2", + "is-regex": "^1.1.1", + "isarray": "^2.0.5", + "object-is": "^1.1.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.3", + "which-boxed-primitive": "^1.0.1", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.2" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "requires": { + "execa": "^5.0.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==" + }, + "delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.2.0.tgz", + "integrity": "sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA==" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "detective": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "requires": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + } + }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "diff-sequences": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", + "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "dijkstrajs": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz", + "integrity": "sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + }, + "dns-packet": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-accessibility-api": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", + "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==" + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + } + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "dom4": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/dom4/-/dom4-2.1.6.tgz", + "integrity": "sha512-JkCVGnN4ofKGbjf5Uvc8mmxaATIErKQKSgACdBXpsQ3fY6DlIpAyWfiBSrGkttATssbDCp3psiAKWXk5gmjycA==" + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "requires": { + "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==" + } + } + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + } + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "eip1193-provider": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/eip1193-provider/-/eip1193-provider-1.0.1.tgz", + "integrity": "sha512-kSuqwQ26d7CzuS/t3yRXo2Su2cVH0QfvyKbr2H7Be7O5YDyIq4hQGCNTo5wRdP07bt+E2R/8nPCzey4ojBHf7g==", + "requires": { + "@json-rpc-tools/provider": "^1.5.5" + } + }, + "ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "requires": { + "jake": "^10.8.5" + } + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "requires": { + "stackframe": "^1.3.4" + } + }, + "es-abstract": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, + "es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", + "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "requires": { + "has": "^1.0.3" + } + }, + "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==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "requires": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "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==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "eslint": { + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", + "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", + "requires": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "requires": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "requires": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "requires": { + "@typescript-eslint/experimental-utils": "^5.0.0" + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", + "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", + "requires": { + "@babel/runtime": "^7.18.9", + "aria-query": "^4.2.2", + "array-includes": "^3.1.5", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.4.3", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.2", + "language-tags": "^1.0.5", + "minimatch": "^3.1.2", + "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==" + } + } + }, + "eslint-plugin-react": { + "version": "7.31.10", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz", + "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==", + "requires": { + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.1", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.7" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==" + }, + "eslint-plugin-testing-library": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.9.1.tgz", + "integrity": "sha512-6BQp3tmb79jLLasPHJmy8DnxREe+2Pgf7L+7o09TSWPfdqqtQfRZmZNetr5mOs3yqZk/MRNxpN3RUpJe0wB4LQ==", + "requires": { + "@typescript-eslint/utils": "^5.13.0" + } + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" + }, + "eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "requires": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "espree": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "eth-block-tracker": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", + "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", + "requires": { + "@babel/plugin-transform-runtime": "^7.5.5", + "@babel/runtime": "^7.5.5", + "eth-query": "^2.1.0", + "json-rpc-random-id": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==" + } + } + }, + "eth-ens-namehash": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", + "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==", + "requires": { + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" + }, + "dependencies": { + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" + } + } + }, + "eth-json-rpc-filters": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz", + "integrity": "sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==", + "requires": { + "@metamask/safe-event-emitter": "^2.0.0", + "async-mutex": "^0.2.6", + "eth-json-rpc-middleware": "^6.0.0", + "eth-query": "^2.1.2", + "json-rpc-engine": "^6.1.0", + "pify": "^5.0.0" + }, + "dependencies": { + "pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==" + } + } + }, + "eth-json-rpc-middleware": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz", + "integrity": "sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ==", + "requires": { + "btoa": "^1.2.1", + "clone": "^2.1.1", + "eth-query": "^2.1.2", + "eth-rpc-errors": "^3.0.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-util": "^5.1.2", + "json-rpc-engine": "^5.3.0", + "json-stable-stringify": "^1.0.1", + "node-fetch": "^2.6.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + }, + "dependencies": { + "eth-rpc-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", + "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", + "requires": { + "fast-safe-stringify": "^2.0.6" + } + }, + "json-rpc-engine": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", + "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", + "requires": { + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==" + } + } + }, + "eth-lib": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", + "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "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==" + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "eth-query": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", + "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==", + "requires": { + "json-rpc-random-id": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "eth-rpc-errors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.2.tgz", + "integrity": "sha512-n+Re6Gu8XGyfFy1it0AwbD1x0MUzspQs0D5UiPs1fFPCr6WAwZM+vbIhXheBFrpgosqN9bs5PqlB4Q61U/QytQ==", + "requires": { + "fast-safe-stringify": "^2.0.6" + } + }, + "eth-sig-util": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", + "integrity": "sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw==", + "requires": { + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-util": "^5.1.1" + } + }, + "ethereum-bloom-filters": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", + "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "requires": { + "js-sha3": "^0.8.0" + } + }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "ethereumjs-abi": { + "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0", + "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "requires": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + } + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "requires": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" + } + } + }, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" + }, + "expect": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", + "requires": { + "@jest/expect-utils": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1" + }, + "dependencies": { + "@jest/expect-utils": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", + "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", + "requires": { + "jest-get-type": "^29.2.0" + } + }, + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==" + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "requires": { + "type": "^2.7.2" + }, + "dependencies": { + "type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "fast-stable-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "requires": { + "bser": "2.1.1" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + } + }, + "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==" + }, + "filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" + }, + "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==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" + }, + "fork-ts-checker-webpack-plugin": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", + "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + } + } + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" + }, + "framer-motion": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz", + "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==", + "requires": { + "@emotion/is-prop-valid": "^0.8.2", + "@motionone/dom": "10.12.0", + "framesync": "6.0.1", + "hey-listen": "^1.0.8", + "popmotion": "11.0.3", + "style-value-types": "5.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "@motionone/dom": { + "version": "10.12.0", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz", + "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==", + "requires": { + "@motionone/animation": "^10.12.0", + "@motionone/generators": "^10.12.0", + "@motionone/types": "^10.12.0", + "@motionone/utils": "^10.12.0", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + } + } + }, + "framesync": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz", + "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==", + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + } + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "requires": { + "minipass": "^2.6.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "got": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", + "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", + "requires": { + "@sindresorhus/is": "^4.6.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^6.0.4", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + }, + "graphql": { + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", + "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==" + }, + "graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + } + } + }, + "gud": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", + "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "requires": { + "duplexer": "^0.1.2" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "requires": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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" + } + }, + "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==" + } + } + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "requires": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + } + } + }, + "html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "requires": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + } + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + }, + "dependencies": { + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.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==" + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==" + }, + "http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "http2-wrapper": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.11.tgz", + "integrity": "sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==" + }, + "idb": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.0.tgz", + "integrity": "sha512-Wsk07aAxDsntgYJY4h0knZJuTxM73eQ4reRAO+Z1liOh8eMCJ/MoDS8fCui1vGT9mnjtl1sOu3I2i/W1swPYZg==" + }, + "identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "requires": { + "harmony-reflect": "^1.4.6" + } + }, + "idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "requires": { + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==" + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + }, + "immer": { + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "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==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.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==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "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==" + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==" + }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==" + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" + }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", + "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "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==" + } + } + }, + "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==", + "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==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "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==" + } + } + }, + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "its-fine": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/its-fine/-/its-fine-1.0.8.tgz", + "integrity": "sha512-MagTA9/J6kN3aEQsQu6by3nyrttCm0whCOYo4SfiNzOfYgcr1cb29mJ3zgluaJboaWOL/lHzJeMXi/QGSCfX1Q==", + "requires": { + "@types/react-reconciler": "^0.28.0" + }, + "dependencies": { + "@types/react-reconciler": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.0.tgz", + "integrity": "sha512-5cjk9ottZAj7eaTsqzPUIlrVbh3hBAO2YaEL1rkjHKB3xNAId7oU8GhzvAX+gfmlfoxTwJnBjPxEHyxkEA1Ffg==", + "requires": { + "@types/react": "*" + } + } + } + }, + "jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jayson": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", + "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", + "requires": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "JSONStream": "^1.3.5", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.20", + "uuid": "^8.3.2", + "ws": "^7.4.5" + }, + "dependencies": { + "@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + }, + "@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "requires": { + "@types/node": "*" + } + }, + "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==" + } + } + }, + "jest": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", + "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", + "requires": { + "@jest/core": "^29.3.1", + "@jest/types": "^29.3.1", + "import-local": "^3.0.2", + "jest-cli": "^29.3.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-cli": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz", + "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==", + "requires": { + "@jest/core": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + } + }, + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==" + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", + "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", + "requires": { + "@jest/types": "^29.3.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.2.0", + "leven": "^3.1.0", + "pretty-format": "^29.3.1" + } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-changed-files": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.2.0.tgz", + "integrity": "sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==", + "requires": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + } + }, + "jest-circus": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz", + "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==", + "requires": { + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "p-limit": "^3.1.0", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-config": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz", + "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==", + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.3.1", + "@jest/types": "^29.3.1", + "babel-jest": "^29.3.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.3.1", + "jest-environment-node": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==" + }, + "jest-haste-map": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", + "requires": { + "@jest/types": "^29.3.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-regex-util": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==" + }, + "jest-resolve": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", + "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + } + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", + "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", + "requires": { + "@jest/types": "^29.3.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.2.0", + "leven": "^3.1.0", + "pretty-format": "^29.3.1" + } + }, + "jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "requires": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-diff": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", + "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==" + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.2.0.tgz", + "integrity": "sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==", + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz", + "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==", + "requires": { + "@jest/types": "^29.3.1", + "chalk": "^4.0.0", + "jest-get-type": "^29.2.0", + "jest-util": "^29.3.1", + "pretty-format": "^29.3.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==" + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "dependencies": { + "@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "requires": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + } + }, + "@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "requires": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-node": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz", + "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==", + "requires": { + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" + }, + "jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "dependencies": { + "@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + } + }, + "@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "requires": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + } + }, + "@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "requires": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + } + }, + "@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "requires": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" + }, + "expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "requires": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.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==" + }, + "jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*" + } + }, + "jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + } + }, + "jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "write-file-atomic": { + "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==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + } + } + }, + "jest-leak-detector": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz", + "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==", + "requires": { + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + }, + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==" + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } + } + }, + "jest-matcher-utils": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", + "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==" + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", + "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.3.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-mock": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", + "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-util": "^29.3.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" + }, + "jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" + }, + "jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz", + "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==", + "requires": { + "jest-regex-util": "^29.2.0", + "jest-snapshot": "^29.3.1" + }, + "dependencies": { + "jest-regex-util": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==" + } + } + }, + "jest-runner": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", + "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==", + "requires": { + "@jest/console": "^29.3.1", + "@jest/environment": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.2.0", + "jest-environment-node": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-leak-detector": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-resolve": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-util": "^29.3.1", + "jest-watcher": "^29.3.1", + "jest-worker": "^29.3.1", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==" + }, + "jest-haste-map": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", + "requires": { + "@jest/types": "^29.3.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-regex-util": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==" + }, + "jest-resolve": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", + "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + } + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", + "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", + "requires": { + "@jest/types": "^29.3.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.2.0", + "leven": "^3.1.0", + "pretty-format": "^29.3.1" + } + }, + "jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "requires": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-runtime": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz", + "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==", + "requires": { + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/globals": "^29.3.1", + "@jest/source-map": "^29.2.0", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==" + }, + "jest-haste-map": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", + "requires": { + "@jest/types": "^29.3.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-regex-util": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==" + }, + "jest-resolve": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", + "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + } + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", + "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", + "requires": { + "@jest/types": "^29.3.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.2.0", + "leven": "^3.1.0", + "pretty-format": "^29.3.1" + } + }, + "jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "requires": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "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==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-snapshot": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", + "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.3.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-haste-map": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "natural-compare": "^1.4.0", + "pretty-format": "^29.3.1", + "semver": "^7.3.5" + }, + "dependencies": { + "@jest/expect-utils": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", + "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", + "requires": { + "jest-get-type": "^29.2.0" + } + }, + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==" + }, + "jest-haste-map": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", + "requires": { + "@jest/types": "^29.3.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-regex-util": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==" + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "requires": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "requires": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "requires": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + } + } + }, + "@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "requires": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "requires": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + } + } + }, + "jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==" + }, + "jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "requires": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "dependencies": { + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "requires": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" + }, + "string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "requires": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==" + } + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + } + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watcher": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz", + "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==", + "requires": { + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.3.1", + "string-length": "^4.0.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.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==" + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==" + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-rpc-engine": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz", + "integrity": "sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==", + "requires": { + "@metamask/safe-event-emitter": "^2.0.0", + "eth-rpc-errors": "^4.0.2" + } + }, + "json-rpc-random-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", + "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg==", + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==" + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" + }, + "jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==" + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "jsx-ast-utils": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "requires": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" + } + }, + "keccak": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + } + }, + "keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "keyvaluestorage-interface": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz", + "integrity": "sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==" + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==" + }, + "language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + }, + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "requires": { + "language-subtag-registry": "~0.3.2" + } + }, + "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==" + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==" + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "lit": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.4.0.tgz", + "integrity": "sha512-fdgzxEtLrZFQU/BqTtxFQCLwlZd9bdat+ltzSFjvWkZrs7eBmeX0L5MHUMb3kYIkuS8Xlfnii/iI5klirF8/Xg==", + "requires": { + "@lit/reactive-element": "^1.4.0", + "lit-element": "^3.2.0", + "lit-html": "^2.4.0" + } + }, + "lit-element": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.2.2.tgz", + "integrity": "sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ==", + "requires": { + "@lit/reactive-element": "^1.3.0", + "lit-html": "^2.2.0" + } + }, + "lit-html": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.4.0.tgz", + "integrity": "sha512-G6qXu4JNUpY6aaF2VMfaszhO9hlWw0hOTRFDmuMheg/nDYGB+2RztUSOyrzALAbr8Nh0Y7qjhYkReh3rPnplVg==", + "requires": { + "@types/trusted-types": "^2.0.2" + } + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" + }, + "loader-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "loadjs": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loadjs/-/loadjs-4.2.0.tgz", + "integrity": "sha512-AgQGZisAlTPbTEzrHPb6q+NYBMD+DP9uvGSIjSUM5uG+0jG15cb8axWpxuOIqrmQjn6scaaH8JwloiP27b2KXA==" + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", + "dev": true + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "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==", + "requires": { + "semver": "^6.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==" + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "requires": { + "tmpl": "1.0.5" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memfs": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz", + "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==", + "requires": { + "fs-monkey": "^1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + }, + "mini-css-extract-plugin": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", + "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", + "requires": { + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", + "requires": { + "mkdirp": "*" + } + }, + "mock-fs": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", + "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" + }, + "motion": { + "version": "10.14.2", + "resolved": "https://registry.npmjs.org/motion/-/motion-10.14.2.tgz", + "integrity": "sha512-zZp9PL4/O7nSgQBWBDdyvGm25Ef/hQUUVAOnyzxn2IvAhp496M+RB9p1ce4nN7cYLizox2Bq77/dTIjFGkJmAw==", + "requires": { + "@motionone/animation": "^10.14.0", + "@motionone/dom": "^10.14.2", + "@motionone/svelte": "^10.14.2", + "@motionone/types": "^10.14.0", + "@motionone/utils": "^10.14.0", + "@motionone/vue": "^10.14.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multibase": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", + "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "multicodec": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", + "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", + "requires": { + "varint": "^5.0.0" + } + }, + "multihashes": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "requires": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "multibase": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + } + } + }, + "nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==" + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + }, + "node-gyp-build": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "normalize.css": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", + "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.0.0" + } + }, + "number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "requires": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" + } + } + }, + "nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz", + "integrity": "sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ==", + "requires": { + "array.prototype.reduce": "^1.0.4", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.1" + } + }, + "object.hasown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "requires": { + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "oboe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", + "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", + "requires": { + "http-https": "^1.0.0" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "optimism": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz", + "integrity": "sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==", + "requires": { + "@wry/context": "^0.7.0", + "@wry/trie": "^0.3.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "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" + } + }, + "p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "requires": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "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==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" + }, + "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==", + "requires": { + "find-up": "^4.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==", + "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==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.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==", + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + } + } + }, + "pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" + }, + "popmotion": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz", + "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==", + "requires": { + "framesync": "6.0.1", + "hey-listen": "^1.0.8", + "style-value-types": "5.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + } + } + }, + "popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" + }, + "postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==" + }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "requires": { + "browserslist": "^4.20.3", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-properties": { + "version": "12.1.10", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.10.tgz", + "integrity": "sha512-U3BHdgrYhCrwTVcByFHs9EOBoqcKq4Lf3kXwbTi4hhq0qWhl/pDWq2THbv/ICX/Fl9KqeHBb8OVrTf2OaYF07A==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==" + }, + "postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==" + }, + "postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==" + }, + "postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==" + }, + "postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==" + }, + "postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==" + }, + "postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==" + }, + "postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==" + }, + "postcss-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", + "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + } + }, + "postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + } + }, + "postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==" + }, + "postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==" + }, + "postcss-merge-longhand": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", + "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + } + }, + "postcss-merge-rules": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "requires": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "requires": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==" + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-nested": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "requires": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "requires": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + } + }, + "postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==" + }, + "postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "requires": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "requires": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-opacity-percentage": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", + "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==" + }, + "postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==" + }, + "postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-preset-env": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.2.tgz", + "integrity": "sha512-rSMUEaOCnovKnwc5LvBDHUDzpGP+nrUeWZGWt9M72fBvckCi45JmnJigUr4QG4zZeOHmOCNCZnd2LKDvP++ZuQ==", + "requires": { + "@csstools/postcss-cascade-layers": "^1.1.0", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.11", + "browserslist": "^4.21.3", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.0.1", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.9", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==" + }, + "postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "dependencies": { + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "requires": { + "boolbase": "^1.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + } + } + } + }, + "postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "preact": { + "version": "10.11.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.2.tgz", + "integrity": "sha512-skAwGDFmgxhq1DCBHke/9e12ewkhc7WYwjuhHB8HHS8zkdtITXLRmUMTeol2ldxvLwYtwbFeifZ9uDDWuyL4Iw==" + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" + }, + "pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "requires": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "requires": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + } + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.2.0.tgz", + "integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==", + "requires": { + "asap": "~2.0.6" + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + } + } + }, + "proxy-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.3.0.tgz", + "integrity": "sha512-c3L2CcAi7f7pvlD0D7xsF+2CQIW8C3HaYx2Pfgq8eA4HAl3GAH6/dVYsyBbYF/0XJs2ziGLrzmz5fmzPm6A0pQ==" + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + }, + "qrcode": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.4.4.tgz", + "integrity": "sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q==", + "requires": { + "buffer": "^5.4.3", + "buffer-alloc": "^1.2.0", + "buffer-from": "^1.1.1", + "dijkstrajs": "^1.0.1", + "isarray": "^2.0.1", + "pngjs": "^3.3.0", + "yargs": "^13.2.4" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "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": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==" + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + }, + "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==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.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": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "query-string": { + "version": "6.13.5", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.13.5.tgz", + "integrity": "sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q==", + "requires": { + "decode-uri-component": "^0.2.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + } + } + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "requires": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + } + }, + "react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "requires": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "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==" + }, + "react-native-url-polyfill": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-native-url-polyfill/-/react-native-url-polyfill-1.3.0.tgz", + "integrity": "sha512-w9JfSkvpqqlix9UjDvJjm1EjSt652zVQ6iwCIj1cVVkwXf4jQhQgTNXY6EVTwuAmUjg6BC6k9RHCBynoLFo3IQ==", + "requires": { + "whatwg-url-without-unicode": "8.0.0-3" + } + }, + "react-popper": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.11.tgz", + "integrity": "sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg==", + "requires": { + "@babel/runtime": "^7.1.2", + "@hypnosphi/create-react-context": "^0.3.1", + "deep-equal": "^1.1.1", + "popper.js": "^1.14.4", + "prop-types": "^15.6.1", + "typed-styles": "^0.0.7", + "warning": "^4.0.2" + }, + "dependencies": { + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + } + } + }, + "react-reconciler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.27.0.tgz", + "integrity": "sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.21.0" + }, + "dependencies": { + "scheduler": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz", + "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==", + "requires": { + "loose-envify": "^1.1.0" + } + } + } + }, + "react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" + }, + "react-router": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.2.tgz", + "integrity": "sha512-Rb0BAX9KHhVzT1OKhMvCDMw776aTYM0DtkxqUBP8dNBom3mPXlfNs76JNGK8wKJ1IZEY1+WGj+cvZxHVk/GiKw==", + "requires": { + "@remix-run/router": "1.0.2" + } + }, + "react-router-dom": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.2.tgz", + "integrity": "sha512-yM1kjoTkpfjgczPrcyWrp+OuQMyB1WleICiiGfstnQYo/S8hPEEnVjr/RdmlH6yKK4Tnj1UGXFSa7uwAtmDoLQ==", + "requires": { + "@remix-run/router": "1.0.2", + "react-router": "6.4.2" + } + }, + "react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "requires": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "fsevents": "^2.3.2", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "dependencies": { + "@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "requires": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "requires": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + } + }, + "@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "requires": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + } + }, + "@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + } + }, + "@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "requires": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "requires": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + } + }, + "@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "requires": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "requires": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.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==", + "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==" + }, + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" + }, + "emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" + }, + "expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "requires": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.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==" + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "requires": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "dependencies": { + "jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "requires": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + } + } + } + }, + "jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "requires": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + } + }, + "jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + } + }, + "jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "requires": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + } + }, + "jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "requires": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*" + } + }, + "jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "requires": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + } + }, + "jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "requires": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + } + }, + "jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + } + }, + "jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + } + }, + "jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "requires": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "requires": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + } + }, + "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==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + } + } + }, + "write-file-atomic": { + "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==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + } + } + }, + "react-shallow-renderer": { + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" + } + }, + "react-test-renderer": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.2.0.tgz", + "integrity": "sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==", + "dev": true, + "requires": { + "react-is": "^18.2.0", + "react-shallow-renderer": "^16.15.0", + "scheduler": "^0.23.0" + }, + "dependencies": { + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } + } + }, + "react-three-fiber": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/react-three-fiber/-/react-three-fiber-6.0.13.tgz", + "integrity": "sha512-uShQnkMVLvnzwf3YzY9mnzCnpmLpvTQkc0ycrtwk8fyjXmZt2695tLn3tufPF6uxq06UKJRKJcjCVCMXyUcEPQ==", + "requires": { + "@react-three/fiber": "^8.9.2" + }, + "dependencies": { + "@react-three/fiber": { + "version": "8.9.2", + "resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-8.9.2.tgz", + "integrity": "sha512-uhDQvxUZ0M2SU/gAtY2tcEaa+Pp9JSDmSzm7Dw6q9/KMReqcImNLjPzkjVsWV5DKP7fELC6c4Bgs9sVIahM6LQ==", + "requires": { + "@babel/runtime": "^7.17.8", + "@types/react-reconciler": "^0.26.7", + "its-fine": "^1.0.6", + "react-reconciler": "^0.27.0", + "react-use-measure": "^2.1.1", + "scheduler": "^0.21.0", + "suspend-react": "^0.0.8", + "zustand": "^3.7.1" + } + }, + "scheduler": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz", + "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "zustand": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz", + "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==" + } + } + }, + "react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, + "react-transition-state": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/react-transition-state/-/react-transition-state-1.1.5.tgz", + "integrity": "sha512-ITY2mZqc2dWG2eitJkYNdcSFW8aKeOlkL2A/vowRrLL8GH3J6Re/SpD/BLvQzrVOTqjsP0b5S9N10vgNNzwMUQ==" + }, + "react-use-measure": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz", + "integrity": "sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==", + "requires": { + "debounce": "^1.2.1" + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "requires": { + "pify": "^2.3.0" + } + }, + "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==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "requires": { + "minimatch": "3.0.4" + }, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" + }, + "regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" + }, + "regexpu-core": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsgen": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==" + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==" + }, + "renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "requires": { + "boolbase": "^1.0.0" + } + } + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "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": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + }, + "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==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "requires": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" + }, + "response-iterator": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", + "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==" + }, + "responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "requires": { + "lowercase-keys": "^2.0.0" + }, + "dependencies": { + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "requires": { + "bn.js": "^5.2.0" + } + }, + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "requires": { + "fsevents": "~2.3.2" + } + }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.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==" + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "rpc-websockets": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.0.tgz", + "integrity": "sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ==", + "requires": { + "@babel/runtime": "^7.17.2", + "bufferutil": "^4.0.1", + "eventemitter3": "^4.0.7", + "utf-8-validate": "^5.0.2", + "uuid": "^8.3.2", + "ws": "^8.5.0" + }, + "dependencies": { + "ws": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", + "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==" + } + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safe-event-emitter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", + "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", + "requires": { + "events": "^3.0.0" + } + }, + "safe-json-utils": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/safe-json-utils/-/safe-json-utils-1.1.1.tgz", + "integrity": "sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ==" + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" + }, + "sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "requires": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "requires": { + "xmlchars": "^2.2.0" + } + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "requires": { + "node-forge": "^1" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "requires": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "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==", + "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==" + }, + "shell-quote": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "simple-get": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", + "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + }, + "dependencies": { + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "requires": { + "mimic-response": "^1.0.0" + } + } + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.1.tgz", + "integrity": "sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA==", + "dev": true, + "requires": { + "abab": "^2.0.6", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + } + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "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==" + } + } + }, + "stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==" + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "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==" + } + } + }, + "string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "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==" + } + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + }, + "strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "style-loader": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", + "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==" + }, + "style-value-types": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz", + "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==", + "requires": { + "hey-listen": "^1.0.8", + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + } + } + }, + "styled-components": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.6.tgz", + "integrity": "sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^1.1.0", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + }, + "dependencies": { + "@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "requires": { + "@emotion/memoize": "^0.8.0" + } + }, + "@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + } + } + }, + "stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "requires": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + } + }, + "superstruct": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", + "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "requires": { + "has-flag": "^4.0.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==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "suspend-react": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/suspend-react/-/suspend-react-0.0.8.tgz", + "integrity": "sha512-ZC3r8Hu1y0dIThzsGw0RLZplnX9yXwfItcvaIzJc2VQVi8TGyGDlu92syMB5ulybfvGLHAI5Ghzlk23UBPF8xg==" + }, + "svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "swarm-js": { + "version": "0.1.42", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", + "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", + "requires": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^11.8.5", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + }, + "dependencies": { + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "tailwindcss": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.1.tgz", + "integrity": "sha512-Uw+GVSxp5CM48krnjHObqoOwlCt5Qo6nw1jlCRwfGy68dSYb/LwS9ZFidYGRiM+w6rMawkZiu1mEMAsHYAfoLg==", + "requires": { + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.1", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.17", + "postcss-import": "^14.1.0", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.1" + }, + "dependencies": { + "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==" + } + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" + }, + "tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "requires": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==" + }, + "tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "requires": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "dependencies": { + "type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" + } + } + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "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==" + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "requires": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + } + }, + "test-exclude": { + "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==", + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-encoding-utf-8": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", + "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "three": { + "version": "0.148.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.148.0.tgz", + "integrity": "sha512-8uzVV+qhTPi0bOFs/3te3RW6hb3urL8jYEl6irjCWo/l6sr8MPNMcClFev/MMYeIxr0gmDcoXTy/8LXh/LXkfw==" + }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==" + }, + "tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + }, + "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==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "dependencies": { + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==" + } + } + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "requires": { + "punycode": "^2.1.1" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "ts-invariant": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", + "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + } + } + }, + "ts-jest": { + "version": "29.0.3", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.0.3.tgz", + "integrity": "sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ==", + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.1", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "dependencies": { + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ts-loader": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.1.tgz", + "integrity": "sha512-384TYAqGs70rn9F0VBnh6BPTfhga7yFNdC5gXbQpDrBj9/KsT4iRkGqKXhziofHOlE2j6YEaiTYVGKKvPhGWvw==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "requires": { + "tslib": "^1.8.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typed-styles": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz", + "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==" + }, + "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==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==" + }, + "typewriter-effect": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/typewriter-effect/-/typewriter-effect-2.19.0.tgz", + "integrity": "sha512-rhUX1ukmAXNFWUnMFx8CDU1uLWJQ7pRYzDU7WfHJRq43i6SmWSP9vFiUsOGfXINodUAgZiJ5xnzwLciHxZDGDg==", + "requires": { + "prop-types": "^15.6.2", + "raf": "^3.4.0" + } + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==" + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==" + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "requires": { + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "requires": { + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==" + }, + "use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==" + }, + "utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" + }, + "valtio": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.7.4.tgz", + "integrity": "sha512-x8N7I7hfIlRHQyRe8cx3QJsEYdzMHb12HYUGIDjPruEwLrMpegvS8iZDk4PZ/i8HgeiOPF7Qr78Ke3HA1CGu9A==", + "requires": { + "proxy-compare": "2.3.0", + "use-sync-external-store": "1.2.0" + } + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + } + } + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "wagmi": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-0.8.1.tgz", + "integrity": "sha512-jt9JWhtKDZEGfXGwgYKU6JmfuPhKzNlJMcYgoyMTYstBPzresj+RHvbhu5Lrcro7XfUYZ6Yr8TF5KQhg+0uR2g==", + "requires": { + "@coinbase/wallet-sdk": "^3.5.3", + "@tanstack/query-sync-storage-persister": "^4.14.5", + "@tanstack/react-query": "^4.14.5", + "@tanstack/react-query-persist-client": "^4.14.5", + "@wagmi/core": "0.7.1", + "@walletconnect/ethereum-provider": "^1.8.0", + "abitype": "^0.1.7", + "use-sync-external-store": "^1.2.0" + }, + "dependencies": { + "@wagmi/core": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-0.7.1.tgz", + "integrity": "sha512-9GBlpbntXchJLyWhZMJTFu0WB4qG0XbtcPJQSh/6v5P5hYZ2yvYltfOl+DIiyjCHuOpqr7MoP2Hv5diqQoN6fQ==", + "requires": { + "abitype": "^0.1.7", + "eventemitter3": "^4.0.7", + "zustand": "^4.1.1" + } + } + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "requires": { + "makeerror": "1.0.12" + } + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "web-vitals": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", + "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" + }, + "web3": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.8.1.tgz", + "integrity": "sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ==", + "requires": { + "web3-bzz": "1.8.1", + "web3-core": "1.8.1", + "web3-eth": "1.8.1", + "web3-eth-personal": "1.8.1", + "web3-net": "1.8.1", + "web3-shh": "1.8.1", + "web3-utils": "1.8.1" + } + }, + "web3-bzz": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.1.tgz", + "integrity": "sha512-dJJHS84nvpoxv6ijTMkdUSlRr5beCXNtx4UZcrFLHBva8dT63QEtKdLyDt2AyMJJdVzTCk78uir/6XtVWrdS6w==", + "requires": { + "@types/node": "^12.12.6", + "got": "12.1.0", + "swarm-js": "^0.1.40" + }, + "dependencies": { + "@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + } + } + }, + "web3-core": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.8.1.tgz", + "integrity": "sha512-LbRZlJH2N6nS3n3Eo9Y++25IvzMY7WvYnp4NM/Ajhh97dAdglYs6rToQ2DbL2RLvTYmTew4O/y9WmOk4nq9COw==", + "requires": { + "@types/bn.js": "^5.1.0", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.8.1", + "web3-core-method": "1.8.1", + "web3-core-requestmanager": "1.8.1", + "web3-utils": "1.8.1" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + } + } + }, + "web3-core-helpers": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.1.tgz", + "integrity": "sha512-ClzNO6T1S1gifC+BThw0+GTfcsjLEY8T1qUp6Ly2+w4PntAdNtKahxWKApWJ0l9idqot/fFIDXwO3Euu7I0Xqw==", + "requires": { + "web3-eth-iban": "1.8.1", + "web3-utils": "1.8.1" + } + }, + "web3-core-method": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.1.tgz", + "integrity": "sha512-oYGRodktfs86NrnFwaWTbv2S38JnpPslFwSSARwFv4W9cjbGUW3LDeA5MKD/dRY+ssZ5OaekeMsUCLoGhX68yA==", + "requires": { + "@ethersproject/transactions": "^5.6.2", + "web3-core-helpers": "1.8.1", + "web3-core-promievent": "1.8.1", + "web3-core-subscriptions": "1.8.1", + "web3-utils": "1.8.1" + } + }, + "web3-core-promievent": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.1.tgz", + "integrity": "sha512-9mxqHlgB0MrZI4oUIRFkuoJMNj3E7btjrMv3sMer/Z9rYR1PfoSc1aAokw4rxKIcAh+ylVtd/acaB2HKB7aRPg==", + "requires": { + "eventemitter3": "4.0.4" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + } + } + }, + "web3-core-requestmanager": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.1.tgz", + "integrity": "sha512-x+VC2YPPwZ1khvqA6TA69LvfFCOZXsoUVOxmTx/vIN22PrY9KzKhxcE7pBSiGhmab1jtmRYXUbcQSVpAXqL8cw==", + "requires": { + "util": "^0.12.0", + "web3-core-helpers": "1.8.1", + "web3-providers-http": "1.8.1", + "web3-providers-ipc": "1.8.1", + "web3-providers-ws": "1.8.1" + } + }, + "web3-core-subscriptions": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.1.tgz", + "integrity": "sha512-bmCMq5OeA3E2vZUh8Js1HcJbhwtsE+yeMqGC4oIZB3XsL5SLqyKLB/pU+qUYqQ9o4GdcrFTDPhPg1bgvf7p1Pw==", + "requires": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.8.1" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + } + } + }, + "web3-eth": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.1.tgz", + "integrity": "sha512-LgyzbhFqiFRd8M8sBXoFN4ztzOnkeckl3H/9lH5ek7AdoRMhBg7tYpYRP3E5qkhd/q+yiZmcUgy1AF6NHrC1wg==", + "requires": { + "web3-core": "1.8.1", + "web3-core-helpers": "1.8.1", + "web3-core-method": "1.8.1", + "web3-core-subscriptions": "1.8.1", + "web3-eth-abi": "1.8.1", + "web3-eth-accounts": "1.8.1", + "web3-eth-contract": "1.8.1", + "web3-eth-ens": "1.8.1", + "web3-eth-iban": "1.8.1", + "web3-eth-personal": "1.8.1", + "web3-net": "1.8.1", + "web3-utils": "1.8.1" + } + }, + "web3-eth-abi": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz", + "integrity": "sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w==", + "requires": { + "@ethersproject/abi": "^5.6.3", + "web3-utils": "1.8.1" + } + }, + "web3-eth-accounts": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.1.tgz", + "integrity": "sha512-mgzxSYgN54/NsOFBO1Fq1KkXp1S5KlBvI/DlgvajU72rupoFMq6Cu6Yp9GUaZ/w2ij9PzEJuFJk174XwtfMCmg==", + "requires": { + "@ethereumjs/common": "2.5.0", + "@ethereumjs/tx": "3.3.2", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.0.10", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.8.1", + "web3-core-helpers": "1.8.1", + "web3-core-method": "1.8.1", + "web3-utils": "1.8.1" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "requires": { + "@types/node": "*" + } + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "dependencies": { + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + } + } + }, + "uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" + } + } + }, + "web3-eth-contract": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.1.tgz", + "integrity": "sha512-1wphnl+/xwCE2io44JKnN+ti3oa47BKRiVzvWd42icwRbcpFfRxH9QH+aQX3u8VZIISNH7dAkTWpGIIJgGFTmg==", + "requires": { + "@types/bn.js": "^5.1.0", + "web3-core": "1.8.1", + "web3-core-helpers": "1.8.1", + "web3-core-method": "1.8.1", + "web3-core-promievent": "1.8.1", + "web3-core-subscriptions": "1.8.1", + "web3-eth-abi": "1.8.1", + "web3-utils": "1.8.1" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "requires": { + "@types/node": "*" + } + } + } + }, + "web3-eth-ens": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.1.tgz", + "integrity": "sha512-FT8xTI9uN8RxeBQa/W8pLa2aoFh4+EE34w7W2271LICKzla1dtLyb6XSdn48vsUcPmhWsTVk9mO9RTU0l4LGQQ==", + "requires": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.8.1", + "web3-core-helpers": "1.8.1", + "web3-core-promievent": "1.8.1", + "web3-eth-abi": "1.8.1", + "web3-eth-contract": "1.8.1", + "web3-utils": "1.8.1" + } + }, + "web3-eth-iban": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.1.tgz", + "integrity": "sha512-DomoQBfvIdtM08RyMGkMVBOH0vpOIxSSQ+jukWk/EkMLGMWJtXw/K2c2uHAeq3L/VPWNB7zXV2DUEGV/lNE2Dg==", + "requires": { + "bn.js": "^5.2.1", + "web3-utils": "1.8.1" + } + }, + "web3-eth-personal": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.1.tgz", + "integrity": "sha512-myIYMvj7SDIoV9vE5BkVdon3pya1WinaXItugoii2VoTcQNPOtBxmYVH+XS5ErzCJlnxzphpQrkywyY64bbbCA==", + "requires": { + "@types/node": "^12.12.6", + "web3-core": "1.8.1", + "web3-core-helpers": "1.8.1", + "web3-core-method": "1.8.1", + "web3-net": "1.8.1", + "web3-utils": "1.8.1" + }, + "dependencies": { + "@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + } + } + }, + "web3-net": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.8.1.tgz", + "integrity": "sha512-LyEJAwogdFo0UAXZqoSJGFjopdt+kLw0P00FSZn2yszbgcoI7EwC+nXiOsEe12xz4LqpYLOtbR7+gxgiTVjjHQ==", + "requires": { + "web3-core": "1.8.1", + "web3-core-method": "1.8.1", + "web3-utils": "1.8.1" + } + }, + "web3-providers-http": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.1.tgz", + "integrity": "sha512-1Zyts4O9W/UNEPkp+jyL19Jc3D15S4yp8xuLTjVhcUEAlHo24NDWEKxtZGUuHk4HrKL2gp8OlsDbJ7MM+ESDgg==", + "requires": { + "abortcontroller-polyfill": "^1.7.3", + "cross-fetch": "^3.1.4", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.8.1" + } + }, + "web3-providers-ipc": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.1.tgz", + "integrity": "sha512-nw/W5nclvi+P2z2dYkLWReKLnocStflWqFl+qjtv0xn3MrUTyXMzSF0+61i77+16xFsTgzo4wS/NWIOVkR0EFA==", + "requires": { + "oboe": "2.1.5", + "web3-core-helpers": "1.8.1" + } + }, + "web3-providers-ws": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.1.tgz", + "integrity": "sha512-TNefIDAMpdx57+YdWpYZ/xdofS0P+FfKaDYXhn24ie/tH9G+AB+UBSOKnjN0KSadcRSCMBwGPRiEmNHPavZdsA==", + "requires": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.8.1", + "websocket": "^1.0.32" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + } + } + }, + "web3-shh": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.1.tgz", + "integrity": "sha512-sqHgarnfcY2Qt3PYS4R6YveHrDy7hmL09yeLLHHCI+RKirmjLVqV0rc5LJWUtlbYI+kDoa5gbgde489M9ZAC0g==", + "requires": { + "web3-core": "1.8.1", + "web3-core-method": "1.8.1", + "web3-core-subscriptions": "1.8.1", + "web3-net": "1.8.1" + } + }, + "web3-utils": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.1.tgz", + "integrity": "sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ==", + "requires": { + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "requires": { + "@types/node": "*" + } + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + } + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + }, + "webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + } + } + }, + "webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "webpack-dev-server": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "ws": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", + "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==" + } + } + }, + "webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "requires": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "requires": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + } + } + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" + }, + "websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "requires": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + }, + "whatwg-url-without-unicode": { + "version": "8.0.0-3", + "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz", + "integrity": "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==", + "requires": { + "buffer": "^5.4.3", + "punycode": "^2.1.1", + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + } + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==" + }, + "which-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", + "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.9" + } + }, + "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==" + }, + "workbox-background-sync": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz", + "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==", + "requires": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "workbox-broadcast-update": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz", + "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==", + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-build": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.4.tgz", + "integrity": "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==", + "requires": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.5.4", + "workbox-broadcast-update": "6.5.4", + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-google-analytics": "6.5.4", + "workbox-navigation-preload": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-range-requests": "6.5.4", + "workbox-recipes": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4", + "workbox-streams": "6.5.4", + "workbox-sw": "6.5.4", + "workbox-window": "6.5.4" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "requires": { + "whatwg-url": "^7.0.0" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "requires": { + "punycode": "^2.1.0" + } + }, + "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==" + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } + } + }, + "workbox-cacheable-response": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz", + "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==", + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-core": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", + "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==" + }, + "workbox-expiration": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz", + "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==", + "requires": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "workbox-google-analytics": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz", + "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==", + "requires": { + "workbox-background-sync": "6.5.4", + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "workbox-navigation-preload": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz", + "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==", + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-precaching": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz", + "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==", + "requires": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "workbox-range-requests": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz", + "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==", + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-recipes": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.4.tgz", + "integrity": "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==", + "requires": { + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "workbox-routing": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz", + "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==", + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-strategies": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz", + "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==", + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-streams": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz", + "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==", + "requires": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4" + } + }, + "workbox-sw": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.4.tgz", + "integrity": "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==" + }, + "workbox-webpack-plugin": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz", + "integrity": "sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg==", + "requires": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.5.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==" + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "workbox-window": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.4.tgz", + "integrity": "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==", + "requires": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.5.4" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "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==", + "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==" + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==" + }, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "requires": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + }, + "dependencies": { + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==" + } + } + }, + "xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "requires": { + "xhr-request": "^1.1.0" + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, + "zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + }, + "zen-observable-ts": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", + "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", + "requires": { + "zen-observable": "0.8.15" + } + }, + "zustand": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.1.3.tgz", + "integrity": "sha512-AdFyr6+4sVD6xlyc/ArQaOrleqzxJEBbAXglufZ5lgvisoz8GUN3icOrKOnX1uRSxmpmdVUQPen9hhymWIzhBg==", + "requires": { + "use-sync-external-store": "1.2.0" + } + } + } +} diff --git a/daostar-website/package.json b/daostar-website/package.json new file mode 100644 index 00000000..99d6b3ea --- /dev/null +++ b/daostar-website/package.json @@ -0,0 +1,76 @@ +{ + "name": "daostar-website", + "version": "0.1.0", + "private": true, + "proxy": "https://api.daostar.org/", + "dependencies": { + "@apollo/client": "^3.7.1", + "@blueprintjs/core": "^4.11.5", + "@react-three/fiber": "^8.9.2", + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^29.2.2", + "@types/node": "^18.11.9", + "@types/react": "^18.0.25", + "@types/react-dom": "^18.0.8", + "@web3-react/core": "^6.1.9", + "@web3-react/injected-connector": "^6.0.7", + "@web3-react/walletconnect-connector": "^6.2.13", + "@web3-react/walletlink-connector": "^6.2.14", + "@web3modal/ethereum": "^2.0.0-beta.1", + "@web3modal/react": "^2.0.0-beta.1", + "axios": "^1.1.3", + "axios-hooks": "^4.0.0", + "babel-jest": "^29.3.1", + "caip": "^1.1.0", + "connectkit": "^1.0.0", + "ethers": "^5.7.2", + "graphql": "^16.6.0", + "jest": "^29.3.1", + "loadjs": "^4.2.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.4.2", + "react-scripts": "5.0.1", + "react-three-fiber": "^6.0.13", + "three": "^0.148.0", + "ts-jest": "^29.0.3", + "typescript": "^4.8.4", + "typewriter-effect": "^2.19.0", + "validator": "^13.7.0", + "wagmi": "^0.8.1", + "web-vitals": "^2.1.4", + "web3": "^1.8.1" + }, + "scripts": { + "start": "PORT=8000 REACT_APP_API_URL=http://localhost:8080/https://api.daostar.org react-scripts start", + "build": "REACT_APP_API_URL=https://api.daostar.org react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "devDependencies": { + "@babel/preset-env": "^7.20.2", + "@testing-library/react": "^13.4.0", + "react-test-renderer": "^18.2.0", + "source-map-loader": "^4.0.1", + "ts-loader": "^9.4.1" + } +} diff --git a/daostar-website/public/_redirects b/daostar-website/public/_redirects new file mode 100644 index 00000000..50a46335 --- /dev/null +++ b/daostar-website/public/_redirects @@ -0,0 +1 @@ +/* /index.html 200 \ No newline at end of file diff --git a/daostar-website/public/favicon.ico b/daostar-website/public/favicon.ico new file mode 100644 index 00000000..449a42b3 Binary files /dev/null and b/daostar-website/public/favicon.ico differ diff --git a/daostar-website/public/index.html b/daostar-website/public/index.html new file mode 100644 index 00000000..c75b2f6a --- /dev/null +++ b/daostar-website/public/index.html @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + DAOstar + + + +
+ + + + + + + diff --git a/daostar-website/public/logo192.png b/daostar-website/public/logo192.png new file mode 100644 index 00000000..fc44b0a3 Binary files /dev/null and b/daostar-website/public/logo192.png differ diff --git a/daostar-website/public/logo512.png b/daostar-website/public/logo512.png new file mode 100644 index 00000000..a4e47a65 Binary files /dev/null and b/daostar-website/public/logo512.png differ diff --git a/daostar-website/public/manifest.json b/daostar-website/public/manifest.json new file mode 100644 index 00000000..080d6c77 --- /dev/null +++ b/daostar-website/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/daostar-website/public/robots.txt b/daostar-website/public/robots.txt new file mode 100644 index 00000000..e9e57dc4 --- /dev/null +++ b/daostar-website/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/daostar-website/public/scripts/main.js b/daostar-website/public/scripts/main.js new file mode 100644 index 00000000..9df0e2e4 --- /dev/null +++ b/daostar-website/public/scripts/main.js @@ -0,0 +1,59 @@ +// Typing animation https://speckyboy.com/css-javascript-text-animation-snippets/ + + +var TxtRotate = function(el, toRotate, period) { + this.toRotate = toRotate; + this.el = el; + this.loopNum = 0; + this.period = parseInt(period, 10) || 2000; + this.txt = ''; + this.tick(); + this.isDeleting = false; +}; + +TxtRotate.prototype.tick = function() { + var i = this.loopNum % this.toRotate.length; + var fullTxt = this.toRotate[i]; + + if (this.isDeleting) { + this.txt = fullTxt.substring(0, this.txt.length - 1); + } else { + this.txt = fullTxt.substring(0, this.txt.length + 1); + } + + this.el.innerHTML = ''+this.txt+''; + + var that = this; + var delta = 300 - Math.random() * 100; + + if (this.isDeleting) { delta /= 2; } + + if (!this.isDeleting && this.txt === fullTxt) { + delta = this.period; + this.isDeleting = true; + } else if (this.isDeleting && this.txt === '') { + this.isDeleting = false; + this.loopNum++; + delta = 500; + } + + setTimeout(function() { + that.tick(); + }, delta); +}; + +window.onload = function() { + var elements = document.getElementsByClassName('txt-rotate'); + for (var i=0; ie in r?Pl(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ue=(r,e)=>{for(var t in e||(e={}))_g.call(e,t)&&Tg(r,t,e[t]);if(Ag)for(var t of Ag(e))dA.call(e,t)&&Tg(r,t,e[t]);return r},tt=(r,e)=>aA(r,cA(e)),Eg=r=>Pl(r,"__esModule",{value:!0});var Ng=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),fA=(r,e)=>{Eg(r);for(var t in e)Pl(r,t,{get:e[t],enumerable:!0})},pA=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of uA(e))!_g.call(r,n)&&n!=="default"&&Pl(r,n,{get:()=>e[n],enumerable:!(t=lA(e,n))||t.enumerable});return r},Cg=r=>pA(Eg(Pl(r!=null?oA(hA(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var Y0=Ng($h=>{"use strict";$h.byteLength=Z2;$h.toByteArray=eI;$h.fromByteArray=iI;var yr=[],Li=[],Q2=typeof Uint8Array!="undefined"?Uint8Array:Array,Om="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Po=0,X0=Om.length;Po0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var n=t===e?0:4-t%4;return[t,n]}function Z2(r){var e=q0(r),t=e[0],n=e[1];return(t+n)*3/4-n}function $2(r,e,t){return(e+t)*3/4-t}function eI(r){var e,t=q0(r),n=t[0],i=t[1],s=new Q2($2(r,n,i)),o=0,a=i>0?n-4:n,l;for(l=0;l>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=Li[r.charCodeAt(l)]<<2|Li[r.charCodeAt(l+1)]>>4,s[o++]=e&255),i===1&&(e=Li[r.charCodeAt(l)]<<10|Li[r.charCodeAt(l+1)]<<4|Li[r.charCodeAt(l+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}function tI(r){return yr[r>>18&63]+yr[r>>12&63]+yr[r>>6&63]+yr[r&63]}function nI(r,e,t){for(var n,i=[],s=e;sa?a:o+s));return n===1?(e=r[t-1],i.push(yr[e>>2]+yr[e<<4&63]+"==")):n===2&&(e=(r[t-2]<<8)+r[t-1],i.push(yr[e>>10]+yr[e>>4&63]+yr[e<<2&63]+"=")),i.join("")}});var tA=Ng((Xd,eA)=>{(function(r,e){typeof Xd=="object"&&typeof eA!="undefined"?e(Xd):typeof define=="function"&&define.amd?define(["exports"],e):e((r=typeof globalThis!="undefined"?globalThis:r||self).SVDJS={})})(Xd,function(r){"use strict";r.SVD=function(e,t,n,i,s){if(t=t===void 0||t,n=n===void 0||n,s=1e-64/(i=i||Math.pow(2,-52)),!e)throw new TypeError("Matrix a is not defined");var o,a,l,c,u,h,d,f,p,m,v,g,y=e[0].length,x=e.length;if(x>8&255]+Cn[r>>16&255]+Cn[r>>24&255]+"-"+Cn[e&255]+Cn[e>>8&255]+"-"+Cn[e>>16&15|64]+Cn[e>>24&255]+"-"+Cn[t&63|128]+Cn[t>>8&255]+"-"+Cn[t>>16&255]+Cn[t>>24&255]+Cn[n&255]+Cn[n>>8&255]+Cn[n>>16&255]+Cn[n>>24&255]).toUpperCase()}function Ln(r,e,t){return Math.max(e,Math.min(t,r))}function nf(r,e){return(r%e+e)%e}function k_(r,e,t,n,i){return n+(r-e)*(i-n)/(t-e)}function V_(r,e,t){return r!==e?(t-r)/(e-r):0}function Fl(r,e,t){return(1-t)*r+t*e}function H_(r,e,t,n){return Fl(r,e,1-Math.exp(-t*n))}function j_(r,e=1){return e-Math.abs(nf(r,e*2)-e)}function W_(r,e,t){return r<=e?0:r>=t?1:(r=(r-e)/(t-e),r*r*(3-2*r))}function J_(r,e,t){return r<=e?0:r>=t?1:(r=(r-e)/(t-e),r*r*r*(r*(r*6-15)+10))}function X_(r,e){return r+Math.floor(Math.random()*(e-r+1))}function q_(r,e){return r+Math.random()*(e-r)}function Y_(r){return r*(.5-Math.random())}function K_(r){return r!==void 0&&(Eu=r%2147483647),Eu=Eu*16807%2147483647,(Eu-1)/2147483646}function Q_(r){return r*Qo}function Z_(r){return r*Ol}function rf(r){return(r&r-1)==0&&r!==0}function $g(r){return Math.pow(2,Math.ceil(Math.log(r)/Math.LN2))}function ey(r){return Math.pow(2,Math.floor(Math.log(r)/Math.LN2))}function $_(r,e,t,n,i){let s=Math.cos,o=Math.sin,a=s(t/2),l=o(t/2),c=s((e+n)/2),u=o((e+n)/2),h=s((e-n)/2),d=o((e-n)/2),f=s((n-e)/2),p=o((n-e)/2);switch(i){case"XYX":r.set(a*u,l*h,l*d,a*c);break;case"YZY":r.set(l*d,a*u,l*h,a*c);break;case"ZXZ":r.set(l*h,l*d,a*u,a*c);break;case"XZX":r.set(a*u,l*p,l*f,a*c);break;case"YXY":r.set(l*f,a*u,l*p,a*c);break;case"ZYZ":r.set(l*p,l*f,a*u,a*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}}var Ee=Object.freeze({__proto__:null,DEG2RAD:Qo,RAD2DEG:Ol,generateUUID:fi,clamp:Ln,euclideanModulo:nf,mapLinear:k_,inverseLerp:V_,lerp:Fl,damp:H_,pingpong:j_,smoothstep:W_,smootherstep:J_,randInt:X_,randFloat:q_,randFloatSpread:Y_,seededRandom:K_,degToRad:Q_,radToDeg:Z_,isPowerOfTwo:rf,ceilPowerOfTwo:$g,floorPowerOfTwo:ey,setQuaternionFromProperEuler:$_}),O=class{constructor(e=0,t=0){this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e,t){return t!==void 0?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this)}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e,t){return t!==void 0?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this)}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){let t=this.x,n=this.y,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6],this.y=i[1]*t+i[4]*n+i[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t,n){return n!==void 0&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let n=Math.cos(t),i=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*n-o*i+e.x,this.y=s*i+o*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}};O.prototype.isVector2=!0;var Dt=class{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}set(e,t,n,i,s,o,a,l,c){let u=this.elements;return u[0]=e,u[1]=i,u[2]=a,u[3]=t,u[4]=s,u[5]=l,u[6]=n,u[7]=o,u[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,i=t.elements,s=this.elements,o=n[0],a=n[3],l=n[6],c=n[1],u=n[4],h=n[7],d=n[2],f=n[5],p=n[8],m=i[0],v=i[3],g=i[6],y=i[1],x=i[4],b=i[7],w=i[2],_=i[5],S=i[8];return s[0]=o*m+a*y+l*w,s[3]=o*v+a*x+l*_,s[6]=o*g+a*b+l*S,s[1]=c*m+u*y+h*w,s[4]=c*v+u*x+h*_,s[7]=c*g+u*b+h*S,s[2]=d*m+f*y+p*w,s[5]=d*v+f*x+p*_,s[8]=d*g+f*b+p*S,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],l=e[6],c=e[7],u=e[8];return t*o*u-t*a*c-n*s*u+n*a*l+i*s*c-i*o*l}invert(){let e=this.elements,t=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],l=e[6],c=e[7],u=e[8],h=u*o-a*c,d=a*l-u*s,f=c*s-o*l,p=t*h+n*d+i*f;if(p===0)return this.set(0,0,0,0,0,0,0,0,0);let m=1/p;return e[0]=h*m,e[1]=(i*c-u*n)*m,e[2]=(a*n-i*o)*m,e[3]=d*m,e[4]=(u*t-i*l)*m,e[5]=(i*s-a*t)*m,e[6]=f*m,e[7]=(n*l-c*t)*m,e[8]=(o*t-n*s)*m,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,i,s,o,a){let l=Math.cos(s),c=Math.sin(s);return this.set(n*l,n*c,-n*(l*o+c*a)+o+e,-i*c,i*l,-i*(-c*o+l*a)+a+t,0,0,1),this}scale(e,t){let n=this.elements;return n[0]*=e,n[3]*=e,n[6]*=e,n[1]*=t,n[4]*=t,n[7]*=t,this}rotate(e){let t=Math.cos(e),n=Math.sin(e),i=this.elements,s=i[0],o=i[3],a=i[6],l=i[1],c=i[4],u=i[7];return i[0]=t*s+n*l,i[3]=t*o+n*c,i[6]=t*a+n*u,i[1]=-n*s+t*l,i[4]=-n*o+t*c,i[7]=-n*a+t*u,this}translate(e,t){let n=this.elements;return n[0]+=e*n[2],n[3]+=e*n[5],n[6]+=e*n[8],n[1]+=t*n[2],n[4]+=t*n[5],n[7]+=t*n[8],this}equals(e){let t=this.elements,n=e.elements;for(let i=0;i<9;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return new this.constructor().fromArray(this.elements)}};Dt.prototype.isMatrix3=!0;var Zo,Zs=class{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement=="undefined")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{Zo===void 0&&(Zo=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),Zo.width=e.width,Zo.height=e.height;let n=Zo.getContext("2d");e instanceof ImageData?n.putImageData(e,0,0):n.drawImage(e,0,0,e.width,e.height),t=Zo}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}},e1=0,xt=class extends cn{constructor(e=xt.DEFAULT_IMAGE,t=xt.DEFAULT_MAPPING,n=Zt,i=Zt,s=$e,o=Ai,a=zt,l=At,c=1,u=ln){super();Object.defineProperty(this,"id",{value:e1++}),this.uuid=fi(),this.name="",this.image=e,this.mipmaps=[],this.mapping=t,this.wrapS=n,this.wrapT=i,this.magFilter=s,this.minFilter=o,this.anisotropy=c,this.format=a,this.internalFormat=null,this.type=l,this.offset=new O(0,0),this.repeat=new O(1,1),this.center=new O(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Dt,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=u,this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.image=e.image,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.encoding=e.encoding,this}toJSON(e){let t=e===void 0||typeof e=="string";if(!t&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];let n={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(this.image!==void 0){let i=this.image;if(i.uuid===void 0&&(i.uuid=fi()),!t&&e.images[i.uuid]===void 0){let s;if(Array.isArray(i)){s=[];for(let o=0,a=i.length;o1)switch(this.wrapS){case di:e.x=e.x-Math.floor(e.x);break;case Zt:e.x=e.x<0?0:1;break;case qr:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case di:e.y=e.y-Math.floor(e.y);break;case Zt:e.y=e.y<0?0:1;break;case qr:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&this.version++}};xt.DEFAULT_IMAGE=void 0;xt.DEFAULT_MAPPING=Kd;xt.prototype.isTexture=!0;function sf(r){return typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&r instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap?Zs.getDataURL(r):r.data?{data:Array.prototype.slice.call(r.data),width:r.width,height:r.height,type:r.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}var Qe=class{constructor(e=0,t=0,n=0,i=1){this.x=e,this.y=t,this.z=n,this.w=i}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,i){return this.x=e,this.y=t,this.z=n,this.w=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e,t){return t!==void 0?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this)}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e,t){return t!==void 0?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this)}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){let t=this.x,n=this.y,i=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*n+o[8]*i+o[12]*s,this.y=o[1]*t+o[5]*n+o[9]*i+o[13]*s,this.z=o[2]*t+o[6]*n+o[10]*i+o[14]*s,this.w=o[3]*t+o[7]*n+o[11]*i+o[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,i,s,o=.01,a=.1,l=e.elements,c=l[0],u=l[4],h=l[8],d=l[1],f=l[5],p=l[9],m=l[2],v=l[6],g=l[10];if(Math.abs(u-d)b&&x>w?xw?b=0?1:-1,x=1-g*g;if(x>Number.EPSILON){let w=Math.sqrt(x),_=Math.atan2(w,g*y);v=Math.sin(v*_)/w,a=Math.sin(a*_)/w}let b=a*y;if(l=l*v+d*b,c=c*v+f*b,u=u*v+p*b,h=h*v+m*b,v===1-a){let w=1/Math.sqrt(l*l+c*c+u*u+h*h);l*=w,c*=w,u*=w,h*=w}}e[t]=l,e[t+1]=c,e[t+2]=u,e[t+3]=h}static multiplyQuaternionsFlat(e,t,n,i,s,o){let a=n[i],l=n[i+1],c=n[i+2],u=n[i+3],h=s[o],d=s[o+1],f=s[o+2],p=s[o+3];return e[t]=a*p+u*h+l*f-c*d,e[t+1]=l*p+u*d+c*h-a*f,e[t+2]=c*p+u*f+a*d-l*h,e[t+3]=u*p-a*h-l*d-c*f,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,i){return this._x=e,this._y=t,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t){if(!(e&&e.isEuler))throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");let n=e._x,i=e._y,s=e._z,o=e._order,a=Math.cos,l=Math.sin,c=a(n/2),u=a(i/2),h=a(s/2),d=l(n/2),f=l(i/2),p=l(s/2);switch(o){case"XYZ":this._x=d*u*h+c*f*p,this._y=c*f*h-d*u*p,this._z=c*u*p+d*f*h,this._w=c*u*h-d*f*p;break;case"YXZ":this._x=d*u*h+c*f*p,this._y=c*f*h-d*u*p,this._z=c*u*p-d*f*h,this._w=c*u*h+d*f*p;break;case"ZXY":this._x=d*u*h-c*f*p,this._y=c*f*h+d*u*p,this._z=c*u*p+d*f*h,this._w=c*u*h-d*f*p;break;case"ZYX":this._x=d*u*h-c*f*p,this._y=c*f*h+d*u*p,this._z=c*u*p-d*f*h,this._w=c*u*h+d*f*p;break;case"YZX":this._x=d*u*h+c*f*p,this._y=c*f*h+d*u*p,this._z=c*u*p-d*f*h,this._w=c*u*h-d*f*p;break;case"XZY":this._x=d*u*h-c*f*p,this._y=c*f*h-d*u*p,this._z=c*u*p+d*f*h,this._w=c*u*h+d*f*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t!==!1&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let n=t/2,i=Math.sin(n);return this._x=e.x*i,this._y=e.y*i,this._z=e.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,n=t[0],i=t[4],s=t[8],o=t[1],a=t[5],l=t[9],c=t[2],u=t[6],h=t[10],d=n+a+h;if(d>0){let f=.5/Math.sqrt(d+1);this._w=.25/f,this._x=(u-l)*f,this._y=(s-c)*f,this._z=(o-i)*f}else if(n>a&&n>h){let f=2*Math.sqrt(1+n-a-h);this._w=(u-l)/f,this._x=.25*f,this._y=(i+o)/f,this._z=(s+c)/f}else if(a>h){let f=2*Math.sqrt(1+a-n-h);this._w=(s-c)/f,this._x=(i+o)/f,this._y=.25*f,this._z=(l+u)/f}else{let f=2*Math.sqrt(1+h-n-a);this._w=(o-i)/f,this._x=(s+c)/f,this._y=(l+u)/f,this._z=.25*f}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return nMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Ln(this.dot(e),-1,1)))}rotateTowards(e,t){let n=this.angleTo(e);if(n===0)return this;let i=Math.min(1,t/n);return this.slerp(e,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e,t){return t!==void 0?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(e,t)):this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let n=e._x,i=e._y,s=e._z,o=e._w,a=t._x,l=t._y,c=t._z,u=t._w;return this._x=n*u+o*a+i*c-s*l,this._y=i*u+o*l+s*a-n*c,this._z=s*u+o*c+n*l-i*a,this._w=o*u-n*a-i*l-s*c,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);let n=this._x,i=this._y,s=this._z,o=this._w,a=o*e._w+n*e._x+i*e._y+s*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=n,this._y=i,this._z=s,this;let l=1-a*a;if(l<=Number.EPSILON){let f=1-t;return this._w=f*o+t*this._w,this._x=f*n+t*this._x,this._y=f*i+t*this._y,this._z=f*s+t*this._z,this.normalize(),this._onChangeCallback(),this}let c=Math.sqrt(l),u=Math.atan2(c,a),h=Math.sin((1-t)*u)/c,d=Math.sin(t*u)/c;return this._w=o*h+this._w*d,this._x=n*h+this._x*d,this._y=i*h+this._y*d,this._z=s*h+this._z*d,this._onChangeCallback(),this}slerpQuaternions(e,t,n){this.copy(e).slerp(t,n)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}};Tt.prototype.isQuaternion=!0;var M=class{constructor(e=0,t=0,n=0){this.x=e,this.y=t,this.z=n}set(e,t,n){return n===void 0&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e,t){return t!==void 0?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this)}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e,t){return t!==void 0?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this)}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e,t){return t!==void 0?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(e,t)):(this.x*=e.x,this.y*=e.y,this.z*=e.z,this)}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return e&&e.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(ny.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(ny.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,n=this.y,i=this.z,s=e.elements;return this.x=s[0]*t+s[3]*n+s[6]*i,this.y=s[1]*t+s[4]*n+s[7]*i,this.z=s[2]*t+s[5]*n+s[8]*i,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,n=this.y,i=this.z,s=e.elements,o=1/(s[3]*t+s[7]*n+s[11]*i+s[15]);return this.x=(s[0]*t+s[4]*n+s[8]*i+s[12])*o,this.y=(s[1]*t+s[5]*n+s[9]*i+s[13])*o,this.z=(s[2]*t+s[6]*n+s[10]*i+s[14])*o,this}applyQuaternion(e){let t=this.x,n=this.y,i=this.z,s=e.x,o=e.y,a=e.z,l=e.w,c=l*t+o*i-a*n,u=l*n+a*t-s*i,h=l*i+s*n-o*t,d=-s*t-o*n-a*i;return this.x=c*l+d*-s+u*-a-h*-o,this.y=u*l+d*-o+h*-s-c*-a,this.z=h*l+d*-a+c*-o-u*-s,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,n=this.y,i=this.z,s=e.elements;return this.x=s[0]*t+s[4]*n+s[8]*i,this.y=s[1]*t+s[5]*n+s[9]*i,this.z=s[2]*t+s[6]*n+s[10]*i,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e,t){return t!==void 0?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(e,t)):this.crossVectors(this,e)}crossVectors(e,t){let n=e.x,i=e.y,s=e.z,o=t.x,a=t.y,l=t.z;return this.x=i*l-s*a,this.y=s*o-n*l,this.z=n*a-i*o,this}projectOnVector(e){let t=e.lengthSq();if(t===0)return this.set(0,0,0);let n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return of.copy(this).projectOnVector(e),this.sub(of)}reflect(e){return this.sub(of.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let n=this.dot(e)/t;return Math.acos(Ln(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y,i=this.z-e.z;return t*t+n*n+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){let i=Math.sin(t)*e;return this.x=i*Math.sin(n),this.y=Math.cos(t)*e,this.z=i*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),i=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=i,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t,n){return n!==void 0&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}};M.prototype.isVector3=!0;var of=new M,ny=new Tt,tn=class{constructor(e=new M(1/0,1/0,1/0),t=new M(-1/0,-1/0,-1/0)){this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){let t=1/0,n=1/0,i=1/0,s=-1/0,o=-1/0,a=-1/0;for(let l=0,c=e.length;ls&&(s=u),h>o&&(o=h),d>a&&(a=d)}return this.min.set(t,n,i),this.max.set(s,o,a),this}setFromBufferAttribute(e){let t=1/0,n=1/0,i=1/0,s=-1/0,o=-1/0,a=-1/0;for(let l=0,c=e.count;ls&&(s=u),h>o&&(o=h),d>a&&(a=d)}return this.min.set(t,n,i),this.max.set(s,o,a),this}setFromPoints(e){this.makeEmpty();for(let t=0,n=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,zl),zl.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Gl),Nu.subVectors(this.max,Gl),$o.subVectors(e.a,Gl),ea.subVectors(e.b,Gl),ta.subVectors(e.c,Gl),$r.subVectors(ea,$o),es.subVectors(ta,ea),$s.subVectors($o,ta);let t=[0,-$r.z,$r.y,0,-es.z,es.y,0,-$s.z,$s.y,$r.z,0,-$r.x,es.z,0,-es.x,$s.z,0,-$s.x,-$r.y,$r.x,0,-es.y,es.x,0,-$s.y,$s.x,0];return!lf(t,$o,ea,ta,Nu)||(t=[1,0,0,0,1,0,0,0,1],!lf(t,$o,ea,ta,Nu))?!1:(Cu.crossVectors($r,es),t=[Cu.x,Cu.y,Cu.z],lf(t,$o,ea,ta,Nu))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return zl.copy(e).clamp(this.min,this.max).sub(e).length()}getBoundingSphere(e){return this.getCenter(e.center),e.radius=this.getSize(zl).length()*.5,e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Nr[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Nr[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Nr[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Nr[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Nr[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Nr[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Nr[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Nr[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Nr),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}};tn.prototype.isBox3=!0;var Nr=[new M,new M,new M,new M,new M,new M,new M,new M],zl=new M,af=new tn,$o=new M,ea=new M,ta=new M,$r=new M,es=new M,$s=new M,Gl=new M,Nu=new M,Cu=new M,eo=new M;function lf(r,e,t,n,i){for(let s=0,o=r.length-3;s<=o;s+=3){eo.fromArray(r,s);let a=i.x*Math.abs(eo.x)+i.y*Math.abs(eo.y)+i.z*Math.abs(eo.z),l=e.dot(eo),c=t.dot(eo),u=n.dot(eo);if(Math.max(-Math.max(l,c,u),Math.min(l,c,u))>a)return!1}return!0}var t1=new tn,iy=new M,cf=new M,uf=new M,ti=class{constructor(e=new M,t=-1){this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){let n=this.center;t!==void 0?n.copy(t):t1.setFromPoints(e).getCenter(n);let i=0;for(let s=0,o=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){uf.subVectors(e,this.center);let t=uf.lengthSq();if(t>this.radius*this.radius){let n=Math.sqrt(t),i=(n-this.radius)*.5;this.center.add(uf.multiplyScalar(i/n)),this.radius+=i}return this}union(e){return cf.subVectors(e.center,this.center).normalize().multiplyScalar(e.radius),this.expandByPoint(iy.copy(e.center).add(cf)),this.expandByPoint(iy.copy(e.center).sub(cf)),this}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}},Cr=new M,hf=new M,Lu=new M,ts=new M,df=new M,Iu=new M,ff=new M,or=class{constructor(e=new M,t=new M(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.direction).multiplyScalar(e).add(this.origin)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Cr)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=Cr.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Cr.copy(this.direction).multiplyScalar(t).add(this.origin),Cr.distanceToSquared(e))}distanceSqToSegment(e,t,n,i){hf.copy(e).add(t).multiplyScalar(.5),Lu.copy(t).sub(e).normalize(),ts.copy(this.origin).sub(hf);let s=e.distanceTo(t)*.5,o=-this.direction.dot(Lu),a=ts.dot(this.direction),l=-ts.dot(Lu),c=ts.lengthSq(),u=Math.abs(1-o*o),h,d,f,p;if(u>0)if(h=o*l-a,d=o*a-l,p=s*u,h>=0)if(d>=-p)if(d<=p){let m=1/u;h*=m,d*=m,f=h*(h+o*d+2*a)+d*(o*h+d+2*l)+c}else d=s,h=Math.max(0,-(o*d+a)),f=-h*h+d*(d+2*l)+c;else d=-s,h=Math.max(0,-(o*d+a)),f=-h*h+d*(d+2*l)+c;else d<=-p?(h=Math.max(0,-(-o*s+a)),d=h>0?-s:Math.min(Math.max(-s,-l),s),f=-h*h+d*(d+2*l)+c):d<=p?(h=0,d=Math.min(Math.max(-s,-l),s),f=d*(d+2*l)+c):(h=Math.max(0,-(o*s+a)),d=h>0?s:Math.min(Math.max(-s,-l),s),f=-h*h+d*(d+2*l)+c);else d=o>0?-s:s,h=Math.max(0,-(o*d+a)),f=-h*h+d*(d+2*l)+c;return n&&n.copy(this.direction).multiplyScalar(h).add(this.origin),i&&i.copy(Lu).multiplyScalar(d).add(hf),f}intersectSphere(e,t){Cr.subVectors(e.center,this.origin);let n=Cr.dot(this.direction),i=Cr.dot(Cr)-n*n,s=e.radius*e.radius;if(i>s)return null;let o=Math.sqrt(s-i),a=n-o,l=n+o;return a<0&&l<0?null:a<0?this.at(l,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;let n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){let n=this.distanceToPlane(e);return n===null?null:this.at(n,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,i,s,o,a,l,c=1/this.direction.x,u=1/this.direction.y,h=1/this.direction.z,d=this.origin;return c>=0?(n=(e.min.x-d.x)*c,i=(e.max.x-d.x)*c):(n=(e.max.x-d.x)*c,i=(e.min.x-d.x)*c),u>=0?(s=(e.min.y-d.y)*u,o=(e.max.y-d.y)*u):(s=(e.max.y-d.y)*u,o=(e.min.y-d.y)*u),n>o||s>i||((s>n||n!==n)&&(n=s),(o=0?(a=(e.min.z-d.z)*h,l=(e.max.z-d.z)*h):(a=(e.max.z-d.z)*h,l=(e.min.z-d.z)*h),n>l||a>i)||((a>n||n!==n)&&(n=a),(l=0?n:i,t)}intersectsBox(e){return this.intersectBox(e,Cr)!==null}intersectTriangle(e,t,n,i,s){df.subVectors(t,e),Iu.subVectors(n,e),ff.crossVectors(df,Iu);let o=this.direction.dot(ff),a;if(o>0){if(i)return null;a=1}else if(o<0)a=-1,o=-o;else return null;ts.subVectors(this.origin,e);let l=a*this.direction.dot(Iu.crossVectors(ts,Iu));if(l<0)return null;let c=a*this.direction.dot(df.cross(ts));if(c<0||l+c>o)return null;let u=-a*ts.dot(ff);return u<0?null:this.at(u/o,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},me=class{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}set(e,t,n,i,s,o,a,l,c,u,h,d,f,p,m,v){let g=this.elements;return g[0]=e,g[4]=t,g[8]=n,g[12]=i,g[1]=s,g[5]=o,g[9]=a,g[13]=l,g[2]=c,g[6]=u,g[10]=h,g[14]=d,g[3]=f,g[7]=p,g[11]=m,g[15]=v,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new me().fromArray(this.elements)}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this}copyPosition(e){let t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this}setFromMatrix3(e){let t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this}extractRotation(e){let t=this.elements,n=e.elements,i=1/na.setFromMatrixColumn(e,0).length(),s=1/na.setFromMatrixColumn(e,1).length(),o=1/na.setFromMatrixColumn(e,2).length();return t[0]=n[0]*i,t[1]=n[1]*i,t[2]=n[2]*i,t[3]=0,t[4]=n[4]*s,t[5]=n[5]*s,t[6]=n[6]*s,t[7]=0,t[8]=n[8]*o,t[9]=n[9]*o,t[10]=n[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){e&&e.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");let t=this.elements,n=e.x,i=e.y,s=e.z,o=Math.cos(n),a=Math.sin(n),l=Math.cos(i),c=Math.sin(i),u=Math.cos(s),h=Math.sin(s);if(e.order==="XYZ"){let d=o*u,f=o*h,p=a*u,m=a*h;t[0]=l*u,t[4]=-l*h,t[8]=c,t[1]=f+p*c,t[5]=d-m*c,t[9]=-a*l,t[2]=m-d*c,t[6]=p+f*c,t[10]=o*l}else if(e.order==="YXZ"){let d=l*u,f=l*h,p=c*u,m=c*h;t[0]=d+m*a,t[4]=p*a-f,t[8]=o*c,t[1]=o*h,t[5]=o*u,t[9]=-a,t[2]=f*a-p,t[6]=m+d*a,t[10]=o*l}else if(e.order==="ZXY"){let d=l*u,f=l*h,p=c*u,m=c*h;t[0]=d-m*a,t[4]=-o*h,t[8]=p+f*a,t[1]=f+p*a,t[5]=o*u,t[9]=m-d*a,t[2]=-o*c,t[6]=a,t[10]=o*l}else if(e.order==="ZYX"){let d=o*u,f=o*h,p=a*u,m=a*h;t[0]=l*u,t[4]=p*c-f,t[8]=d*c+m,t[1]=l*h,t[5]=m*c+d,t[9]=f*c-p,t[2]=-c,t[6]=a*l,t[10]=o*l}else if(e.order==="YZX"){let d=o*l,f=o*c,p=a*l,m=a*c;t[0]=l*u,t[4]=m-d*h,t[8]=p*h+f,t[1]=h,t[5]=o*u,t[9]=-a*u,t[2]=-c*u,t[6]=f*h+p,t[10]=d-m*h}else if(e.order==="XZY"){let d=o*l,f=o*c,p=a*l,m=a*c;t[0]=l*u,t[4]=-h,t[8]=c*u,t[1]=d*h+m,t[5]=o*u,t[9]=f*h-p,t[2]=p*h-f,t[6]=a*u,t[10]=m*h+d}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(n1,e,i1)}lookAt(e,t,n){let i=this.elements;return pi.subVectors(e,t),pi.lengthSq()===0&&(pi.z=1),pi.normalize(),ns.crossVectors(n,pi),ns.lengthSq()===0&&(Math.abs(n.z)===1?pi.x+=1e-4:pi.z+=1e-4,pi.normalize(),ns.crossVectors(n,pi)),ns.normalize(),Pu.crossVectors(pi,ns),i[0]=ns.x,i[4]=Pu.x,i[8]=pi.x,i[1]=ns.y,i[5]=Pu.y,i[9]=pi.y,i[2]=ns.z,i[6]=Pu.z,i[10]=pi.z,this}multiply(e,t){return t!==void 0?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(e,t)):this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,i=t.elements,s=this.elements,o=n[0],a=n[4],l=n[8],c=n[12],u=n[1],h=n[5],d=n[9],f=n[13],p=n[2],m=n[6],v=n[10],g=n[14],y=n[3],x=n[7],b=n[11],w=n[15],_=i[0],S=i[4],A=i[8],T=i[12],L=i[1],C=i[5],U=i[9],P=i[13],R=i[2],G=i[6],B=i[10],j=i[14],ne=i[3],le=i[7],W=i[11],z=i[15];return s[0]=o*_+a*L+l*R+c*ne,s[4]=o*S+a*C+l*G+c*le,s[8]=o*A+a*U+l*B+c*W,s[12]=o*T+a*P+l*j+c*z,s[1]=u*_+h*L+d*R+f*ne,s[5]=u*S+h*C+d*G+f*le,s[9]=u*A+h*U+d*B+f*W,s[13]=u*T+h*P+d*j+f*z,s[2]=p*_+m*L+v*R+g*ne,s[6]=p*S+m*C+v*G+g*le,s[10]=p*A+m*U+v*B+g*W,s[14]=p*T+m*P+v*j+g*z,s[3]=y*_+x*L+b*R+w*ne,s[7]=y*S+x*C+b*G+w*le,s[11]=y*A+x*U+b*B+w*W,s[15]=y*T+x*P+b*j+w*z,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[4],i=e[8],s=e[12],o=e[1],a=e[5],l=e[9],c=e[13],u=e[2],h=e[6],d=e[10],f=e[14],p=e[3],m=e[7],v=e[11],g=e[15];return p*(+s*l*h-i*c*h-s*a*d+n*c*d+i*a*f-n*l*f)+m*(+t*l*f-t*c*d+s*o*d-i*o*f+i*c*u-s*l*u)+v*(+t*c*h-t*a*f-s*o*h+n*o*f+s*a*u-n*c*u)+g*(-i*a*u-t*l*h+t*a*d+i*o*h-n*o*d+n*l*u)}transpose(){let e=this.elements,t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,n){let i=this.elements;return e.isVector3?(i[12]=e.x,i[13]=e.y,i[14]=e.z):(i[12]=e,i[13]=t,i[14]=n),this}invert(){let e=this.elements,t=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],l=e[6],c=e[7],u=e[8],h=e[9],d=e[10],f=e[11],p=e[12],m=e[13],v=e[14],g=e[15],y=h*v*c-m*d*c+m*l*f-a*v*f-h*l*g+a*d*g,x=p*d*c-u*v*c-p*l*f+o*v*f+u*l*g-o*d*g,b=u*m*c-p*h*c+p*a*f-o*m*f-u*a*g+o*h*g,w=p*h*l-u*m*l-p*a*d+o*m*d+u*a*v-o*h*v,_=t*y+n*x+i*b+s*w;if(_===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let S=1/_;return e[0]=y*S,e[1]=(m*d*s-h*v*s-m*i*f+n*v*f+h*i*g-n*d*g)*S,e[2]=(a*v*s-m*l*s+m*i*c-n*v*c-a*i*g+n*l*g)*S,e[3]=(h*l*s-a*d*s-h*i*c+n*d*c+a*i*f-n*l*f)*S,e[4]=x*S,e[5]=(u*v*s-p*d*s+p*i*f-t*v*f-u*i*g+t*d*g)*S,e[6]=(p*l*s-o*v*s-p*i*c+t*v*c+o*i*g-t*l*g)*S,e[7]=(o*d*s-u*l*s+u*i*c-t*d*c-o*i*f+t*l*f)*S,e[8]=b*S,e[9]=(p*h*s-u*m*s-p*n*f+t*m*f+u*n*g-t*h*g)*S,e[10]=(o*m*s-p*a*s+p*n*c-t*m*c-o*n*g+t*a*g)*S,e[11]=(u*a*s-o*h*s-u*n*c+t*h*c+o*n*f-t*a*f)*S,e[12]=w*S,e[13]=(u*m*i-p*h*i+p*n*d-t*m*d-u*n*v+t*h*v)*S,e[14]=(p*a*i-o*m*i-p*n*l+t*m*l+o*n*v-t*a*v)*S,e[15]=(o*h*i-u*a*i+u*n*l-t*h*l-o*n*d+t*a*d)*S,this}scale(e){let t=this.elements,n=e.x,i=e.y,s=e.z;return t[0]*=n,t[4]*=i,t[8]*=s,t[1]*=n,t[5]*=i,t[9]*=s,t[2]*=n,t[6]*=i,t[10]*=s,t[3]*=n,t[7]*=i,t[11]*=s,this}getMaxScaleOnAxis(){let e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],n=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],i=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,i))}makeTranslation(e,t,n){return this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this}makeRotationX(e){let t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this}makeRotationY(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this}makeRotationZ(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){let n=Math.cos(t),i=Math.sin(t),s=1-n,o=e.x,a=e.y,l=e.z,c=s*o,u=s*a;return this.set(c*o+n,c*a-i*l,c*l+i*a,0,c*a+i*l,u*a+n,u*l-i*o,0,c*l-i*a,u*l+i*o,s*l*l+n,0,0,0,0,1),this}makeScale(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this}makeShear(e,t,n,i,s,o){return this.set(1,n,s,0,e,1,o,0,t,i,1,0,0,0,0,1),this}compose(e,t,n){let i=this.elements,s=t._x,o=t._y,a=t._z,l=t._w,c=s+s,u=o+o,h=a+a,d=s*c,f=s*u,p=s*h,m=o*u,v=o*h,g=a*h,y=l*c,x=l*u,b=l*h,w=n.x,_=n.y,S=n.z;return i[0]=(1-(m+g))*w,i[1]=(f+b)*w,i[2]=(p-x)*w,i[3]=0,i[4]=(f-b)*_,i[5]=(1-(d+g))*_,i[6]=(v+y)*_,i[7]=0,i[8]=(p+x)*S,i[9]=(v-y)*S,i[10]=(1-(d+m))*S,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,this}decompose(e,t,n){let i=this.elements,s=na.set(i[0],i[1],i[2]).length(),o=na.set(i[4],i[5],i[6]).length(),a=na.set(i[8],i[9],i[10]).length();this.determinant()<0&&(s=-s),e.x=i[12],e.y=i[13],e.z=i[14],zi.copy(this);let c=1/s,u=1/o,h=1/a;return zi.elements[0]*=c,zi.elements[1]*=c,zi.elements[2]*=c,zi.elements[4]*=u,zi.elements[5]*=u,zi.elements[6]*=u,zi.elements[8]*=h,zi.elements[9]*=h,zi.elements[10]*=h,t.setFromRotationMatrix(zi),n.x=s,n.y=o,n.z=a,this}makePerspective(e,t,n,i,s,o){o===void 0&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");let a=this.elements,l=2*s/(t-e),c=2*s/(n-i),u=(t+e)/(t-e),h=(n+i)/(n-i),d=-(o+s)/(o-s),f=-2*o*s/(o-s);return a[0]=l,a[4]=0,a[8]=u,a[12]=0,a[1]=0,a[5]=c,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=d,a[14]=f,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(e,t,n,i,s,o){let a=this.elements,l=1/(t-e),c=1/(n-i),u=1/(o-s),h=(t+e)*l,d=(n+i)*c,f=(o+s)*u;return a[0]=2*l,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*c,a[9]=0,a[13]=-d,a[2]=0,a[6]=0,a[10]=-2*u,a[14]=-f,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(e){let t=this.elements,n=e.elements;for(let i=0;i<16;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e}};me.prototype.isMatrix4=!0;var na=new M,zi=new me,n1=new M(0,0,0),i1=new M(1,1,1),ns=new M,Pu=new M,pi=new M,ry=new me,sy=new Tt,On=class{constructor(e=0,t=0,n=0,i=On.DefaultOrder){this._x=e,this._y=t,this._z=n,this._order=i}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,n,i=this._order){return this._x=e,this._y=t,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,n=!0){let i=e.elements,s=i[0],o=i[4],a=i[8],l=i[1],c=i[5],u=i[9],h=i[2],d=i[6],f=i[10];switch(t){case"XYZ":this._y=Math.asin(Ln(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-u,f),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(d,c),this._z=0);break;case"YXZ":this._x=Math.asin(-Ln(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(a,f),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-h,s),this._z=0);break;case"ZXY":this._x=Math.asin(Ln(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-h,f),this._z=Math.atan2(-o,c)):(this._y=0,this._z=Math.atan2(l,s));break;case"ZYX":this._y=Math.asin(-Ln(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(d,f),this._z=Math.atan2(l,s)):(this._x=0,this._z=Math.atan2(-o,c));break;case"YZX":this._z=Math.asin(Ln(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-u,c),this._y=Math.atan2(-h,s)):(this._x=0,this._y=Math.atan2(a,f));break;case"XZY":this._z=Math.asin(-Ln(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(d,c),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-u,f),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,n===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return ry.makeRotationFromQuaternion(e),this.setFromRotationMatrix(ry,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return sy.setFromEuler(this),this.setFromQuaternion(sy,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}toVector3(e){return e?e.set(this._x,this._y,this._z):new M(this._x,this._y,this._z)}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}};On.prototype.isEuler=!0;On.DefaultOrder="XYZ";On.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];var pf=class{constructor(){this.mask=1|0}set(e){this.mask=1<1){for(let t=0;t1){for(let n=0;n0){i.children=[];for(let a=0;a0){i.animations=[];for(let a=0;a0&&(n.geometries=a),l.length>0&&(n.materials=l),c.length>0&&(n.textures=c),u.length>0&&(n.images=u),h.length>0&&(n.shapes=h),d.length>0&&(n.skeletons=d),f.length>0&&(n.animations=f)}return n.object=i,n;function o(a){let l=[];for(let c in a){let u=a[c];delete u.metadata,l.push(u)}return l}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let n=0;n0?i.multiplyScalar(1/Math.sqrt(s)):i.set(0,0,0)}static getBarycoord(e,t,n,i,s){Gi.subVectors(i,t),Ir.subVectors(n,t),mf.subVectors(e,t);let o=Gi.dot(Gi),a=Gi.dot(Ir),l=Gi.dot(mf),c=Ir.dot(Ir),u=Ir.dot(mf),h=o*c-a*a;if(h===0)return s.set(-2,-1,-1);let d=1/h,f=(c*l-a*u)*d,p=(o*u-a*l)*d;return s.set(1-f-p,p,f)}static containsPoint(e,t,n,i){return this.getBarycoord(e,t,n,i,Pr),Pr.x>=0&&Pr.y>=0&&Pr.x+Pr.y<=1}static getUV(e,t,n,i,s,o,a,l){return this.getBarycoord(e,t,n,i,Pr),l.set(0,0),l.addScaledVector(s,Pr.x),l.addScaledVector(o,Pr.y),l.addScaledVector(a,Pr.z),l}static isFrontFacing(e,t,n,i){return Gi.subVectors(n,t),Ir.subVectors(e,t),Gi.cross(Ir).dot(i)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,i){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[i]),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return Gi.subVectors(this.c,this.b),Ir.subVectors(this.a,this.b),Gi.cross(Ir).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return qt.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return qt.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,n,i,s){return qt.getUV(e,this.a,this.b,this.c,t,n,i,s)}containsPoint(e){return qt.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return qt.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let n=this.a,i=this.b,s=this.c,o,a;ra.subVectors(i,n),sa.subVectors(s,n),gf.subVectors(e,n);let l=ra.dot(gf),c=sa.dot(gf);if(l<=0&&c<=0)return t.copy(n);yf.subVectors(e,i);let u=ra.dot(yf),h=sa.dot(yf);if(u>=0&&h<=u)return t.copy(i);let d=l*h-u*c;if(d<=0&&l>=0&&u<=0)return o=l/(l-u),t.copy(n).addScaledVector(ra,o);vf.subVectors(e,s);let f=ra.dot(vf),p=sa.dot(vf);if(p>=0&&f<=p)return t.copy(s);let m=f*c-l*p;if(m<=0&&c>=0&&p<=0)return a=c/(c-p),t.copy(n).addScaledVector(sa,a);let v=u*p-f*h;if(v<=0&&h-u>=0&&f-p>=0)return hy.subVectors(s,i),a=(h-u)/(h-u+(f-p)),t.copy(i).addScaledVector(hy,a);let g=1/(v+m+d);return o=m*g,a=d*g,t.copy(n).addScaledVector(ra,o).addScaledVector(sa,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}},l1=0,nn=class extends cn{constructor(){super();Object.defineProperty(this,"id",{value:l1++}),this.uuid=fi(),this.name="",this.type="Material",this.fog=!0,this.blending=Vs,this.side=Oi,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=Gg,this.blendDst=Ug,this.blendEquation=Vo,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=Yd,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=U_,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=tf,this.stencilZFail=tf,this.stencilZPass=tf,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaTest=0,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0}onBuild(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(let t in e){let n=e[t];if(n===void 0){console.warn("THREE.Material: '"+t+"' parameter is undefined.");continue}if(t==="shading"){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=n===Dg;continue}let i=this[t];if(i===void 0){console.warn("THREE."+this.type+": '"+t+"' is not a property of this material.");continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[t]=n}}toJSON(e){let t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});let n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen&&this.sheen.isColor&&(n.sheen=this.sheen.getHex()),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularTint&&this.specularTint.isColor&&(n.specularTint=this.specularTint.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularTintMap&&this.specularTintMap.isTexture&&(n.specularTintMap=this.specularTintMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationTint!==void 0&&(n.attenuationTint=this.attenuationTint.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==Vs&&(n.blending=this.blending),this.side!==Oi&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaToCoverage===!0&&(n.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.wireframe===!0&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=this.flatShading),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),JSON.stringify(this.userData)!=="{}"&&(n.userData=this.userData);function i(s){let o=[];for(let a in s){let l=s[a];delete l.metadata,o.push(l)}return o}if(t){let s=i(e.textures),o=i(e.images);s.length>0&&(n.textures=s),o.length>0&&(n.images=o)}return n}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.fog=e.fog,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;let t=e.clippingPlanes,n=null;if(t!==null){let i=t.length;n=new Array(i);for(let s=0;s!==i;++s)n[s]=t[s].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}};nn.prototype.isMaterial=!0;var dy={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Ui={h:0,s:0,l:0},Ru={h:0,s:0,l:0};function xf(r,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?r+(e-r)*6*t:t<1/2?e:t<2/3?r+(e-r)*6*(2/3-t):r}function bf(r){return r<.04045?r*.0773993808:Math.pow(r*.9478672986+.0521327014,2.4)}function wf(r){return r<.0031308?r*12.92:1.055*Math.pow(r,.41666)-.055}var fe=class{constructor(e,t,n){return t===void 0&&n===void 0?this.set(e):this.setRGB(e,t,n)}set(e){return e&&e.isColor?this.copy(e):typeof e=="number"?this.setHex(e):typeof e=="string"&&this.setStyle(e),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,this}setRGB(e,t,n){return this.r=e,this.g=t,this.b=n,this}setHSL(e,t,n){if(e=nf(e,1),t=Ln(t,0,1),n=Ln(n,0,1),t===0)this.r=this.g=this.b=n;else{let i=n<=.5?n*(1+t):n+t-n*t,s=2*n-i;this.r=xf(s,i,e+1/3),this.g=xf(s,i,e),this.b=xf(s,i,e-1/3)}return this}setStyle(e){function t(i){i!==void 0&&parseFloat(i)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let n;if(n=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(e)){let i,s=n[1],o=n[2];switch(s){case"rgb":case"rgba":if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return this.r=Math.min(255,parseInt(i[1],10))/255,this.g=Math.min(255,parseInt(i[2],10))/255,this.b=Math.min(255,parseInt(i[3],10))/255,t(i[4]),this;if(i=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return this.r=Math.min(100,parseInt(i[1],10))/100,this.g=Math.min(100,parseInt(i[2],10))/100,this.b=Math.min(100,parseInt(i[3],10))/100,t(i[4]),this;break;case"hsl":case"hsla":if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o)){let a=parseFloat(i[1])/360,l=parseInt(i[2],10)/100,c=parseInt(i[3],10)/100;return t(i[4]),this.setHSL(a,l,c)}break}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(e)){let i=n[1],s=i.length;if(s===3)return this.r=parseInt(i.charAt(0)+i.charAt(0),16)/255,this.g=parseInt(i.charAt(1)+i.charAt(1),16)/255,this.b=parseInt(i.charAt(2)+i.charAt(2),16)/255,this;if(s===6)return this.r=parseInt(i.charAt(0)+i.charAt(1),16)/255,this.g=parseInt(i.charAt(2)+i.charAt(3),16)/255,this.b=parseInt(i.charAt(4)+i.charAt(5),16)/255,this}return e&&e.length>0?this.setColorName(e):this}setColorName(e){let t=dy[e.toLowerCase()];return t!==void 0?this.setHex(t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copyGammaToLinear(e,t=2){return this.r=Math.pow(e.r,t),this.g=Math.pow(e.g,t),this.b=Math.pow(e.b,t),this}copyLinearToGamma(e,t=2){let n=t>0?1/t:1;return this.r=Math.pow(e.r,n),this.g=Math.pow(e.g,n),this.b=Math.pow(e.b,n),this}convertGammaToLinear(e){return this.copyGammaToLinear(this,e),this}convertLinearToGamma(e){return this.copyLinearToGamma(this,e),this}copySRGBToLinear(e){return this.r=bf(e.r),this.g=bf(e.g),this.b=bf(e.b),this}copyLinearToSRGB(e){return this.r=wf(e.r),this.g=wf(e.g),this.b=wf(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return this.r*255<<16^this.g*255<<8^this.b*255<<0}getHexString(){return("000000"+this.getHex().toString(16)).slice(-6)}getHSL(e){let t=this.r,n=this.g,i=this.b,s=Math.max(t,n,i),o=Math.min(t,n,i),a,l,c=(o+s)/2;if(o===s)a=0,l=0;else{let u=s-o;switch(l=c<=.5?u/(s+o):u/(2-s-o),s){case t:a=(n-i)/u+(ne&&(e=r[t]);return e}var c1={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function oa(r,e){return new c1[r](e)}var u1=0,_i=new me,Af=new Ke,aa=new M,mi=new tn,kl=new tn,Mn=new M,we=class extends cn{constructor(){super();Object.defineProperty(this,"id",{value:u1++}),this.uuid=fi(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(e){return Array.isArray(e)?this.index=new(py(e)>65535?is:Mf)(e,1):this.index=e,this}getAttribute(e){return this.attributes[e]}setAttribute(e,t){return this.attributes[e]=t,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return this.attributes[e]!==void 0}addGroup(e,t,n=0){this.groups.push({start:e,count:t,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(e,t){this.drawRange.start=e,this.drawRange.count=t}applyMatrix4(e){let t=this.attributes.position;t!==void 0&&(t.applyMatrix4(e),t.needsUpdate=!0);let n=this.attributes.normal;if(n!==void 0){let s=new Dt().getNormalMatrix(e);n.applyNormalMatrix(s),n.needsUpdate=!0}let i=this.attributes.tangent;return i!==void 0&&(i.transformDirection(e),i.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}applyQuaternion(e){return _i.makeRotationFromQuaternion(e),this.applyMatrix4(_i),this}rotateX(e){return _i.makeRotationX(e),this.applyMatrix4(_i),this}rotateY(e){return _i.makeRotationY(e),this.applyMatrix4(_i),this}rotateZ(e){return _i.makeRotationZ(e),this.applyMatrix4(_i),this}translate(e,t,n){return _i.makeTranslation(e,t,n),this.applyMatrix4(_i),this}scale(e,t,n){return _i.makeScale(e,t,n),this.applyMatrix4(_i),this}lookAt(e){return Af.lookAt(e),Af.updateMatrix(),this.applyMatrix4(Af.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(aa).negate(),this.translate(aa.x,aa.y,aa.z),this}setFromPoints(e){let t=[];for(let n=0,i=e.length;n0&&(e.userData=this.userData),this.parameters!==void 0){let l=this.parameters;for(let c in l)l[c]!==void 0&&(e[c]=l[c]);return e}e.data={attributes:{}};let t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let n=this.attributes;for(let l in n){let c=n[l];e.data.attributes[l]=c.toJSON(e.data)}let i={},s=!1;for(let l in this.morphAttributes){let c=this.morphAttributes[l],u=[];for(let h=0,d=c.length;h0&&(i[l]=u,s=!0)}s&&(e.data.morphAttributes=i,e.data.morphTargetsRelative=this.morphTargetsRelative);let o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));let a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new we().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let n=e.index;n!==null&&this.setIndex(n.clone(t));let i=e.attributes;for(let c in i){let u=i[c];this.setAttribute(c,u.clone(t))}let s=e.morphAttributes;for(let c in s){let u=[],h=s[c];for(let d=0,f=h.length;d0){let i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=i.length;s0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}raycast(e,t){let n=this.geometry,i=this.material,s=this.matrixWorld;if(i===void 0||(n.boundingSphere===null&&n.computeBoundingSphere(),_f.copy(n.boundingSphere),_f.applyMatrix4(s),e.ray.intersectsSphere(_f)===!1)||(my.copy(s).invert(),la.copy(e.ray).applyMatrix4(my),n.boundingBox!==null&&la.intersectsBox(n.boundingBox)===!1))return;let o;if(n.isBufferGeometry){let a=n.index,l=n.attributes.position,c=n.morphAttributes.position,u=n.morphTargetsRelative,h=n.attributes.uv,d=n.attributes.uv2,f=n.groups,p=n.drawRange;if(a!==null)if(Array.isArray(i))for(let m=0,v=f.length;mt.far?null:{distance:c,point:Vu.clone(),object:r}}function Hu(r,e,t,n,i,s,o,a,l,c,u,h){rs.fromBufferAttribute(i,c),ss.fromBufferAttribute(i,u),os.fromBufferAttribute(i,h);let d=r.morphTargetInfluences;if(s&&d){Ou.set(0,0,0),Fu.set(0,0,0),zu.set(0,0,0);for(let p=0,m=s.length;p0?1:-1,u.push(le.x,le.y,le.z),h.push(D/S),h.push(1-W/A),j+=1}}for(let W=0;W0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader;let n={};for(let i in this.extensions)this.extensions[i]===!0&&(n[i]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}};_t.prototype.isShaderMaterial=!0;var Dr=class extends Ke{constructor(){super();this.type="Camera",this.matrixWorldInverse=new me,this.projectionMatrix=new me,this.projectionMatrixInverse=new me}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this}getWorldDirection(e){this.updateWorldMatrix(!0,!1);let t=this.matrixWorld.elements;return e.set(-t[8],-t[9],-t[10]).normalize()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}};Dr.prototype.isCamera=!0;var Vt=class extends Dr{constructor(e=50,t=1,n=.1,i=2e3){super();this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){let t=.5*this.getFilmHeight()/e;this.fov=Ol*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){let e=Math.tan(Qo*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return Ol*2*Math.atan(Math.tan(Qo*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(e,t,n,i,s,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=this.near,t=e*Math.tan(Qo*.5*this.fov)/this.zoom,n=2*t,i=this.aspect*n,s=-.5*i,o=this.view;if(this.view!==null&&this.view.enabled){let l=o.fullWidth,c=o.fullHeight;s+=o.offsetX*i/l,t-=o.offsetY*n/c,i*=o.width/l,n*=o.height/c}let a=this.filmOffset;a!==0&&(s+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+i,t,t-n,e,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}};Vt.prototype.isPerspectiveCamera=!0;var ua=90,ha=1,ju=class extends Ke{constructor(e,t,n){super();if(this.type="CubeCamera",n.isWebGLCubeRenderTarget!==!0){console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");return}this.renderTarget=n;let i=new Vt(ua,ha,e,t);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new M(1,0,0)),this.add(i);let s=new Vt(ua,ha,e,t);s.layers=this.layers,s.up.set(0,-1,0),s.lookAt(new M(-1,0,0)),this.add(s);let o=new Vt(ua,ha,e,t);o.layers=this.layers,o.up.set(0,0,1),o.lookAt(new M(0,1,0)),this.add(o);let a=new Vt(ua,ha,e,t);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new M(0,-1,0)),this.add(a);let l=new Vt(ua,ha,e,t);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new M(0,0,1)),this.add(l);let c=new Vt(ua,ha,e,t);c.layers=this.layers,c.up.set(0,-1,0),c.lookAt(new M(0,0,-1)),this.add(c)}update(e,t){this.parent===null&&this.updateMatrixWorld();let n=this.renderTarget,[i,s,o,a,l,c]=this.children,u=e.xr.enabled,h=e.getRenderTarget();e.xr.enabled=!1;let d=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0),e.render(t,i),e.setRenderTarget(n,1),e.render(t,s),e.setRenderTarget(n,2),e.render(t,o),e.setRenderTarget(n,3),e.render(t,a),e.setRenderTarget(n,4),e.render(t,l),n.texture.generateMipmaps=d,e.setRenderTarget(n,5),e.render(t,c),e.setRenderTarget(h),e.xr.enabled=u}},as=class extends xt{constructor(e,t,n,i,s,o,a,l,c,u){e=e!==void 0?e:[],t=t!==void 0?t:js,a=a!==void 0?a:Nt;super(e,t,n,i,s,o,a,l,c,u);this.flipY=!1}get images(){return this.image}set images(e){this.image=e}};as.prototype.isCubeTexture=!0;var Lf=class extends bt{constructor(e,t,n){Number.isInteger(t)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),t=n);super(e,e,t);t=t||{},this.texture=new as(void 0,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:$e,this.texture._needsFlipEnvMap=!1}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.format=zt,this.texture.encoding=t.encoding,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;let n={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},i=new jn(5,5,5),s=new _t({name:"CubemapFromEquirect",uniforms:ca(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:kt,blending:It});s.uniforms.tEquirect.value=t;let o=new gt(i,s),a=t.minFilter;return t.minFilter===Ai&&(t.minFilter=$e),new ju(1,10,this).update(e,o),t.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,n,i){let s=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,n,i);e.setRenderTarget(s)}};Lf.prototype.isWebGLCubeRenderTarget=!0;var If=new M,p1=new M,m1=new Dt,ni=class{constructor(e=new M(1,0,0),t=0){this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,n,i){return this.normal.set(e,t,n),this.constant=i,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,n){let i=If.subVectors(n,t).cross(p1.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(i,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){let e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(this.normal).multiplyScalar(-this.distanceToPoint(e)).add(e)}intersectLine(e,t){let n=e.delta(If),i=this.normal.dot(n);if(i===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;let s=-(e.start.dot(this.normal)+this.constant)/i;return s<0||s>1?null:t.copy(n).multiplyScalar(s).add(e.start)}intersectsLine(e){let t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){let n=t||m1.getNormalMatrix(e),i=this.coplanarPoint(If).applyMatrix4(e),s=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}};ni.prototype.isPlane=!0;var da=new ti,Wu=new M,Vl=class{constructor(e=new ni,t=new ni,n=new ni,i=new ni,s=new ni,o=new ni){this.planes=[e,t,n,i,s,o]}set(e,t,n,i,s,o){let a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(n),a[3].copy(i),a[4].copy(s),a[5].copy(o),this}copy(e){let t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e){let t=this.planes,n=e.elements,i=n[0],s=n[1],o=n[2],a=n[3],l=n[4],c=n[5],u=n[6],h=n[7],d=n[8],f=n[9],p=n[10],m=n[11],v=n[12],g=n[13],y=n[14],x=n[15];return t[0].setComponents(a-i,h-l,m-d,x-v).normalize(),t[1].setComponents(a+i,h+l,m+d,x+v).normalize(),t[2].setComponents(a+s,h+c,m+f,x+g).normalize(),t[3].setComponents(a-s,h-c,m-f,x-g).normalize(),t[4].setComponents(a-o,h-u,m-p,x-y).normalize(),t[5].setComponents(a+o,h+u,m+p,x+y).normalize(),this}intersectsObject(e){let t=e.geometry;return t.boundingSphere===null&&t.computeBoundingSphere(),da.copy(t.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(da)}intersectsSprite(e){return da.center.set(0,0,0),da.radius=.7071067811865476,da.applyMatrix4(e.matrixWorld),this.intersectsSphere(da)}intersectsSphere(e){let t=this.planes,n=e.center,i=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(n)0?e.max.x:e.min.x,Wu.y=i.normal.y>0?e.max.y:e.min.y,Wu.z=i.normal.z>0?e.max.z:e.min.z,i.distanceToPoint(Wu)<0)return!1}return!0}containsPoint(e){let t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}};function gy(){let r=null,e=!1,t=null,n=null;function i(s,o){t(s,o),n=r.requestAnimationFrame(i)}return{start:function(){e!==!0&&t!==null&&(n=r.requestAnimationFrame(i),e=!0)},stop:function(){r.cancelAnimationFrame(n),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){r=s}}}function g1(r,e){let t=e.isWebGL2,n=new WeakMap;function i(c,u){let h=c.array,d=c.usage,f=r.createBuffer();r.bindBuffer(u,f),r.bufferData(u,h,d),c.onUploadCallback();let p=5126;return h instanceof Float32Array?p=5126:h instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):h instanceof Uint16Array?c.isFloat16BufferAttribute?t?p=5131:console.warn("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2."):p=5123:h instanceof Int16Array?p=5122:h instanceof Uint32Array?p=5125:h instanceof Int32Array?p=5124:h instanceof Int8Array?p=5120:(h instanceof Uint8Array||h instanceof Uint8ClampedArray)&&(p=5121),{buffer:f,type:p,bytesPerElement:h.BYTES_PER_ELEMENT,version:c.version}}function s(c,u,h){let d=u.array,f=u.updateRange;r.bindBuffer(h,c),f.count===-1?r.bufferSubData(h,0,d):(t?r.bufferSubData(h,f.offset*d.BYTES_PER_ELEMENT,d,f.offset,f.count):r.bufferSubData(h,f.offset*d.BYTES_PER_ELEMENT,d.subarray(f.offset,f.offset+f.count)),f.count=-1)}function o(c){return c.isInterleavedBufferAttribute&&(c=c.data),n.get(c)}function a(c){c.isInterleavedBufferAttribute&&(c=c.data);let u=n.get(c);u&&(r.deleteBuffer(u.buffer),n.delete(c))}function l(c,u){if(c.isGLBufferAttribute){let d=n.get(c);(!d||d.version 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; +#else + if( cutoffDistance > 0.0 && decayExponent > 0.0 ) { + return pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent ); + } + return 1.0; +#endif +} +vec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) { + return RECIPROCAL_PI * diffuseColor; +} +vec3 F_Schlick( const in vec3 f0, const in vec3 f90, const in float dotVH ) { + float fresnel = exp2( ( -5.55473 * dotVH - 6.98316 ) * dotVH ); + return ( f90 - f0 ) * fresnel + f0; +} +vec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) { + float fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV ); + vec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0; + return Fr * fresnel + F0; +} +float G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) { + float a2 = pow2( alpha ); + float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + return 1.0 / ( gl * gv ); +} +float G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { + float a2 = pow2( alpha ); + float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + return 0.5 / max( gv + gl, EPSILON ); +} +float D_GGX( const in float alpha, const in float dotNH ) { + float a2 = pow2( alpha ); + float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; + return RECIPROCAL_PI * a2 / pow2( denom ); +} +vec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in vec3 f90, const in float roughness ) { + float alpha = pow2( roughness ); + vec3 halfDir = normalize( incidentLight.direction + viewDir ); + float dotNL = saturate( dot( normal, incidentLight.direction ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotLH = saturate( dot( incidentLight.direction, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotLH ); + float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + return F * ( G * D ); +} +vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + float dotNV = saturate( dot( N, V ) ); + vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); + uv = uv * LUT_SCALE + LUT_BIAS; + return uv; +} +float LTC_ClippedSphereFormFactor( const in vec3 f ) { + float l = length( f ); + return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); +} +vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { + float x = dot( v1, v2 ); + float y = abs( x ); + float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; + float b = 3.4175940 + ( 4.1616724 + y ) * y; + float v = a / b; + float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +vec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + vec2 brdf = integrateSpecularBRDF( dotNV, roughness ); + return specularColor * brdf.x + brdf.y; +} +void BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { + float dotNV = saturate( dot( geometry.normal, geometry.viewDir ) ); + vec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness ); + vec2 brdf = integrateSpecularBRDF( dotNV, roughness ); + vec3 FssEss = F * brdf.x + brdf.y; + float Ess = brdf.x + brdf.y; + float Ems = 1.0 - Ess; + vec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +float G_BlinnPhong_Implicit( ) { + return 0.25; +} +float D_BlinnPhong( const in float shininess, const in float dotNH ) { + return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess ); +} +vec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) { + vec3 halfDir = normalize( incidentLight.direction + geometry.viewDir ); + float dotNH = saturate( dot( geometry.normal, halfDir ) ); + float dotLH = saturate( dot( incidentLight.direction, halfDir ) ); + vec3 F = F_Schlick( specularColor, vec3( 1.0 ), dotLH ); + float G = G_BlinnPhong_Implicit( ); + float D = D_BlinnPhong( shininess, dotNH ); + return F * ( G * D ); +} +float GGXRoughnessToBlinnExponent( const in float ggxRoughness ) { + return ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 ); +} +float BlinnExponentToGGXRoughness( const in float blinnExponent ) { + return sqrt( 2.0 / ( blinnExponent + 2.0 ) ); +} +#if defined( USE_SHEEN ) +float D_Charlie(float roughness, float NoH) { + float invAlpha = 1.0 / roughness; + float cos2h = NoH * NoH; + float sin2h = max(1.0 - cos2h, 0.0078125); return (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI); +} +float V_Neubelt(float NoV, float NoL) { + return saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV))); +} +vec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) { + vec3 N = geometry.normal; + vec3 V = geometry.viewDir; + vec3 H = normalize( V + L ); + float dotNH = saturate( dot( N, H ) ); + return specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) ); +} +#endif`,_1=`#ifdef USE_BUMPMAP + uniform sampler2D bumpMap; + uniform float bumpScale; + vec2 dHdxy_fwd() { + vec2 dSTdx = dFdx( vUv ); + vec2 dSTdy = dFdy( vUv ); + float Hll = bumpScale * texture2D( bumpMap, vUv ).x; + float dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll; + float dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll; + return vec2( dBx, dBy ); + } + vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) { + vec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) ); + vec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) ); + vec3 vN = surf_norm; + vec3 R1 = cross( vSigmaY, vN ); + vec3 R2 = cross( vN, vSigmaX ); + float fDet = dot( vSigmaX, R1 ) * faceDirection; + vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 ); + return normalize( abs( fDet ) * surf_norm - vGrad ); + } +#endif`,T1=`#if NUM_CLIPPING_PLANES > 0 + vec4 plane; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif +#endif`,E1=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,N1=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,C1=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,L1=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,I1=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,P1=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + varying vec3 vColor; +#endif`,D1=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif`,R1=`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate(a) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement(a) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract(sin(sn) * c); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); } + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +struct GeometricContext { + vec3 position; + vec3 normal; + vec3 viewDir; +#ifdef CLEARCOAT + vec3 clearcoatNormal; +#endif +}; +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +vec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) { + float distance = dot( planeNormal, point - pointOnPlane ); + return - distance * planeNormal + point; +} +float sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) { + return sign( dot( point - pointOnPlane, planeNormal ) ); +} +vec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) { + return lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine; +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +float linearToRelativeLuminance( const in vec3 color ) { + vec3 weights = vec3( 0.2126, 0.7152, 0.0722 ); + return dot( weights, color.rgb ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +}`,B1=`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_maxMipLevel 8.0 + #define cubeUV_minMipLevel 4.0 + #define cubeUV_maxTileSize 256.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + float texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize ); + vec2 uv = getUV( direction, face ) * ( faceSize - 1.0 ); + vec2 f = fract( uv ); + uv += 0.5 - f; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + if ( mipInt < cubeUV_maxMipLevel ) { + uv.y += 2.0 * cubeUV_maxTileSize; + } + uv.y += filterInt * 2.0 * cubeUV_minTileSize; + uv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize ); + uv *= texelSize; + vec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb; + uv.x += texelSize; + vec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb; + uv.y += texelSize; + vec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb; + uv.x -= texelSize; + vec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb; + vec3 tm = mix( tl, tr, f.x ); + vec3 bm = mix( bl, br, f.x ); + return mix( tm, bm, f.y ); + } + #define r0 1.0 + #define v0 0.339 + #define m0 - 2.0 + #define r1 0.8 + #define v1 0.276 + #define m1 - 1.0 + #define r4 0.4 + #define v4 0.046 + #define m4 2.0 + #define r5 0.305 + #define v5 0.016 + #define m5 3.0 + #define r6 0.21 + #define v6 0.0038 + #define m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= r1 ) { + mip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0; + } else if ( roughness >= r4 ) { + mip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1; + } else if ( roughness >= r5 ) { + mip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4; + } else if ( roughness >= r6 ) { + mip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,O1=`vec3 transformedNormal = objectNormal; +#ifdef USE_INSTANCING + mat3 m = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) ); + transformedNormal = m * transformedNormal; +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + vec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,F1=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,z1=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias ); +#endif`,G1=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vUv ); + emissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb; + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,U1=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,k1="gl_FragColor = linearToOutputTexel( gl_FragColor );",V1=` +vec4 LinearToLinear( in vec4 value ) { + return value; +} +vec4 GammaToLinear( in vec4 value, in float gammaFactor ) { + return vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a ); +} +vec4 LinearToGamma( in vec4 value, in float gammaFactor ) { + return vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a ); +} +vec4 sRGBToLinear( in vec4 value ) { + return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a ); +} +vec4 LinearTosRGB( in vec4 value ) { + return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); +} +vec4 RGBEToLinear( in vec4 value ) { + return vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 ); +} +vec4 LinearToRGBE( in vec4 value ) { + float maxComponent = max( max( value.r, value.g ), value.b ); + float fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 ); + return vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 ); +} +vec4 RGBMToLinear( in vec4 value, in float maxRange ) { + return vec4( value.rgb * value.a * maxRange, 1.0 ); +} +vec4 LinearToRGBM( in vec4 value, in float maxRange ) { + float maxRGB = max( value.r, max( value.g, value.b ) ); + float M = clamp( maxRGB / maxRange, 0.0, 1.0 ); + M = ceil( M * 255.0 ) / 255.0; + return vec4( value.rgb / ( M * maxRange ), M ); +} +vec4 RGBDToLinear( in vec4 value, in float maxRange ) { + return vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 ); +} +vec4 LinearToRGBD( in vec4 value, in float maxRange ) { + float maxRGB = max( value.r, max( value.g, value.b ) ); + float D = max( maxRange / maxRGB, 1.0 ); + D = clamp( floor( D ) / 255.0, 0.0, 1.0 ); + return vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D ); +} +const mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 ); +vec4 LinearToLogLuv( in vec4 value ) { + vec3 Xp_Y_XYZp = cLogLuvM * value.rgb; + Xp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) ); + vec4 vResult; + vResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z; + float Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0; + vResult.w = fract( Le ); + vResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0; + return vResult; +} +const mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 ); +vec4 LogLuvToLinear( in vec4 value ) { + float Le = value.z * 255.0 + value.w; + vec3 Xp_Y_XYZp; + Xp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 ); + Xp_Y_XYZp.z = Xp_Y_XYZp.y / value.y; + Xp_Y_XYZp.x = value.x * Xp_Y_XYZp.z; + vec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb; + return vec4( max( vRGB, 0.0 ), 1.0 ); +}`,H1=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifndef ENVMAP_TYPE_CUBE_UV + envColor = envMapTexelToLinear( envColor ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif`,j1=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + uniform int maxMipLevel; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif`,W1=`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,J1=`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,X1=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,q1=`#ifdef USE_FOG + fogDepth = - mvPosition.z; +#endif`,Y1=`#ifdef USE_FOG + varying float fogDepth; +#endif`,K1=`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, fogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,Q1=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float fogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,Z1=`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return texture2D( gradientMap, coord ).rgb; + #else + return ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 ); + #endif +}`,$1=`#ifdef USE_LIGHTMAP + vec4 lightMapTexel= texture2D( lightMap, vUv2 ); + reflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity; +#endif`,eT=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,tT=`vec3 diffuse = vec3( 1.0 ); +GeometricContext geometry; +geometry.position = mvPosition.xyz; +geometry.normal = normalize( transformedNormal ); +geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz ); +GeometricContext backGeometry; +backGeometry.position = geometry.position; +backGeometry.normal = -geometry.normal; +backGeometry.viewDir = geometry.viewDir; +vLightFront = vec3( 0.0 ); +vIndirectFront = vec3( 0.0 ); +#ifdef DOUBLE_SIDED + vLightBack = vec3( 0.0 ); + vIndirectBack = vec3( 0.0 ); +#endif +IncidentLight directLight; +float dotNL; +vec3 directLightColor_Diffuse; +vIndirectFront += getAmbientLightIrradiance( ambientLightColor ); +vIndirectFront += getLightProbeIrradiance( lightProbe, geometry ); +#ifdef DOUBLE_SIDED + vIndirectBack += getAmbientLightIrradiance( ambientLightColor ); + vIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry ); +#endif +#if NUM_POINT_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + getPointDirectLightIrradiance( pointLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = PI * directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( -dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end +#endif +#if NUM_SPOT_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + getSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = PI * directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( -dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end +#endif +#if NUM_DIR_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + getDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = PI * directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( -dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end +#endif +#if NUM_HEMI_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + vIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry ); + #ifdef DOUBLE_SIDED + vIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry ); + #endif + } + #pragma unroll_loop_end +#endif`,nT=`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +uniform vec3 lightProbe[ 9 ]; +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) { + vec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + #ifndef PHYSICALLY_CORRECT_LIGHTS + irradiance *= PI; + #endif + return irradiance; +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) { + directLight.color = directionalLight.color; + directLight.direction = directionalLight.direction; + directLight.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) { + vec3 lVector = pointLight.position - geometry.position; + directLight.direction = normalize( lVector ); + float lightDistance = length( lVector ); + directLight.color = pointLight.color; + directLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay ); + directLight.visible = ( directLight.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) { + vec3 lVector = spotLight.position - geometry.position; + directLight.direction = normalize( lVector ); + float lightDistance = length( lVector ); + float angleCos = dot( directLight.direction, spotLight.direction ); + if ( angleCos > spotLight.coneCos ) { + float spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + directLight.color = spotLight.color; + directLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay ); + directLight.visible = true; + } else { + directLight.color = vec3( 0.0 ); + directLight.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) { + float dotNL = dot( geometry.normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + #ifndef PHYSICALLY_CORRECT_LIGHTS + irradiance *= PI; + #endif + return irradiance; + } +#endif`,iT=`#if defined( USE_ENVMAP ) + #ifdef ENVMAP_MODE_REFRACTION + uniform float refractionRatio; + #endif + vec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) { + vec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix ); + #ifdef ENVMAP_TYPE_CUBE + vec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz ); + #ifdef TEXTURE_LOD_EXT + vec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) ); + #else + vec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) ); + #endif + envMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb; + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); + #else + vec4 envMapColor = vec4( 0.0 ); + #endif + return PI * envMapColor.rgb * envMapIntensity; + } + float getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) { + float maxMIPLevelScalar = float( maxMIPLevel ); + float sigma = PI * roughness * roughness / ( 1.0 + roughness ); + float desiredMIPLevel = maxMIPLevelScalar + log2( sigma ); + return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar ); + } + vec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) { + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( -viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + #else + vec3 reflectVec = refract( -viewDir, normal, refractionRatio ); + #endif + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + float specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel ); + #ifdef ENVMAP_TYPE_CUBE + vec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz ); + #ifdef TEXTURE_LOD_EXT + vec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel ); + #else + vec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel ); + #endif + envMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb; + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); + #endif + return envMapColor.rgb * envMapIntensity; + } +#endif`,rT=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,sT=`varying vec3 vViewPosition; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color; + #ifndef PHYSICALLY_CORRECT_LIGHTS + irradiance *= PI; + #endif + reflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon +#define Material_LightProbeLOD( material ) (0)`,oT=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,aT=`varying vec3 vViewPosition; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifndef PHYSICALLY_CORRECT_LIGHTS + irradiance *= PI; + #endif + reflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong +#define Material_LightProbeLOD( material ) (0)`,lT=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness; +material.specularRoughness = min( material.specularRoughness, 1.0 ); +#ifdef REFLECTIVITY + #ifdef SPECULAR + vec3 specularIntensityFactor = vec3( specularIntensity ); + vec3 specularTintFactor = specularTint; + #ifdef USE_SPECULARINTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a; + #endif + #ifdef USE_SPECULARTINTMAP + specularTintFactor *= specularTintMapTexelToLinear( texture2D( specularTintMap, vUv ) ).rgb; + #endif + material.specularColorF90 = mix( specularIntensityFactor, vec3( 1.0 ), metalnessFactor ); + #else + vec3 specularIntensityFactor = vec3( 1.0 ); + vec3 specularTintFactor = vec3( 1.0 ); + material.specularColorF90 = vec3( 1.0 ); + #endif + material.specularColor = mix( min( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ) * specularTintFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor ); + material.specularColorF90 = vec3( 1.0 ); +#endif +#ifdef CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_SHEEN + material.sheenColor = sheen; +#endif`,cT=`struct PhysicalMaterial { + vec3 diffuseColor; + float specularRoughness; + vec3 specularColor; + vec3 specularColorF90; +#ifdef CLEARCOAT + float clearcoat; + float clearcoatRoughness; +#endif +#ifdef USE_SHEEN + vec3 sheenColor; +#endif +}; +#define MAXIMUM_SPECULAR_COEFFICIENT 0.16 +#define DEFAULT_SPECULAR_COEFFICIENT 0.04 +float clearcoatDHRApprox( const in float roughness, const in float dotNL ) { + return DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) ); +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometry.normal; + vec3 viewDir = geometry.viewDir; + vec3 position = geometry.position; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.specularRoughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifndef PHYSICALLY_CORRECT_LIGHTS + irradiance *= PI; + #endif + #ifdef CLEARCOAT + float ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = ccDotNL * directLight.color; + #ifndef PHYSICALLY_CORRECT_LIGHTS + ccIrradiance *= PI; + #endif + float clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL ); + reflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), vec3( 1.0 ), material.clearcoatRoughness ); + #else + float clearcoatDHR = 0.0; + #endif + #ifdef USE_SHEEN + reflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen( + material.specularRoughness, + directLight.direction, + geometry, + material.sheenColor + ); + #else + reflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularColorF90, material.specularRoughness); + #endif + reflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef CLEARCOAT + float ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) ); + reflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness ); + float ccDotNL = ccDotNV; + float clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL ); + #else + float clearcoatDHR = 0.0; + #endif + float clearcoatInv = 1.0 - clearcoatDHR; + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + BRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering ); + vec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) ); + reflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,uT=` +GeometricContext geometry; +geometry.position = - vViewPosition; +geometry.normal = normal; +geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +#ifdef CLEARCOAT + geometry.clearcoatNormal = clearcoatNormal; +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointDirectLightIrradiance( pointLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotDirectLightIrradiance( spotLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalDirectLightIrradiance( directionalLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + irradiance += getLightProbeIrradiance( lightProbe, geometry ); + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,hT=`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel= texture2D( lightMap, vUv2 ); + vec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity; + #ifndef PHYSICALLY_CORRECT_LIGHTS + lightMapIrradiance *= PI; + #endif + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + radiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel ); + #ifdef CLEARCOAT + clearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel ); + #endif +#endif`,dT=`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometry, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight ); +#endif`,fT=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,pT=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,mT=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + varying float vFragDepth; + varying float vIsPerspective; + #else + uniform float logDepthBufFC; + #endif +#endif`,gT=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); + #else + if ( isPerspectiveMatrix( projectionMatrix ) ) { + gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; + gl_Position.z *= gl_Position.w; + } + #endif +#endif`,yT=`#ifdef USE_MAP + vec4 texelColor = texture2D( map, vUv ); + texelColor = mapTexelToLinear( texelColor ); + diffuseColor *= texelColor; +#endif`,vT=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,xT=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; +#endif +#ifdef USE_MAP + vec4 mapTexel = texture2D( map, uv ); + diffuseColor *= mapTexelToLinear( mapTexel ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,bT=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,wT=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vUv ); + metalnessFactor *= texelMetalness.b; +#endif`,ST=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,MT=`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; + objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; + objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; + objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; +#endif`,AT=`#ifdef USE_MORPHTARGETS + uniform float morphTargetBaseInfluence; + #ifndef USE_MORPHNORMALS + uniform float morphTargetInfluences[ 8 ]; + #else + uniform float morphTargetInfluences[ 4 ]; + #endif +#endif`,_T=`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + transformed += morphTarget0 * morphTargetInfluences[ 0 ]; + transformed += morphTarget1 * morphTargetInfluences[ 1 ]; + transformed += morphTarget2 * morphTargetInfluences[ 2 ]; + transformed += morphTarget3 * morphTargetInfluences[ 3 ]; + #ifndef USE_MORPHNORMALS + transformed += morphTarget4 * morphTargetInfluences[ 4 ]; + transformed += morphTarget5 * morphTargetInfluences[ 5 ]; + transformed += morphTarget6 * morphTargetInfluences[ 6 ]; + transformed += morphTarget7 * morphTargetInfluences[ 7 ]; + #endif +#endif`,TT=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) ); + vec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + #ifdef USE_TANGENT + vec3 tangent = normalize( vTangent ); + vec3 bitangent = normalize( vBitangent ); + #ifdef DOUBLE_SIDED + tangent = tangent * faceDirection; + bitangent = bitangent * faceDirection; + #endif + #if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) + mat3 vTBN = mat3( tangent, bitangent, normal ); + #endif + #endif +#endif +vec3 geometryNormal = normal;`,ET=`#ifdef OBJECTSPACE_NORMALMAP + normal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( TANGENTSPACE_NORMALMAP ) + vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + #ifdef USE_TANGENT + normal = normalize( vTBN * mapN ); + #else + normal = perturbNormal2Arb( -vViewPosition, normal, mapN, faceDirection ); + #endif +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,NT=`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef OBJECTSPACE_NORMALMAP + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) ) + vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) { + vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) ); + vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) ); + vec2 st0 = dFdx( vUv.st ); + vec2 st1 = dFdy( vUv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det ); + return normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z ); + } +#endif`,CT=`#ifdef CLEARCOAT + vec3 clearcoatNormal = geometryNormal; +#endif`,LT=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + #ifdef USE_TANGENT + clearcoatNormal = normalize( vTBN * clearcoatMapN ); + #else + clearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection ); + #endif +#endif`,IT=`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif`,PT=`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; +const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); +const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); +const float ShiftRight8 = 1. / 256.; +vec4 packDepthToRGBA( const in float v ) { + vec4 r = vec4( fract( v * PackFactors ), v ); + r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors ); +} +vec4 pack2HalfToRGBA( vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 )); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w); +} +vec2 unpackRGBATo2Half( vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) { + return linearClipZ * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return (( near + viewZ ) * far ) / (( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * invClipZ - far ); +}`,DT=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,RT=`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,BT=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,OT=`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,FT=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vUv ); + roughnessFactor *= texelRoughness.g; +#endif`,zT=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,GT=`#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + varying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 ); + bool inFrustum = all( inFrustumVec ); + bvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 ); + bool frustumTest = all( frustumTestVec ); + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return shadow; + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + vec3 lightToPosition = shadowCoord.xyz; + float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + return ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } +#endif`,UT=`#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ]; + varying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,kT=`#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; + #endif + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 ); + vSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif`,VT=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,HT=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,jT=`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + #ifdef BONE_TEXTURE + uniform highp sampler2D boneTexture; + uniform int boneTextureSize; + mat4 getBoneMatrix( const in float i ) { + float j = i * 4.0; + float x = mod( j, float( boneTextureSize ) ); + float y = floor( j / float( boneTextureSize ) ); + float dx = 1.0 / float( boneTextureSize ); + float dy = 1.0 / float( boneTextureSize ); + y = dy * ( y + 0.5 ); + vec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) ); + vec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) ); + vec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) ); + vec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) ); + mat4 bone = mat4( v1, v2, v3, v4 ); + return bone; + } + #else + uniform mat4 boneMatrices[ MAX_BONES ]; + mat4 getBoneMatrix( const in float i ) { + mat4 bone = boneMatrices[ int(i) ]; + return bone; + } + #endif +#endif`,WT=`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,JT=`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,XT=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,qT=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,YT=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,KT=`#ifndef saturate +#define saturate(a) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return toneMappingExposure * color; +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 OptimizedCineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,QT=`#ifdef USE_TRANSMISSION + float transmissionFactor = transmission; + float thicknessFactor = thickness; + #ifdef USE_TRANSMISSIONMAP + transmissionFactor *= texture2D( transmissionMap, vUv ).r; + #endif + #ifdef USE_THICKNESSMAP + thicknessFactor *= texture2D( thicknessMap, vUv ).g; + #endif + vec3 pos = vWorldPosition.xyz / vWorldPosition.w; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + float ior = ( 1.0 + 0.4 * reflectivity ) / ( 1.0 - 0.4 * reflectivity ); + vec3 transmission = transmissionFactor * getIBLVolumeRefraction( + n, v, roughnessFactor, material.diffuseColor, material.specularColor, + pos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor, + attenuationTint, attenuationDistance ); + totalDiffuse = mix( totalDiffuse, transmission, transmissionFactor ); +#endif`,ZT=`#ifdef USE_TRANSMISSION + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec4 vWorldPosition; + vec3 getVolumeTransmissionRay(vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix) { + vec3 refractionVector = refract(-v, normalize(n), 1.0 / ior); + vec3 modelScale; + modelScale.x = length(vec3(modelMatrix[0].xyz)); + modelScale.y = length(vec3(modelMatrix[1].xyz)); + modelScale.z = length(vec3(modelMatrix[2].xyz)); + return normalize(refractionVector) * thickness * modelScale; + } + float applyIorToRoughness(float roughness, float ior) { + return roughness * clamp(ior * 2.0 - 2.0, 0.0, 1.0); + } + vec3 getTransmissionSample(vec2 fragCoord, float roughness, float ior) { + float framebufferLod = log2(transmissionSamplerSize.x) * applyIorToRoughness(roughness, ior); + return texture2DLodEXT(transmissionSamplerMap, fragCoord.xy, framebufferLod).rgb; + } + vec3 applyVolumeAttenuation(vec3 radiance, float transmissionDistance, vec3 attenuationColor, float attenuationDistance) { + if (attenuationDistance == 0.0) { + return radiance; + } else { + vec3 attenuationCoefficient = -log(attenuationColor) / attenuationDistance; + vec3 transmittance = exp(-attenuationCoefficient * transmissionDistance); return transmittance * radiance; + } + } + vec3 getIBLVolumeRefraction(vec3 n, vec3 v, float perceptualRoughness, vec3 baseColor, vec3 specularColor, + vec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness, + vec3 attenuationColor, float attenuationDistance) { + vec3 transmissionRay = getVolumeTransmissionRay(n, v, thickness, ior, modelMatrix); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4(refractedRayExit, 1.0); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec3 transmittedLight = getTransmissionSample(refractionCoords, perceptualRoughness, ior); + vec3 attenuatedColor = applyVolumeAttenuation(transmittedLight, length(transmissionRay), attenuationColor, attenuationDistance); + return (1.0 - specularColor) * attenuatedColor * baseColor; + } +#endif`,$T=`#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) ) + varying vec2 vUv; +#endif`,eE=`#ifdef USE_UV + #ifdef UVS_VERTEX_ONLY + vec2 vUv; + #else + varying vec2 vUv; + #endif + uniform mat3 uvTransform; +#endif`,tE=`#ifdef USE_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; +#endif`,nE=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + varying vec2 vUv2; +#endif`,iE=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + attribute vec2 uv2; + varying vec2 vUv2; + uniform mat3 uv2Transform; +#endif`,rE=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + vUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy; +#endif`,sE=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`,oE=`uniform sampler2D t2D; +varying vec2 vUv; +void main() { + vec4 texColor = texture2D( t2D, vUv ); + gl_FragColor = mapTexelToLinear( texColor ); + #include + #include +}`,aE=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,lE=`#include +uniform float opacity; +varying vec3 vWorldDirection; +#include +void main() { + vec3 vReflect = vWorldDirection; + #include + gl_FragColor = envColor; + gl_FragColor.a *= opacity; + #include + #include +}`,cE=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,uE=`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + vec4 diffuseColor = vec4( 1.0 ); + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #endif +}`,hE=`#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}`,dE=`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +void main () { + #include + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}`,fE=`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}`,pE=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + vec4 texColor = texture2D( tEquirect, sampleUV ); + gl_FragColor = mapTexelToLinear( texColor ); + #include + #include +}`,mE=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,gE=`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +void main() { + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + outgoingLight = diffuseColor.rgb; + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + #include + #include + #include + #include +}`,yE=`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include +}`,vE=`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + + vec4 lightMapTexel= texture2D( lightMap, vUv2 ); + reflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + #include + #include + #include + #include + #include +}`,xE=`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,bE=`uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +varying vec3 vLightFront; +varying vec3 vIndirectFront; +#ifdef DOUBLE_SIDED + varying vec3 vLightBack; + varying vec3 vIndirectBack; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #ifdef DOUBLE_SIDED + reflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack; + #else + reflectedLight.indirectDiffuse += vIndirectFront; + #endif + #include + reflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ); + #ifdef DOUBLE_SIDED + reflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack; + #else + reflectedLight.directDiffuse = vLightFront; + #endif + reflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask(); + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + #include + #include + #include + #include + #include +}`,wE=`#define LAMBERT +varying vec3 vLightFront; +varying vec3 vIndirectFront; +#ifdef DOUBLE_SIDED + varying vec3 vLightBack; + varying vec3 vIndirectBack; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,SE=`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + matcapColor = matcapTexelToLinear( matcapColor ); + #else + vec4 matcapColor = vec4( 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + #include + #include + #include + #include + #include +}`,ME=`#define MATCAP +varying vec3 vViewPosition; +#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif + #endif + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}`,AE=`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + #include + #include + #include + #include + #include +}`,_E=`#define TOON +varying vec3 vViewPosition; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include +#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); +#endif + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}`,TE=`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + #include + #include + #include + #include + #include +}`,EE=`#define PHONG +varying vec3 vViewPosition; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include +#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); +#endif + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,NE=`#define STANDARD +#ifdef PHYSICAL + #define REFLECTIVITY + #define CLEARCOAT + #define SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationTint; +#endif +#ifdef REFLECTIVITY + uniform float reflectivity; +#endif +#ifdef SPECULAR + uniform float specularIntensity; + uniform vec3 specularTint; + #ifdef USE_SPECULARINTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif + #ifdef USE_SPECULARTINTMAP + uniform sampler2D specularTintMap; + #endif +#endif +#ifdef CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_SHEEN + uniform vec3 sheen; +#endif +varying vec3 vViewPosition; +#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + #include + #include + #include + #include + #include +}`,CE=`#define STANDARD +varying vec3 vViewPosition; +#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif +#ifdef USE_TRANSMISSION + varying vec4 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include +#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition; +#endif +}`,LE=`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + varying vec3 vViewPosition; +#endif +#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), opacity ); +}`,IE=`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + varying vec3 vViewPosition; +#endif +#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include +#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + vViewPosition = - mvPosition.xyz; +#endif +}`,PE=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +void main() { + #include + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + #include + #include + #include + #include +}`,DE=`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}`,RE=`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +void main() { + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}`,BE=`#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,OE=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + #include + #include + #include +}`,FE=`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}`,at={alphamap_fragment:y1,alphamap_pars_fragment:v1,alphatest_fragment:x1,aomap_fragment:b1,aomap_pars_fragment:w1,begin_vertex:S1,beginnormal_vertex:M1,bsdfs:A1,bumpmap_pars_fragment:_1,clipping_planes_fragment:T1,clipping_planes_pars_fragment:E1,clipping_planes_pars_vertex:N1,clipping_planes_vertex:C1,color_fragment:L1,color_pars_fragment:I1,color_pars_vertex:P1,color_vertex:D1,common:R1,cube_uv_reflection_fragment:B1,defaultnormal_vertex:O1,displacementmap_pars_vertex:F1,displacementmap_vertex:z1,emissivemap_fragment:G1,emissivemap_pars_fragment:U1,encodings_fragment:k1,encodings_pars_fragment:V1,envmap_fragment:H1,envmap_common_pars_fragment:j1,envmap_pars_fragment:W1,envmap_pars_vertex:J1,envmap_physical_pars_fragment:iT,envmap_vertex:X1,fog_vertex:q1,fog_pars_vertex:Y1,fog_fragment:K1,fog_pars_fragment:Q1,gradientmap_pars_fragment:Z1,lightmap_fragment:$1,lightmap_pars_fragment:eT,lights_lambert_vertex:tT,lights_pars_begin:nT,lights_toon_fragment:rT,lights_toon_pars_fragment:sT,lights_phong_fragment:oT,lights_phong_pars_fragment:aT,lights_physical_fragment:lT,lights_physical_pars_fragment:cT,lights_fragment_begin:uT,lights_fragment_maps:hT,lights_fragment_end:dT,logdepthbuf_fragment:fT,logdepthbuf_pars_fragment:pT,logdepthbuf_pars_vertex:mT,logdepthbuf_vertex:gT,map_fragment:yT,map_pars_fragment:vT,map_particle_fragment:xT,map_particle_pars_fragment:bT,metalnessmap_fragment:wT,metalnessmap_pars_fragment:ST,morphnormal_vertex:MT,morphtarget_pars_vertex:AT,morphtarget_vertex:_T,normal_fragment_begin:TT,normal_fragment_maps:ET,normalmap_pars_fragment:NT,clearcoat_normal_fragment_begin:CT,clearcoat_normal_fragment_maps:LT,clearcoat_pars_fragment:IT,packing:PT,premultiplied_alpha_fragment:DT,project_vertex:RT,dithering_fragment:BT,dithering_pars_fragment:OT,roughnessmap_fragment:FT,roughnessmap_pars_fragment:zT,shadowmap_pars_fragment:GT,shadowmap_pars_vertex:UT,shadowmap_vertex:kT,shadowmask_pars_fragment:VT,skinbase_vertex:HT,skinning_pars_vertex:jT,skinning_vertex:WT,skinnormal_vertex:JT,specularmap_fragment:XT,specularmap_pars_fragment:qT,tonemapping_fragment:YT,tonemapping_pars_fragment:KT,transmission_fragment:QT,transmission_pars_fragment:ZT,uv_pars_fragment:$T,uv_pars_vertex:eE,uv_vertex:tE,uv2_pars_fragment:nE,uv2_pars_vertex:iE,uv2_vertex:rE,worldpos_vertex:sE,background_frag:oE,background_vert:aE,cube_frag:lE,cube_vert:cE,depth_frag:uE,depth_vert:hE,distanceRGBA_frag:dE,distanceRGBA_vert:fE,equirect_frag:pE,equirect_vert:mE,linedashed_frag:gE,linedashed_vert:yE,meshbasic_frag:vE,meshbasic_vert:xE,meshlambert_frag:bE,meshlambert_vert:wE,meshmatcap_frag:SE,meshmatcap_vert:ME,meshtoon_frag:AE,meshtoon_vert:_E,meshphong_frag:TE,meshphong_vert:EE,meshphysical_frag:NE,meshphysical_vert:CE,normal_frag:LE,normal_vert:IE,points_frag:PE,points_vert:DE,shadow_frag:RE,shadow_vert:BE,sprite_frag:OE,sprite_vert:FE},be={common:{diffuse:{value:new fe(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new Dt},uv2Transform:{value:new Dt},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new O(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new fe(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new fe(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new Dt}},sprite:{diffuse:{value:new fe(16777215)},opacity:{value:1},center:{value:new O(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},uvTransform:{value:new Dt}}},ar={basic:{uniforms:Fn([be.common,be.specularmap,be.envmap,be.aomap,be.lightmap,be.fog]),vertexShader:at.meshbasic_vert,fragmentShader:at.meshbasic_frag},lambert:{uniforms:Fn([be.common,be.specularmap,be.envmap,be.aomap,be.lightmap,be.emissivemap,be.fog,be.lights,{emissive:{value:new fe(0)}}]),vertexShader:at.meshlambert_vert,fragmentShader:at.meshlambert_frag},phong:{uniforms:Fn([be.common,be.specularmap,be.envmap,be.aomap,be.lightmap,be.emissivemap,be.bumpmap,be.normalmap,be.displacementmap,be.fog,be.lights,{emissive:{value:new fe(0)},specular:{value:new fe(1118481)},shininess:{value:30}}]),vertexShader:at.meshphong_vert,fragmentShader:at.meshphong_frag},standard:{uniforms:Fn([be.common,be.envmap,be.aomap,be.lightmap,be.emissivemap,be.bumpmap,be.normalmap,be.displacementmap,be.roughnessmap,be.metalnessmap,be.fog,be.lights,{emissive:{value:new fe(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:at.meshphysical_vert,fragmentShader:at.meshphysical_frag},toon:{uniforms:Fn([be.common,be.aomap,be.lightmap,be.emissivemap,be.bumpmap,be.normalmap,be.displacementmap,be.gradientmap,be.fog,be.lights,{emissive:{value:new fe(0)}}]),vertexShader:at.meshtoon_vert,fragmentShader:at.meshtoon_frag},matcap:{uniforms:Fn([be.common,be.bumpmap,be.normalmap,be.displacementmap,be.fog,{matcap:{value:null}}]),vertexShader:at.meshmatcap_vert,fragmentShader:at.meshmatcap_frag},points:{uniforms:Fn([be.points,be.fog]),vertexShader:at.points_vert,fragmentShader:at.points_frag},dashed:{uniforms:Fn([be.common,be.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:at.linedashed_vert,fragmentShader:at.linedashed_frag},depth:{uniforms:Fn([be.common,be.displacementmap]),vertexShader:at.depth_vert,fragmentShader:at.depth_frag},normal:{uniforms:Fn([be.common,be.bumpmap,be.normalmap,be.displacementmap,{opacity:{value:1}}]),vertexShader:at.normal_vert,fragmentShader:at.normal_frag},sprite:{uniforms:Fn([be.sprite,be.fog]),vertexShader:at.sprite_vert,fragmentShader:at.sprite_frag},background:{uniforms:{uvTransform:{value:new Dt},t2D:{value:null}},vertexShader:at.background_vert,fragmentShader:at.background_frag},cube:{uniforms:Fn([be.envmap,{opacity:{value:1}}]),vertexShader:at.cube_vert,fragmentShader:at.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:at.equirect_vert,fragmentShader:at.equirect_frag},distanceRGBA:{uniforms:Fn([be.common,be.displacementmap,{referencePosition:{value:new M},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:at.distanceRGBA_vert,fragmentShader:at.distanceRGBA_frag},shadow:{uniforms:Fn([be.lights,be.fog,{color:{value:new fe(0)},opacity:{value:1}}]),vertexShader:at.shadow_vert,fragmentShader:at.shadow_frag}};ar.physical={uniforms:Fn([ar.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new O(1,1)},clearcoatNormalMap:{value:null},sheen:{value:new fe(0)},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new O},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationTint:{value:new fe(0)},specularIntensity:{value:0},specularIntensityMap:{value:null},specularTint:{value:new fe(1,1,1)},specularTintMap:{value:null}}]),vertexShader:at.meshphysical_vert,fragmentShader:at.meshphysical_frag};function zE(r,e,t,n,i){let s=new fe(0),o=0,a,l,c=null,u=0,h=null;function d(p,m){let v=!1,g=m.isScene===!0?m.background:null;g&&g.isTexture&&(g=e.get(g));let y=r.xr,x=y.getSession&&y.getSession();x&&x.environmentBlendMode==="additive"&&(g=null),g===null?f(s,o):g&&g.isColor&&(f(g,1),v=!0),(r.autoClear||v)&&r.clear(r.autoClearColor,r.autoClearDepth,r.autoClearStencil),g&&(g.isCubeTexture||g.mapping===Js)?(l===void 0&&(l=new gt(new jn(1,1,1),new _t({name:"BackgroundCubeMaterial",uniforms:ca(ar.cube.uniforms),vertexShader:ar.cube.vertexShader,fragmentShader:ar.cube.fragmentShader,side:kt,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(b,w,_){this.matrixWorld.copyPosition(_.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),n.update(l)),l.material.uniforms.envMap.value=g,l.material.uniforms.flipEnvMap.value=g.isCubeTexture&&g.isRenderTargetTexture===!1?-1:1,(c!==g||u!==g.version||h!==r.toneMapping)&&(l.material.needsUpdate=!0,c=g,u=g.version,h=r.toneMapping),p.unshift(l,l.geometry,l.material,0,0,null)):g&&g.isTexture&&(a===void 0&&(a=new gt(new ls(2,2),new _t({name:"BackgroundMaterial",uniforms:ca(ar.background.uniforms),vertexShader:ar.background.vertexShader,fragmentShader:ar.background.fragmentShader,side:Oi,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute("normal"),Object.defineProperty(a.material,"map",{get:function(){return this.uniforms.t2D.value}}),n.update(a)),a.material.uniforms.t2D.value=g,g.matrixAutoUpdate===!0&&g.updateMatrix(),a.material.uniforms.uvTransform.value.copy(g.matrix),(c!==g||u!==g.version||h!==r.toneMapping)&&(a.material.needsUpdate=!0,c=g,u=g.version,h=r.toneMapping),p.unshift(a,a.geometry,a.material,0,0,null))}function f(p,m){t.buffers.color.setClear(p.r,p.g,p.b,m,i)}return{getClearColor:function(){return s},setClearColor:function(p,m=1){s.set(p),o=m,f(s,o)},getClearAlpha:function(){return o},setClearAlpha:function(p){o=p,f(s,o)},render:d}}function GE(r,e,t,n){let i=r.getParameter(34921),s=n.isWebGL2?null:e.get("OES_vertex_array_object"),o=n.isWebGL2||s!==null,a={},l=m(null),c=l;function u(P,R,G,B,j){let ne=!1;if(o){let le=p(B,G,R);c!==le&&(c=le,d(c.object)),ne=v(B,j),ne&&g(B,j)}else{let le=R.wireframe===!0;(c.geometry!==B.id||c.program!==G.id||c.wireframe!==le)&&(c.geometry=B.id,c.program=G.id,c.wireframe=le,ne=!0)}P.isInstancedMesh===!0&&(ne=!0),j!==null&&t.update(j,34963),ne&&(S(P,R,G,B),j!==null&&r.bindBuffer(34963,t.get(j).buffer))}function h(){return n.isWebGL2?r.createVertexArray():s.createVertexArrayOES()}function d(P){return n.isWebGL2?r.bindVertexArray(P):s.bindVertexArrayOES(P)}function f(P){return n.isWebGL2?r.deleteVertexArray(P):s.deleteVertexArrayOES(P)}function p(P,R,G){let B=G.wireframe===!0,j=a[P.id];j===void 0&&(j={},a[P.id]=j);let ne=j[R.id];ne===void 0&&(ne={},j[R.id]=ne);let le=ne[B];return le===void 0&&(le=m(h()),ne[B]=le),le}function m(P){let R=[],G=[],B=[];for(let j=0;j=0){let D=j[W];if(D!==void 0){let K=D.normalized,q=D.itemSize,ee=t.get(D);if(ee===void 0)continue;let V=ee.buffer,de=ee.type,ae=ee.bytesPerElement;if(D.isInterleavedBufferAttribute){let te=D.data,X=te.stride,se=D.offset;te&&te.isInstancedInterleavedBuffer?(b(z,te.meshPerAttribute),B._maxInstanceCount===void 0&&(B._maxInstanceCount=te.meshPerAttribute*te.count)):x(z),r.bindBuffer(34962,V),_(z,q,de,K,X*ae,se*ae)}else D.isInstancedBufferAttribute?(b(z,D.meshPerAttribute),B._maxInstanceCount===void 0&&(B._maxInstanceCount=D.meshPerAttribute*D.count)):x(z),r.bindBuffer(34962,V),_(z,q,de,K,0,0)}else if(W==="instanceMatrix"){let K=t.get(P.instanceMatrix);if(K===void 0)continue;let q=K.buffer,ee=K.type;b(z+0,1),b(z+1,1),b(z+2,1),b(z+3,1),r.bindBuffer(34962,q),r.vertexAttribPointer(z+0,4,ee,!1,64,0),r.vertexAttribPointer(z+1,4,ee,!1,64,16),r.vertexAttribPointer(z+2,4,ee,!1,64,32),r.vertexAttribPointer(z+3,4,ee,!1,64,48)}else if(W==="instanceColor"){let K=t.get(P.instanceColor);if(K===void 0)continue;let q=K.buffer,ee=K.type;b(z,1),r.bindBuffer(34962,q),r.vertexAttribPointer(z,3,ee,!1,12,0)}else if(le!==void 0){let K=le[W];if(K!==void 0)switch(K.length){case 2:r.vertexAttrib2fv(z,K);break;case 3:r.vertexAttrib3fv(z,K);break;case 4:r.vertexAttrib4fv(z,K);break;default:r.vertexAttrib1fv(z,K)}}}}w()}function A(){C();for(let P in a){let R=a[P];for(let G in R){let B=R[G];for(let j in B)f(B[j].object),delete B[j];delete R[G]}delete a[P]}}function T(P){if(a[P.id]===void 0)return;let R=a[P.id];for(let G in R){let B=R[G];for(let j in B)f(B[j].object),delete B[j];delete R[G]}delete a[P.id]}function L(P){for(let R in a){let G=a[R];if(G[P.id]===void 0)continue;let B=G[P.id];for(let j in B)f(B[j].object),delete B[j];delete G[P.id]}}function C(){U(),c!==l&&(c=l,d(c.object))}function U(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:u,reset:C,resetDefaultState:U,dispose:A,releaseStatesOfGeometry:T,releaseStatesOfProgram:L,initAttributes:y,enableAttribute:x,disableUnusedAttributes:w}}function UE(r,e,t,n){let i=n.isWebGL2,s;function o(c){s=c}function a(c,u){r.drawArrays(s,c,u),t.update(u,s,1)}function l(c,u,h){if(h===0)return;let d,f;if(i)d=r,f="drawArraysInstanced";else if(d=e.get("ANGLE_instanced_arrays"),f="drawArraysInstancedANGLE",d===null){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}d[f](s,c,u,h),t.update(u,s,h)}this.setMode=o,this.render=a,this.renderInstances=l}function kE(r,e,t){let n;function i(){if(n!==void 0)return n;if(e.has("EXT_texture_filter_anisotropic")===!0){let S=e.get("EXT_texture_filter_anisotropic");n=r.getParameter(S.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else n=0;return n}function s(S){if(S==="highp"){if(r.getShaderPrecisionFormat(35633,36338).precision>0&&r.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";S="mediump"}return S==="mediump"&&r.getShaderPrecisionFormat(35633,36337).precision>0&&r.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}let o=typeof WebGL2RenderingContext!="undefined"&&r instanceof WebGL2RenderingContext||typeof WebGL2ComputeRenderingContext!="undefined"&&r instanceof WebGL2ComputeRenderingContext,a=t.precision!==void 0?t.precision:"highp",l=s(a);l!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",l,"instead."),a=l);let c=o||e.has("WEBGL_draw_buffers"),u=t.logarithmicDepthBuffer===!0,h=r.getParameter(34930),d=r.getParameter(35660),f=r.getParameter(3379),p=r.getParameter(34076),m=r.getParameter(34921),v=r.getParameter(36347),g=r.getParameter(36348),y=r.getParameter(36349),x=d>0,b=o||e.has("OES_texture_float"),w=x&&b,_=o?r.getParameter(36183):0;return{isWebGL2:o,drawBuffers:c,getMaxAnisotropy:i,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:u,maxTextures:h,maxVertexTextures:d,maxTextureSize:f,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:v,maxVaryings:g,maxFragmentUniforms:y,vertexTextures:x,floatFragmentTextures:b,floatVertexTextures:w,maxSamples:_}}function VE(r){let e=this,t=null,n=0,i=!1,s=!1,o=new ni,a=new Dt,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(h,d,f){let p=h.length!==0||d||n!==0||i;return i=d,t=u(h,f,0),n=h.length,p},this.beginShadows=function(){s=!0,u(null)},this.endShadows=function(){s=!1,c()},this.setState=function(h,d,f){let p=h.clippingPlanes,m=h.clipIntersection,v=h.clipShadows,g=r.get(h);if(!i||p===null||p.length===0||s&&!v)s?u(null):c();else{let y=s?0:n,x=y*4,b=g.clippingState||null;l.value=b,b=u(p,d,x,f);for(let w=0;w!==x;++w)b[w]=t[w];g.clippingState=b,this.numIntersection=m?this.numPlanes:0,this.numPlanes+=y}};function c(){l.value!==t&&(l.value=t,l.needsUpdate=n>0),e.numPlanes=n,e.numIntersection=0}function u(h,d,f,p){let m=h!==null?h.length:0,v=null;if(m!==0){if(v=l.value,p!==!0||v===null){let g=f+m*4,y=d.matrixWorldInverse;a.getNormalMatrix(y),(v===null||v.length0){let c=r.getRenderTarget(),u=new Lf(l.height/2);return u.fromEquirectangularTexture(r,o),e.set(o,u),r.setRenderTarget(c),o.addEventListener("dispose",i),t(u.texture,o.mapping)}else return null}}return o}function i(o){let a=o.target;a.removeEventListener("dispose",i);let l=e.get(a);l!==void 0&&(e.delete(a),l.dispose())}function s(){e=new WeakMap}return{get:n,dispose:s}}var Rr=class extends Dr{constructor(e=-1,t=1,n=1,i=-1,s=.1,o=2e3){super();this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=n,this.bottom=i,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,n,i,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2,s=n-e,o=n+e,a=i+t,l=i-t;if(this.view!==null&&this.view.enabled){let c=(this.right-this.left)/this.view.fullWidth/this.zoom,u=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=c*this.view.offsetX,o=s+c*this.view.width,a-=u*this.view.offsetY,l=a-u*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,l,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}};Rr.prototype.isOrthographicCamera=!0;var fa=class extends _t{constructor(e){super(e);this.type="RawShaderMaterial"}};fa.prototype.isRawShaderMaterial=!0;var pa=4,cs=8,lr=Math.pow(2,cs),yy=[.125,.215,.35,.446,.526,.582],vy=cs-pa+1+yy.length,ma=20,cr={[ln]:0,[Fi]:1,[Rl]:2,[Mu]:3,[Au]:4,[_u]:5,[Qs]:6},to=new dn({side:kt,depthWrite:!1,depthTest:!1}),jE=new gt(new jn,to),Pf=new Rr,{_lodPlanes:Hl,_sizeLods:xy,_sigmas:Ju}=JE(),by=new fe,Df=null,no=(1+Math.sqrt(5))/2,ga=1/no,wy=[new M(1,1,1),new M(-1,1,1),new M(1,1,-1),new M(-1,1,-1),new M(0,no,ga),new M(0,no,-ga),new M(ga,0,no),new M(-ga,0,no),new M(no,ga,0),new M(-no,ga,0)];function Sy(r){let e=Math.max(r.r,r.g,r.b),t=Math.min(Math.max(Math.ceil(Math.log2(e)),-128),127);return r.multiplyScalar(Math.pow(2,-t)),(t+128)/255}var My=class{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._blurMaterial=XE(ma),this._equirectShader=null,this._cubemapShader=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,i=100){Df=this._renderer.getRenderTarget();let s=this._allocateTargets();return this._sceneToCubeUV(e,n,i,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e){return this._fromTexture(e)}fromCubemap(e){return this._fromTexture(e)}compileCubemapShader(){this._cubemapShader===null&&(this._cubemapShader=Ty(),this._compileMaterial(this._cubemapShader))}compileEquirectangularShader(){this._equirectShader===null&&(this._equirectShader=_y(),this._compileMaterial(this._equirectShader))}dispose(){this._blurMaterial.dispose(),this._cubemapShader!==null&&this._cubemapShader.dispose(),this._equirectShader!==null&&this._equirectShader.dispose();for(let e=0;e2?lr:0,lr,lr),u.setRenderTarget(i),p&&u.render(jE,a),u.render(e,a)}u.toneMapping=f,u.outputEncoding=d,u.autoClear=h}_textureToCubeUV(e,t){let n=this._renderer;e.isCubeTexture?this._cubemapShader==null&&(this._cubemapShader=Ty()):this._equirectShader==null&&(this._equirectShader=_y());let i=e.isCubeTexture?this._cubemapShader:this._equirectShader,s=new gt(Hl[0],i),o=i.uniforms;o.envMap.value=e,e.isCubeTexture||o.texelSize.value.set(1/e.image.width,1/e.image.height),o.inputEncoding.value=cr[e.encoding],o.outputEncoding.value=cr[t.texture.encoding],Xu(t,0,0,3*lr,2*lr),n.setRenderTarget(t),n.render(s,Pf)}_applyPMREM(e){let t=this._renderer,n=t.autoClear;t.autoClear=!1;for(let i=1;ima&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${v} samples when the maximum is set to ${ma}`);let g=[],y=0;for(let _=0;_cs-pa?i-cs+pa:0);Xu(t,b,w,3*x,2*x),l.setRenderTarget(t),l.render(h,Pf)}};function WE(r){return r===void 0||r.type!==At?!1:r.encoding===ln||r.encoding===Fi||r.encoding===Qs}function JE(){let r=[],e=[],t=[],n=cs;for(let i=0;ics-pa?o=yy[i-cs+pa-1]:i==0&&(o=0),t.push(o);let a=1/(s-1),l=-a/2,c=1+a/2,u=[l,l,c,l,c,c,l,l,c,c,l,c],h=6,d=6,f=3,p=2,m=1,v=new Float32Array(f*d*h),g=new Float32Array(p*d*h),y=new Float32Array(m*d*h);for(let b=0;b2?0:-1,S=[w,_,0,w+2/3,_,0,w+2/3,_+1,0,w,_,0,w+2/3,_+1,0,w,_+1,0];v.set(S,f*d*b),g.set(u,p*d*b);let A=[b,b,b,b,b,b];y.set(A,m*d*b)}let x=new we;x.setAttribute("position",new Re(v,f)),x.setAttribute("uv",new Re(g,p)),x.setAttribute("faceIndex",new Re(y,m)),r.push(x),n>pa&&n--}return{_lodPlanes:r,_sizeLods:e,_sigmas:t}}function Ay(r){let e=new bt(3*lr,3*lr,r);return e.texture.mapping=Js,e.texture.name="PMREM.cubeUv",e.scissorTest=!0,e}function Xu(r,e,t,n,i){r.viewport.set(e,t,n,i),r.scissor.set(e,t,n,i)}function XE(r){let e=new Float32Array(r),t=new M(0,1,0);return new fa({name:"SphericalGaussianBlur",defines:{n:r},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:e},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:t},inputEncoding:{value:cr[ln]},outputEncoding:{value:cr[ln]}},vertexShader:Rf(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + ${Bf()} + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + gl_FragColor = linearToOutputTexel( gl_FragColor ); + + } + `,blending:It,depthTest:!1,depthWrite:!1})}function _y(){let r=new O(1,1);return new fa({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null},texelSize:{value:r},inputEncoding:{value:cr[ln]},outputEncoding:{value:cr[ln]}},vertexShader:Rf(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform vec2 texelSize; + + ${Bf()} + + #include + + void main() { + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + vec2 f = fract( uv / texelSize - 0.5 ); + uv -= f * texelSize; + vec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb; + uv.x += texelSize.x; + vec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb; + uv.y += texelSize.y; + vec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb; + uv.x -= texelSize.x; + vec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb; + + vec3 tm = mix( tl, tr, f.x ); + vec3 bm = mix( bl, br, f.x ); + gl_FragColor.rgb = mix( tm, bm, f.y ); + + gl_FragColor = linearToOutputTexel( gl_FragColor ); + + } + `,blending:It,depthTest:!1,depthWrite:!1})}function Ty(){return new fa({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},inputEncoding:{value:cr[ln]},outputEncoding:{value:cr[ln]}},vertexShader:Rf(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + ${Bf()} + + void main() { + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb; + gl_FragColor = linearToOutputTexel( gl_FragColor ); + + } + `,blending:It,depthTest:!1,depthWrite:!1})}function Rf(){return` + + precision mediump float; + precision mediump int; + + attribute vec3 position; + attribute vec2 uv; + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function Bf(){return` + + uniform int inputEncoding; + uniform int outputEncoding; + + #include + + vec4 inputTexelToLinear( vec4 value ) { + + if ( inputEncoding == 0 ) { + + return value; + + } else if ( inputEncoding == 1 ) { + + return sRGBToLinear( value ); + + } else if ( inputEncoding == 2 ) { + + return RGBEToLinear( value ); + + } else if ( inputEncoding == 3 ) { + + return RGBMToLinear( value, 7.0 ); + + } else if ( inputEncoding == 4 ) { + + return RGBMToLinear( value, 16.0 ); + + } else if ( inputEncoding == 5 ) { + + return RGBDToLinear( value, 256.0 ); + + } else { + + return GammaToLinear( value, 2.2 ); + + } + + } + + vec4 linearToOutputTexel( vec4 value ) { + + if ( outputEncoding == 0 ) { + + return value; + + } else if ( outputEncoding == 1 ) { + + return LinearTosRGB( value ); + + } else if ( outputEncoding == 2 ) { + + return LinearToRGBE( value ); + + } else if ( outputEncoding == 3 ) { + + return LinearToRGBM( value, 7.0 ); + + } else if ( outputEncoding == 4 ) { + + return LinearToRGBM( value, 16.0 ); + + } else if ( outputEncoding == 5 ) { + + return LinearToRGBD( value, 256.0 ); + + } else { + + return LinearToGamma( value, 2.2 ); + + } + + } + + vec4 envMapTexelToLinear( vec4 color ) { + + return inputTexelToLinear( color ); + + } + `}function qE(r){let e=new WeakMap,t=null;function n(a){if(a&&a.isTexture&&a.isRenderTargetTexture===!1){let l=a.mapping,c=l===vu||l===xu,u=l===js||l===Ws;if(c||u){if(e.has(a))return e.get(a).texture;{let h=a.image;if(c&&h&&h.height>0||u&&h&&i(h)){let d=r.getRenderTarget();t===null&&(t=new My(r));let f=c?t.fromEquirectangular(a):t.fromCubemap(a);return e.set(a,f),r.setRenderTarget(d),a.addEventListener("dispose",s),f.texture}else return null}}}return a}function i(a){let l=0,c=6;for(let u=0;u65535?is:Mf)(d,1);v.version=m;let g=s.get(h);g&&e.remove(g),s.set(h,v)}function u(h){let d=s.get(h);if(d){let f=h.index;f!==null&&d.version0)return r;let i=e*t,s=Cy[i];if(s===void 0&&(s=new Float32Array(i),Cy[i]=s),e!==0){n.toArray(s,0);for(let o=1,a=0;o!==e;++o)a+=t,r[o].toArray(s,a)}return s}function Wn(r,e){if(r.length!==e.length)return!1;for(let t=0,n=r.length;t0)&&r.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(jl).join(` +`)}function KN(r){let e=[];for(let t in r){let n=r[t];n!==!1&&e.push("#define "+t+" "+n)}return e.join(` +`)}function QN(r,e){let t={},n=r.getProgramParameter(e,35721);for(let i=0;i/gm;function zf(r){return r.replace(ZN,$N)}function $N(r,e){let t=at[e];if(t===void 0)throw new Error("Can not resolve #include <"+e+">");return zf(t)}var eC=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,tC=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Hy(r){return r.replace(tC,jy).replace(eC,nC)}function nC(r,e,t,n){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),jy(r,e,t,n)}function jy(r,e,t,n){let i="";for(let s=parseInt(e);s0?r.gammaFactor:1,f=t.isWebGL2?"":YN(t),p=KN(s),m=i.createProgram(),v,g,y=t.glslVersion?"#version "+t.glslVersion+` +`:"";t.isRawShaderMaterial?(v=[p].filter(jl).join(` +`),v.length>0&&(v+=` +`),g=[f,p].filter(jl).join(` +`),g.length>0&&(g+=` +`)):(v=[Wy(t),"#define SHADER_NAME "+t.shaderName,p,t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+d,"#define MAX_BONES "+t.maxBones,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+u:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMap&&t.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",t.normalMap&&t.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.displacementMap&&t.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",t.specularTintMap?"#define USE_SPECULARTINTMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUvs?"#define USE_UV":"",t.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.useVertexTexture?"#define BONE_TEXTURE":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(jl).join(` +`),g=[f,Wy(t),"#define SHADER_NAME "+t.shaderName,p,t.alphaTest?"#define ALPHATEST "+t.alphaTest+(t.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+d,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+c:"",t.envMap?"#define "+u:"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMap&&t.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",t.normalMap&&t.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",t.specularTintMap?"#define USE_SPECULARTINTMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.sheen?"#define USE_SHEEN":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUvs?"#define USE_UV":"",t.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"",(t.extensionShaderTextureLOD||t.envMap)&&t.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==Hs?"#define TONE_MAPPING":"",t.toneMapping!==Hs?at.tonemapping_pars_fragment:"",t.toneMapping!==Hs?qN("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",at.encodings_pars_fragment,t.map?va("mapTexelToLinear",t.mapEncoding):"",t.matcap?va("matcapTexelToLinear",t.matcapEncoding):"",t.envMap?va("envMapTexelToLinear",t.envMapEncoding):"",t.emissiveMap?va("emissiveMapTexelToLinear",t.emissiveMapEncoding):"",t.specularTintMap?va("specularTintMapTexelToLinear",t.specularTintMapEncoding):"",t.lightMap?va("lightMapTexelToLinear",t.lightMapEncoding):"",XN("linearToOutputTexel",t.outputEncoding),t.depthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` +`].filter(jl).join(` +`)),o=zf(o),o=ky(o,t),o=Vy(o,t),a=zf(a),a=ky(a,t),a=Vy(a,t),o=Hy(o),a=Hy(a),t.isWebGL2&&t.isRawShaderMaterial!==!0&&(y=`#version 300 es +`,v=["#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+v,g=["#define varying in",t.glslVersion===Zg?"":"out highp vec4 pc_fragColor;",t.glslVersion===Zg?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` +`)+` +`+g);let x=y+v+o,b=y+g+a,w=zy(i,35633,x),_=zy(i,35632,b);if(i.attachShader(m,w),i.attachShader(m,_),t.index0AttributeName!==void 0?i.bindAttribLocation(m,0,t.index0AttributeName):t.morphTargets===!0&&i.bindAttribLocation(m,0,"position"),i.linkProgram(m),r.debug.checkShaderErrors){let T=i.getProgramInfoLog(m).trim(),L=i.getShaderInfoLog(w).trim(),C=i.getShaderInfoLog(_).trim(),U=!0,P=!0;if(i.getProgramParameter(m,35714)===!1){U=!1;let R=Uy(i,w,"vertex"),G=Uy(i,_,"fragment");console.error("THREE.WebGLProgram: shader error: ",i.getError(),"35715",i.getProgramParameter(m,35715),"gl.getProgramInfoLog",T,R,G)}else T!==""?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",T):(L===""||C==="")&&(P=!1);P&&(this.diagnostics={runnable:U,programLog:T,vertexShader:{log:L,prefix:v},fragmentShader:{log:C,prefix:g}})}i.deleteShader(w),i.deleteShader(_);let S;this.getUniforms=function(){return S===void 0&&(S=new us(i,m)),S};let A;return this.getAttributes=function(){return A===void 0&&(A=QN(i,m)),A},this.destroy=function(){n.releaseStatesOfProgram(this),i.deleteProgram(m),this.program=void 0},this.name=t.shaderName,this.id=WN++,this.cacheKey=e,this.usedTimes=1,this.program=m,this.vertexShader=w,this.fragmentShader=_,this}function lC(r,e,t,n,i,s,o){let a=[],l=i.isWebGL2,c=i.logarithmicDepthBuffer,u=i.floatVertexTextures,h=i.maxVertexUniforms,d=i.vertexTextures,f=i.precision,p={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"},m=["precision","isWebGL2","supportsVertexTextures","outputEncoding","instancing","instancingColor","map","mapEncoding","matcap","matcapEncoding","envMap","envMapMode","envMapEncoding","envMapCubeUV","lightMap","lightMapEncoding","aoMap","emissiveMap","emissiveMapEncoding","bumpMap","normalMap","objectSpaceNormalMap","tangentSpaceNormalMap","clearcoatMap","clearcoatRoughnessMap","clearcoatNormalMap","displacementMap","specularMap","specularIntensityMap","specularTintMap","specularTintMapEncoding","roughnessMap","metalnessMap","gradientMap","alphaMap","combine","vertexColors","vertexAlphas","vertexTangents","vertexUvs","uvsVertexOnly","fog","useFog","fogExp2","flatShading","sizeAttenuation","logarithmicDepthBuffer","skinning","maxBones","useVertexTexture","morphTargets","morphNormals","premultipliedAlpha","numDirLights","numPointLights","numSpotLights","numHemiLights","numRectAreaLights","numDirLightShadows","numPointLightShadows","numSpotLightShadows","shadowMapEnabled","shadowMapType","toneMapping","physicallyCorrectLights","alphaTest","doubleSided","flipSided","numClippingPlanes","numClipIntersection","depthPacking","dithering","sheen","transmission","transmissionMap","thicknessMap"];function v(S){let T=S.skeleton.bones;if(u)return 1024;{let C=Math.floor((h-20)/4),U=Math.min(C,T.length);return U0,maxBones:B,useVertexTexture:u,morphTargets:!!C.geometry&&!!C.geometry.morphAttributes.position,morphNormals:!!C.geometry&&!!C.geometry.morphAttributes.normal,numDirLights:A.directional.length,numPointLights:A.point.length,numSpotLights:A.spot.length,numRectAreaLights:A.rectArea.length,numHemiLights:A.hemi.length,numDirLightShadows:A.directionalShadowMap.length,numPointLightShadows:A.pointShadowMap.length,numSpotLightShadows:A.spotShadowMap.length,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:S.dithering,shadowMapEnabled:r.shadowMap.enabled&&T.length>0,shadowMapType:r.shadowMap.type,toneMapping:S.toneMapped?r.toneMapping:Hs,physicallyCorrectLights:r.physicallyCorrectLights,premultipliedAlpha:S.premultipliedAlpha,alphaTest:S.alphaTest,doubleSided:S.side===Xt,flipSided:S.side===kt,depthPacking:S.depthPacking!==void 0?S.depthPacking:!1,index0AttributeName:S.index0AttributeName,extensionDerivatives:S.extensions&&S.extensions.derivatives,extensionFragDepth:S.extensions&&S.extensions.fragDepth,extensionDrawBuffers:S.extensions&&S.extensions.drawBuffers,extensionShaderTextureLOD:S.extensions&&S.extensions.shaderTextureLOD,rendererExtensionFragDepth:l||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:l||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:l||n.has("EXT_shader_texture_lod"),customProgramCacheKey:S.customProgramCacheKey()}}function x(S){let A=[];if(S.shaderID?A.push(S.shaderID):(A.push(S.fragmentShader),A.push(S.vertexShader)),S.defines!==void 0)for(let T in S.defines)A.push(T),A.push(S.defines[T]);if(S.isRawShaderMaterial===!1){for(let T=0;T0?i.push(x):m.transparent===!0?s.push(x):n.push(x)}function u(f,p,m,v,g,y){let x=l(f,p,m,v,g,y);m.transmission>0?i.unshift(x):m.transparent===!0?s.unshift(x):n.unshift(x)}function h(f,p){n.length>1&&n.sort(f||uC),i.length>1&&i.sort(p||Jy),s.length>1&&s.sort(p||Jy)}function d(){for(let f=t,p=e.length;f=e.get(i).length?(o=new Xy(r),e.get(i).push(o)):o=e.get(i)[s],o}function n(){e=new WeakMap}return{get:t,dispose:n}}function dC(){let r={};return{get:function(e){if(r[e.id]!==void 0)return r[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new M,color:new fe};break;case"SpotLight":t={position:new M,direction:new M,color:new fe,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new M,color:new fe,distance:0,decay:0};break;case"HemisphereLight":t={direction:new M,skyColor:new fe,groundColor:new fe};break;case"RectAreaLight":t={color:new fe,position:new M,halfWidth:new M,halfHeight:new M};break}return r[e.id]=t,t}}}function fC(){let r={};return{get:function(e){if(r[e.id]!==void 0)return r[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new O};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new O};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new O,shadowCameraNear:1,shadowCameraFar:1e3};break}return r[e.id]=t,t}}}var pC=0;function mC(r,e){return(e.castShadow?1:0)-(r.castShadow?1:0)}function gC(r,e){let t=new dC,n=fC(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let u=0;u<9;u++)i.probe.push(new M);let s=new M,o=new me,a=new me;function l(u){let h=0,d=0,f=0;for(let S=0;S<9;S++)i.probe[S].set(0,0,0);let p=0,m=0,v=0,g=0,y=0,x=0,b=0,w=0;u.sort(mC);for(let S=0,A=u.length;S0&&(e.isWebGL2||r.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=be.LTC_FLOAT_1,i.rectAreaLTC2=be.LTC_FLOAT_2):r.has("OES_texture_half_float_linear")===!0?(i.rectAreaLTC1=be.LTC_HALF_1,i.rectAreaLTC2=be.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=h,i.ambient[1]=d,i.ambient[2]=f;let _=i.hash;(_.directionalLength!==p||_.pointLength!==m||_.spotLength!==v||_.rectAreaLength!==g||_.hemiLength!==y||_.numDirectionalShadows!==x||_.numPointShadows!==b||_.numSpotShadows!==w)&&(i.directional.length=p,i.spot.length=v,i.rectArea.length=g,i.point.length=m,i.hemi.length=y,i.directionalShadow.length=x,i.directionalShadowMap.length=x,i.pointShadow.length=b,i.pointShadowMap.length=b,i.spotShadow.length=w,i.spotShadowMap.length=w,i.directionalShadowMatrix.length=x,i.pointShadowMatrix.length=b,i.spotShadowMatrix.length=w,_.directionalLength=p,_.pointLength=m,_.spotLength=v,_.rectAreaLength=g,_.hemiLength=y,_.numDirectionalShadows=x,_.numPointShadows=b,_.numSpotShadows=w,i.version=pC++)}function c(u,h){let d=0,f=0,p=0,m=0,v=0,g=h.matrixWorldInverse;for(let y=0,x=u.length;y=t.get(s).length?(a=new qy(r,e),t.get(s).push(a)):a=t.get(s)[o],a}function i(){t=new WeakMap}return{get:n,dispose:i}}var Yu=class extends nn{constructor(e){super();this.type="MeshDepthMaterial",this.depthPacking=Kr,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}};Yu.prototype.isMeshDepthMaterial=!0;var Ku=class extends nn{constructor(e){super();this.type="MeshDistanceMaterial",this.referencePosition=new M,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(e)}copy(e){return super.copy(e),this.referencePosition.copy(e.referencePosition),this.nearDistance=e.nearDistance,this.farDistance=e.farDistance,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}};Ku.prototype.isMeshDistanceMaterial=!0;var vC=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +void main() { + float mean = 0.0; + float squared_mean = 0.0; + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) ); + for ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) { + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean * HALF_SAMPLE_RATE; + squared_mean = squared_mean * HALF_SAMPLE_RATE; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`,xC=`void main() { + gl_Position = vec4( position, 1.0 ); +}`;function Yy(r,e,t){let n=new Vl,i=new O,s=new O,o=new Qe,a=new Yu({depthPacking:z_}),l=new Ku,c={},u=t.maxTextureSize,h={0:kt,1:Oi,2:Xt},d=new _t({defines:{SAMPLE_RATE:2/8,HALF_SAMPLE_RATE:1/8},uniforms:{shadow_pass:{value:null},resolution:{value:new O},radius:{value:4}},vertexShader:xC,fragmentShader:vC}),f=d.clone();f.defines.HORIZONTAL_PASS=1;let p=new we;p.setAttribute("position",new Re(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let m=new gt(p,d),v=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Pg,this.render=function(b,w,_){if(v.enabled===!1||v.autoUpdate===!1&&v.needsUpdate===!1||b.length===0)return;let S=r.getRenderTarget(),A=r.getActiveCubeFace(),T=r.getActiveMipmapLevel(),L=r.state;L.setBlending(It),L.buffers.color.setClear(1,1,1,1),L.buffers.depth.setTest(!0),L.setScissorTest(!1);for(let C=0,U=b.length;Cu||i.y>u)&&(i.x>u&&(s.x=Math.floor(u/G.x),i.x=s.x*G.x,R.mapSize.x=s.x),i.y>u&&(s.y=Math.floor(u/G.y),i.y=s.y*G.y,R.mapSize.y=s.y)),R.map===null&&!R.isPointLightShadow&&this.type===Dl){let j={minFilter:$e,magFilter:$e,format:zt};R.map=new bt(i.x,i.y,j),R.map.texture.name=P.name+".shadowMap",R.mapPass=new bt(i.x,i.y,j),R.camera.updateProjectionMatrix()}if(R.map===null){let j={minFilter:Pt,magFilter:Pt,format:zt};R.map=new bt(i.x,i.y,j),R.map.texture.name=P.name+".shadowMap",R.camera.updateProjectionMatrix()}r.setRenderTarget(R.map),r.clear();let B=R.getViewportCount();for(let j=0;j=1):G.indexOf("OpenGL ES")!==-1&&(R=parseFloat(/^OpenGL ES (\d)/.exec(G)[1]),P=R>=2);let B=null,j={},ne=r.getParameter(3088),le=r.getParameter(2978),W=new Qe().fromArray(ne),z=new Qe().fromArray(le);function D(J,xe,he){let Ne=new Uint8Array(4),Be=r.createTexture();r.bindTexture(J,Be),r.texParameteri(J,10241,9728),r.texParameteri(J,10240,9728);for(let ke=0;kere||N.height>re)&&(ye=re/Math.max(N.width,N.height)),ye<1||E===!0)if(typeof HTMLImageElement!="undefined"&&N instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&N instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&N instanceof ImageBitmap){let pe=E?ey:Math.floor,Ie=pe(ye*N.width),ve=pe(ye*N.height);f===void 0&&(f=m(Ie,ve));let Fe=Y?m(Ie,ve):f;return Fe.width=Ie,Fe.height=ve,Fe.getContext("2d").drawImage(N,0,0,Ie,ve),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+N.width+"x"+N.height+") to ("+Ie+"x"+ve+")."),Fe}else return"data"in N&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+N.width+"x"+N.height+")."),N;return N}function g(N){return rf(N.width)&&rf(N.height)}function y(N){return a?!1:N.wrapS!==Zt||N.wrapT!==Zt||N.minFilter!==Pt&&N.minFilter!==$e}function x(N,E){return N.generateMipmaps&&E&&N.minFilter!==Pt&&N.minFilter!==$e}function b(N,E,Y,re,ye=1){r.generateMipmap(N);let pe=n.get(E);pe.__maxMipLevel=Math.log2(Math.max(Y,re,ye))}function w(N,E,Y){if(a===!1)return E;if(N!==null){if(r[N]!==void 0)return r[N];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+N+"'")}let re=E;return E===6403&&(Y===5126&&(re=33326),Y===5131&&(re=33325),Y===5121&&(re=33321)),E===6407&&(Y===5126&&(re=34837),Y===5131&&(re=34843),Y===5121&&(re=32849)),E===6408&&(Y===5126&&(re=34836),Y===5131&&(re=34842),Y===5121&&(re=32856)),(re===33325||re===33326||re===34842||re===34836)&&e.get("EXT_color_buffer_float"),re}function _(N){return N===Pt||N===Xs||N===qs?9728:9729}function S(N){let E=N.target;E.removeEventListener("dispose",S),T(E),E.isVideoTexture&&d.delete(E),o.memory.textures--}function A(N){let E=N.target;E.removeEventListener("dispose",A),L(E)}function T(N){let E=n.get(N);E.__webglInit!==void 0&&(r.deleteTexture(E.__webglTexture),n.remove(N))}function L(N){let E=N.texture,Y=n.get(N),re=n.get(E);if(!!N){if(re.__webglTexture!==void 0&&(r.deleteTexture(re.__webglTexture),o.memory.textures--),N.depthTexture&&N.depthTexture.dispose(),N.isWebGLCubeRenderTarget)for(let ye=0;ye<6;ye++)r.deleteFramebuffer(Y.__webglFramebuffer[ye]),Y.__webglDepthbuffer&&r.deleteRenderbuffer(Y.__webglDepthbuffer[ye]);else r.deleteFramebuffer(Y.__webglFramebuffer),Y.__webglDepthbuffer&&r.deleteRenderbuffer(Y.__webglDepthbuffer),Y.__webglMultisampledFramebuffer&&r.deleteFramebuffer(Y.__webglMultisampledFramebuffer),Y.__webglColorRenderbuffer&&r.deleteRenderbuffer(Y.__webglColorRenderbuffer),Y.__webglDepthRenderbuffer&&r.deleteRenderbuffer(Y.__webglDepthRenderbuffer);if(N.isWebGLMultipleRenderTargets)for(let ye=0,pe=E.length;ye=l&&console.warn("THREE.WebGLTextures: Trying to use "+N+" texture units while this GPU supports only "+l),C+=1,N}function R(N,E){let Y=n.get(N);if(N.isVideoTexture&&$(N),N.version>0&&Y.__version!==N.version){let re=N.image;if(re===void 0)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else if(re.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{D(Y,N,E);return}}t.activeTexture(33984+E),t.bindTexture(3553,Y.__webglTexture)}function G(N,E){let Y=n.get(N);if(N.version>0&&Y.__version!==N.version){D(Y,N,E);return}t.activeTexture(33984+E),t.bindTexture(35866,Y.__webglTexture)}function B(N,E){let Y=n.get(N);if(N.version>0&&Y.__version!==N.version){D(Y,N,E);return}t.activeTexture(33984+E),t.bindTexture(32879,Y.__webglTexture)}function j(N,E){let Y=n.get(N);if(N.version>0&&Y.__version!==N.version){K(Y,N,E);return}t.activeTexture(33984+E),t.bindTexture(34067,Y.__webglTexture)}let ne={[di]:10497,[Zt]:33071,[qr]:33648},le={[Pt]:9728,[Xs]:9984,[qs]:9986,[$e]:9729,[jo]:9985,[Ai]:9987};function W(N,E,Y){if(Y?(r.texParameteri(N,10242,ne[E.wrapS]),r.texParameteri(N,10243,ne[E.wrapT]),(N===32879||N===35866)&&r.texParameteri(N,32882,ne[E.wrapR]),r.texParameteri(N,10240,le[E.magFilter]),r.texParameteri(N,10241,le[E.minFilter])):(r.texParameteri(N,10242,33071),r.texParameteri(N,10243,33071),(N===32879||N===35866)&&r.texParameteri(N,32882,33071),(E.wrapS!==Zt||E.wrapT!==Zt)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),r.texParameteri(N,10240,_(E.magFilter)),r.texParameteri(N,10241,_(E.minFilter)),E.minFilter!==Pt&&E.minFilter!==$e&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),e.has("EXT_texture_filter_anisotropic")===!0){let re=e.get("EXT_texture_filter_anisotropic");if(E.type===Tr&&e.has("OES_texture_float_linear")===!1||a===!1&&E.type===Jo&&e.has("OES_texture_half_float_linear")===!1)return;(E.anisotropy>1||n.get(E).__currentAnisotropy)&&(r.texParameterf(N,re.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(E.anisotropy,i.getMaxAnisotropy())),n.get(E).__currentAnisotropy=E.anisotropy)}}function z(N,E){N.__webglInit===void 0&&(N.__webglInit=!0,E.addEventListener("dispose",S),N.__webglTexture=r.createTexture(),o.memory.textures++)}function D(N,E,Y){let re=3553;E.isDataTexture2DArray&&(re=35866),E.isDataTexture3D&&(re=32879),z(N,E),t.activeTexture(33984+Y),t.bindTexture(re,N.__webglTexture),r.pixelStorei(37440,E.flipY),r.pixelStorei(37441,E.premultiplyAlpha),r.pixelStorei(3317,E.unpackAlignment),r.pixelStorei(37443,0);let ye=y(E)&&g(E.image)===!1,pe=v(E.image,ye,!1,u),Ie=g(pe)||a,ve=s.convert(E.format),Fe=s.convert(E.type),Ce=w(E.internalFormat,ve,Fe);W(re,E,Ie);let J,xe=E.mipmaps;if(E.isDepthTexture)Ce=6402,a?E.type===Tr?Ce=36012:E.type===Wo?Ce=33190:E.type===Ys?Ce=35056:Ce=33189:E.type===Tr&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),E.format===Xo&&Ce===6402&&E.type!==bu&&E.type!==Wo&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),E.type=bu,Fe=s.convert(E.type)),E.format===Ks&&Ce===6402&&(Ce=34041,E.type!==Ys&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),E.type=Ys,Fe=s.convert(E.type))),t.texImage2D(3553,0,Ce,pe.width,pe.height,0,ve,Fe,null);else if(E.isDataTexture)if(xe.length>0&&Ie){for(let he=0,Ne=xe.length;he0&&Ie){for(let he=0,Ne=xe.length;hef+p?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&d<=f-p&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else l!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,n),s!==null&&(l.matrix.fromArray(s.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),s.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(s.linearVelocity)):l.hasLinearVelocity=!1,s.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(s.angularVelocity)):l.hasAngularVelocity=!1));return a!==null&&(a.visible=i!==null),l!==null&&(l.visible=s!==null),c!==null&&(c.visible=o!==null),this}},Ky=class extends cn{constructor(e,t){super();let n=this,i=e.state,s=null,o=1,a=null,l="local-floor",c=null,u=null,h=null,d=null,f=null,p=[],m=new Map,v=new Vt;v.layers.enable(1),v.viewport=new Qe;let g=new Vt;g.layers.enable(2),g.viewport=new Qe;let y=[v,g],x=new Gf;x.layers.enable(1),x.layers.enable(2);let b=null,w=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(B){let j=p[B];return j===void 0&&(j=new Qu,p[B]=j),j.getTargetRaySpace()},this.getControllerGrip=function(B){let j=p[B];return j===void 0&&(j=new Qu,p[B]=j),j.getGripSpace()},this.getHand=function(B){let j=p[B];return j===void 0&&(j=new Qu,p[B]=j),j.getHandSpace()};function _(B){let j=m.get(B.inputSource);j&&j.dispatchEvent({type:B.type,data:B.inputSource})}function S(){m.forEach(function(B,j){B.disconnect(j)}),m.clear(),b=null,w=null,i.bindXRFramebuffer(null),e.setRenderTarget(e.getRenderTarget()),G.stop(),n.isPresenting=!1,n.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(B){o=B,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(B){l=B,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return a},this.getSession=function(){return s},this.setSession=async function(B){if(s=B,s!==null){s.addEventListener("select",_),s.addEventListener("selectstart",_),s.addEventListener("selectend",_),s.addEventListener("squeeze",_),s.addEventListener("squeezestart",_),s.addEventListener("squeezeend",_),s.addEventListener("end",S),s.addEventListener("inputsourceschange",A);let j=t.getContextAttributes();if(j.xrCompatible!==!0&&await t.makeXRCompatible(),s.renderState.layers===void 0){let ne={antialias:j.antialias,alpha:j.alpha,depth:j.depth,stencil:j.stencil,framebufferScaleFactor:o};f=new XRWebGLLayer(s,t,ne),s.updateRenderState({baseLayer:f})}else{let ne=0;if(j.antialias){let le={antialias:!0,alpha:j.alpha,depth:j.depth,stencil:j.stencil,framebufferScaleFactor:o};f=new XRWebGLLayer(s,t,le),s.updateRenderState({layers:[f]})}else{j.depth&&(ne=j.stencil?34041:6402);let le={colorFormat:j.alpha?6408:6407,depthFormat:ne,scaleFactor:o};u=new XRWebGLBinding(s,t),d=u.createProjectionLayer(le),h=t.createFramebuffer(),s.updateRenderState({layers:[d]})}}a=await s.requestReferenceSpace(l),G.setContext(s),G.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}};function A(B){let j=s.inputSources;for(let ne=0;ne0&&(g.transmissionSamplerMap.value=x.texture,g.transmissionSamplerSize.value.set(x.width,x.height)),g.thickness.value=y.thickness,y.thicknessMap&&(g.thicknessMap.value=y.thicknessMap),g.attenuationDistance.value=y.attenuationDistance,g.attenuationTint.value.copy(y.attenuationTint),g.specularIntensity.value=y.specularIntensity,g.specularTint.value.copy(y.specularTint),y.specularIntensityMap&&(g.specularIntensityMap.value=y.specularIntensityMap),y.specularTintMap&&(g.specularTintMap.value=y.specularTintMap)}function f(g,y){y.matcap&&(g.matcap.value=y.matcap),y.bumpMap&&(g.bumpMap.value=y.bumpMap,g.bumpScale.value=y.bumpScale,y.side===kt&&(g.bumpScale.value*=-1)),y.normalMap&&(g.normalMap.value=y.normalMap,g.normalScale.value.copy(y.normalScale),y.side===kt&&g.normalScale.value.negate()),y.displacementMap&&(g.displacementMap.value=y.displacementMap,g.displacementScale.value=y.displacementScale,g.displacementBias.value=y.displacementBias)}function p(g,y){y.displacementMap&&(g.displacementMap.value=y.displacementMap,g.displacementScale.value=y.displacementScale,g.displacementBias.value=y.displacementBias)}function m(g,y){y.displacementMap&&(g.displacementMap.value=y.displacementMap,g.displacementScale.value=y.displacementScale,g.displacementBias.value=y.displacementBias),g.referencePosition.value.copy(y.referencePosition),g.nearDistance.value=y.nearDistance,g.farDistance.value=y.farDistance}function v(g,y){y.bumpMap&&(g.bumpMap.value=y.bumpMap,g.bumpScale.value=y.bumpScale,y.side===kt&&(g.bumpScale.value*=-1)),y.normalMap&&(g.normalMap.value=y.normalMap,g.normalScale.value.copy(y.normalScale),y.side===kt&&g.normalScale.value.negate()),y.displacementMap&&(g.displacementMap.value=y.displacementMap,g.displacementScale.value=y.displacementScale,g.displacementBias.value=y.displacementBias)}return{refreshFogUniforms:e,refreshMaterialUniforms:t}}function _C(){let r=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return r.style.display="block",r}function wt(r={}){let e=r.canvas!==void 0?r.canvas:_C(),t=r.context!==void 0?r.context:null,n=r.alpha!==void 0?r.alpha:!1,i=r.depth!==void 0?r.depth:!0,s=r.stencil!==void 0?r.stencil:!0,o=r.antialias!==void 0?r.antialias:!1,a=r.premultipliedAlpha!==void 0?r.premultipliedAlpha:!0,l=r.preserveDrawingBuffer!==void 0?r.preserveDrawingBuffer:!1,c=r.powerPreference!==void 0?r.powerPreference:"default",u=r.failIfMajorPerformanceCaveat!==void 0?r.failIfMajorPerformanceCaveat:!1,h=null,d=null,f=[],p=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.outputEncoding=ln,this.physicallyCorrectLights=!1,this.toneMapping=Hs,this.toneMappingExposure=1;let m=this,v=!1,g=0,y=0,x=null,b=-1,w=null,_=new Qe,S=new Qe,A=null,T=e.width,L=e.height,C=1,U=null,P=null,R=new Qe(0,0,T,L),G=new Qe(0,0,T,L),B=!1,j=[],ne=new Vl,le=!1,W=!1,z=null,D=new me,K=new M,q={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function ee(){return x===null?C:1}let V=t;function de(I,oe){for(let k=0;k0&&Nn(Z,I,oe),ue.length>0&&Ft(Z,ue,I,oe),Me.length>0&&Nn(Me,I,oe),x!==null&&(H.updateMultisampleRenderTarget(x),H.updateRenderTargetMipmap(x)),I.isScene===!0&&I.onAfterRender(m,I,oe),X.buffers.depth.setTest(!0),X.buffers.depth.setMask(!0),X.buffers.color.setMask(!0),X.setPolygonOffset(!1),Ne.resetDefaultState(),b=-1,w=null,p.pop(),p.length>0?d=p[p.length-1]:d=null,f.pop(),f.length>0?h=f[f.length-1]:h=null};function et(I,oe,k,Z){if(I.visible===!1)return;if(I.layers.test(oe.layers)){if(I.isGroup)k=I.renderOrder;else if(I.isLOD)I.autoUpdate===!0&&I.update(oe);else if(I.isLight)d.pushLight(I),I.castShadow&&d.pushShadow(I);else if(I.isSprite){if(!I.frustumCulled||ne.intersectsSprite(I)){Z&&K.setFromMatrixPosition(I.matrixWorld).applyMatrix4(D);let _e=E.update(I),Se=I.material;Se.visible&&h.push(I,_e,Se,k,K.z,null)}}else if(I.isImmediateRenderObject)Z&&K.setFromMatrixPosition(I.matrixWorld).applyMatrix4(D),h.push(I,null,I.material,k,K.z,null);else if((I.isMesh||I.isLine||I.isPoints)&&(I.isSkinnedMesh&&I.skeleton.frame!==se.render.frame&&(I.skeleton.update(),I.skeleton.frame=se.render.frame),!I.frustumCulled||ne.intersectsObject(I))){Z&&K.setFromMatrixPosition(I.matrixWorld).applyMatrix4(D);let _e=E.update(I),Se=I.material;if(Array.isArray(Se)){let De=_e.groups;for(let Ve=0,Oe=De.length;Ve=0&&oe<=I.width-Z&&k>=0&&k<=I.height-ue&&V.readPixels(oe,k,Z,ue,he.convert(Ve),he.convert(Oe),Me):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{let De=x!==null?$.get(x).__webglFramebuffer:null;X.bindFramebuffer(36160,De)}}},this.copyFramebufferToTexture=function(I,oe,k=0){let Z=Math.pow(2,-k),ue=Math.floor(oe.image.width*Z),Me=Math.floor(oe.image.height*Z),_e=he.convert(oe.format);te.isWebGL2&&(_e===6407&&(_e=32849),_e===6408&&(_e=32856)),H.setTexture2D(oe,0),V.copyTexImage2D(3553,k,_e,I.x,I.y,ue,Me,0),X.unbindTexture()},this.copyTextureToTexture=function(I,oe,k,Z=0){let ue=oe.image.width,Me=oe.image.height,_e=he.convert(k.format),Se=he.convert(k.type);H.setTexture2D(k,0),V.pixelStorei(37440,k.flipY),V.pixelStorei(37441,k.premultiplyAlpha),V.pixelStorei(3317,k.unpackAlignment),oe.isDataTexture?V.texSubImage2D(3553,Z,I.x,I.y,ue,Me,_e,Se,oe.image.data):oe.isCompressedTexture?V.compressedTexSubImage2D(3553,Z,I.x,I.y,oe.mipmaps[0].width,oe.mipmaps[0].height,_e,oe.mipmaps[0].data):V.texSubImage2D(3553,Z,I.x,I.y,_e,Se,oe.image),Z===0&&k.generateMipmaps&&V.generateMipmap(3553),X.unbindTexture()},this.copyTextureToTexture3D=function(I,oe,k,Z,ue=0){if(m.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let Me=I.max.x-I.min.x+1,_e=I.max.y-I.min.y+1,Se=I.max.z-I.min.z+1,De=he.convert(Z.format),Ve=he.convert(Z.type),Oe;if(Z.isDataTexture3D)H.setTexture3D(Z,0),Oe=32879;else if(Z.isDataTexture2DArray)H.setTexture2DArray(Z,0),Oe=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}V.pixelStorei(37440,Z.flipY),V.pixelStorei(37441,Z.premultiplyAlpha),V.pixelStorei(3317,Z.unpackAlignment);let He=V.getParameter(3314),Ge=V.getParameter(32878),Kt=V.getParameter(3316),vt=V.getParameter(3315),bn=V.getParameter(32877),wn=k.isCompressedTexture?k.mipmaps[0]:k.image;V.pixelStorei(3314,wn.width),V.pixelStorei(32878,wn.height),V.pixelStorei(3316,I.min.x),V.pixelStorei(3315,I.min.y),V.pixelStorei(32877,I.min.z),k.isDataTexture||k.isDataTexture3D?V.texSubImage3D(Oe,ue,oe.x,oe.y,oe.z,Me,_e,Se,De,Ve,wn.data):k.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),V.compressedTexSubImage3D(Oe,ue,oe.x,oe.y,oe.z,Me,_e,Se,De,wn.data)):V.texSubImage3D(Oe,ue,oe.x,oe.y,oe.z,Me,_e,Se,De,Ve,wn),V.pixelStorei(3314,He),V.pixelStorei(32878,Ge),V.pixelStorei(3316,Kt),V.pixelStorei(3315,vt),V.pixelStorei(32877,bn),ue===0&&Z.generateMipmaps&&V.generateMipmap(Oe),X.unbindTexture()},this.initTexture=function(I){H.setTexture2D(I,0),X.unbindTexture()},this.resetState=function(){g=0,y=0,x=null,X.reset(),Ne.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}var Qy=class extends wt{};Qy.prototype.isWebGL1Renderer=!0;var io=class{constructor(e,t=25e-5){this.name="",this.color=new fe(e),this.density=t}clone(){return new io(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}};io.prototype.isFogExp2=!0;var hs=class{constructor(e,t=1,n=1e3){this.name="",this.color=new fe(e),this.near=t,this.far=n}clone(){return new hs(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}};hs.prototype.isFog=!0;var An=class extends Ke{constructor(){super();this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.autoUpdate=e.autoUpdate,this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){let t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),t}};An.prototype.isScene=!0;var Vi=class{constructor(e,t){this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=Bl,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=fi()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,n){e*=this.stride,n*=t.stride;for(let i=0,s=this.stride;ie.far||t.push({distance:l,point:Wl.clone(),uv:qt.getUV(Wl,$u,Xl,eh,$y,Uf,ev,new O),face:null,object:this})}copy(e){return super.copy(e),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}};kf.prototype.isSprite=!0;function th(r,e,t,n,i,s){Sa.subVectors(r,t).addScalar(.5).multiply(n),i!==void 0?(Jl.x=s*Sa.x-i*Sa.y,Jl.y=i*Sa.x+s*Sa.y):Jl.copy(Sa),r.copy(e),r.x+=Jl.x,r.y+=Jl.y,r.applyMatrix4(Zy)}var nh=new M,tv=new M,nv=class extends Ke{constructor(){super();this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);let t=e.levels;for(let n=0,i=t.length;n0){let n,i;for(n=1,i=t.length;n0){nh.setFromMatrixPosition(this.matrixWorld);let i=e.ray.origin.distanceTo(nh);this.getObjectForDistance(i).raycast(e,t)}}update(e){let t=this.levels;if(t.length>1){nh.setFromMatrixPosition(e.matrixWorld),tv.setFromMatrixPosition(this.matrixWorld);let n=nh.distanceTo(tv)/e.zoom;t[0].object.visible=!0;let i,s;for(i=1,s=t.length;i=t[i].distance;i++)t[i-1].object.visible=!1,t[i].object.visible=!0;for(this._currentLevel=i-1;il)continue;d.applyMatrix4(this.matrixWorld);let A=e.ray.origin.distanceTo(d);Ae.far||t.push({distance:A,point:h.clone().applyMatrix4(this.matrixWorld),index:x,face:null,faceIndex:null,object:this})}}else{let g=Math.max(0,o.start),y=Math.min(v.count,o.start+o.count);for(let x=g,b=y-1;xl)continue;d.applyMatrix4(this.matrixWorld);let _=e.ray.origin.distanceTo(d);_e.far||t.push({distance:_,point:h.clone().applyMatrix4(this.matrixWorld),index:x,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}updateMorphTargets(){let e=this.geometry;if(e.isBufferGeometry){let t=e.morphAttributes,n=Object.keys(t);if(n.length>0){let i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=i.length;s0&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}};Hi.prototype.isLine=!0;var fv=new M,pv=new M,ji=class extends Hi{constructor(e,t){super(e,t);this.type="LineSegments"}computeLineDistances(){let e=this.geometry;if(e.isBufferGeometry)if(e.index===null){let t=e.attributes.position,n=[];for(let i=0,s=t.count;i0){let i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=i.length;s0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}};Kl.prototype.isPoints=!0;function gv(r,e,t,n,i,s,o){let a=jf.distanceSqToPoint(r);if(ai.far)return;s.push({distance:c,distanceToRay:Math.sqrt(a),point:l,index:e,face:null,object:o})}}var ah=class extends xt{constructor(e,t,n,i,s,o,a,l,c){super(e,t,n,i,s,o,a,l,c);this.format=a!==void 0?a:Nt,this.minFilter=o!==void 0?o:$e,this.magFilter=s!==void 0?s:$e,this.generateMipmaps=!1;let u=this;function h(){u.needsUpdate=!0,e.requestVideoFrameCallback(h)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(h)}clone(){return new this.constructor(this.image).copy(this)}update(){let e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}};ah.prototype.isVideoTexture=!0;var yv=class extends xt{constructor(e,t,n,i,s,o,a,l,c,u,h,d){super(null,o,a,l,c,u,i,s,h,d);this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}};yv.prototype.isCompressedTexture=!0;var vv=class extends xt{constructor(e,t,n,i,s,o,a,l,c){super(e,t,n,i,s,o,a,l,c);this.needsUpdate=!0}};vv.prototype.isCanvasTexture=!0;var so=class extends xt{constructor(e,t,n,i,s,o,a,l,c,u){if(u=u!==void 0?u:Xo,u!==Xo&&u!==Ks)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&u===Xo&&(n=bu),n===void 0&&u===Ks&&(n=Ys);super(null,i,s,o,a,l,u,n,c);this.image={width:e,height:t},this.magFilter=a!==void 0?a:Pt,this.minFilter=l!==void 0?l:Pt,this.flipY=!1,this.generateMipmaps=!1}};so.prototype.isDepthTexture=!0;var Ql=class extends we{constructor(e=1,t=8,n=0,i=Math.PI*2){super();this.type="CircleGeometry",this.parameters={radius:e,segments:t,thetaStart:n,thetaLength:i},t=Math.max(3,t);let s=[],o=[],a=[],l=[],c=new M,u=new O;o.push(0,0,0),a.push(0,0,1),l.push(.5,.5);for(let h=0,d=3;h<=t;h++,d+=3){let f=n+h/t*i;c.x=e*Math.cos(f),c.y=e*Math.sin(f),o.push(c.x,c.y,c.z),a.push(0,0,1),u.x=(o[d]/e+1)/2,u.y=(o[d+1]/e+1)/2,l.push(u.x,u.y)}for(let h=1;h<=t;h++)s.push(h,h+1,0);this.setIndex(s),this.setAttribute("position",new ge(o,3)),this.setAttribute("normal",new ge(a,3)),this.setAttribute("uv",new ge(l,2))}static fromJSON(e){return new Ql(e.radius,e.segments,e.thetaStart,e.thetaLength)}},ds=class extends we{constructor(e=1,t=1,n=1,i=8,s=1,o=!1,a=0,l=Math.PI*2){super();this.type="CylinderGeometry",this.parameters={radiusTop:e,radiusBottom:t,height:n,radialSegments:i,heightSegments:s,openEnded:o,thetaStart:a,thetaLength:l};let c=this;i=Math.floor(i),s=Math.floor(s);let u=[],h=[],d=[],f=[],p=0,m=[],v=n/2,g=0;y(),o===!1&&(e>0&&x(!0),t>0&&x(!1)),this.setIndex(u),this.setAttribute("position",new ge(h,3)),this.setAttribute("normal",new ge(d,3)),this.setAttribute("uv",new ge(f,2));function y(){let b=new M,w=new M,_=0,S=(t-e)/n;for(let A=0;A<=s;A++){let T=[],L=A/s,C=L*(t-e)+e;for(let U=0;U<=i;U++){let P=U/i,R=P*l+a,G=Math.sin(R),B=Math.cos(R);w.x=C*G,w.y=-L*n+v,w.z=C*B,h.push(w.x,w.y,w.z),b.set(G,S,B).normalize(),d.push(b.x,b.y,b.z),f.push(P,1-L),T.push(p++)}m.push(T)}for(let A=0;A.9&&S<.1&&(x<.2&&(o[y+0]+=1),b<.2&&(o[y+2]+=1),w<.2&&(o[y+4]+=1))}}function d(y){s.push(y.x,y.y,y.z)}function f(y,x){let b=y*3;x.x=e[b+0],x.y=e[b+1],x.z=e[b+2]}function p(){let y=new M,x=new M,b=new M,w=new M,_=new O,S=new O,A=new O;for(let T=0,L=0;T0)l=i-1;else{l=i;break}if(i=l,n[i]===o)return i/(s-1);let u=n[i],d=n[i+1]-u,f=(o-u)/d;return(i+f)/(s-1)}getTangent(e,t){let n=1e-4,i=e-n,s=e+n;i<0&&(i=0),s>1&&(s=1);let o=this.getPoint(i),a=this.getPoint(s),l=t||(o.isVector2?new O:new M);return l.copy(a).sub(o).normalize(),l}getTangentAt(e,t){let n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t){let n=new M,i=[],s=[],o=[],a=new M,l=new me;for(let f=0;f<=e;f++){let p=f/e;i[f]=this.getTangentAt(p,new M),i[f].normalize()}s[0]=new M,o[0]=new M;let c=Number.MAX_VALUE,u=Math.abs(i[0].x),h=Math.abs(i[0].y),d=Math.abs(i[0].z);u<=c&&(c=u,n.set(1,0,0)),h<=c&&(c=h,n.set(0,1,0)),d<=c&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),s[0].crossVectors(i[0],a),o[0].crossVectors(i[0],s[0]);for(let f=1;f<=e;f++){if(s[f]=s[f-1].clone(),o[f]=o[f-1].clone(),a.crossVectors(i[f-1],i[f]),a.length()>Number.EPSILON){a.normalize();let p=Math.acos(Ln(i[f-1].dot(i[f]),-1,1));s[f].applyMatrix4(l.makeRotationAxis(a,p))}o[f].crossVectors(i[f],s[f])}if(t===!0){let f=Math.acos(Ln(s[0].dot(s[e]),-1,1));f/=e,i[0].dot(a.crossVectors(s[0],s[e]))>0&&(f=-f);for(let p=1;p<=e;p++)s[p].applyMatrix4(l.makeRotationAxis(i[p],f*p)),o[p].crossVectors(i[p],s[p])}return{tangents:i,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){let e={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}},lo=class extends gi{constructor(e=0,t=0,n=1,i=1,s=0,o=Math.PI*2,a=!1,l=0){super();this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=i,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(e,t){let n=t||new O,i=Math.PI*2,s=this.aEndAngle-this.aStartAngle,o=Math.abs(s)i;)s-=i;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let c,u;this.closed||a>0?c=i[(a-1)%s]:(hh.subVectors(i[0],i[1]).add(i[0]),c=hh);let h=i[a%s],d=i[(a+1)%s];if(this.closed||a+2i.length-2?i.length-1:o+1],h=i[o>i.length-3?i.length-1:o+2];return n.set(bv(a,l.x,c.x,u.x,h.x),bv(a,l.y,c.y,u.y,h.y)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t80*t){a=c=r[0],l=u=r[1];for(let p=t;pc&&(c=h),d>u&&(u=d);f=Math.max(c-a,u-l),f=f!==0?1/f:0}return ec(s,o,t,a,l,f),o}};function wv(r,e,t,n,i){let s,o;if(i===QC(r,e,t,n)>0)for(s=e;s=e;s-=n)o=Av(s,r[s],r[s+1],o);return o&&fh(o,o.next)&&(nc(o),o=o.next),o}function fs(r,e){if(!r)return r;e||(e=r);let t=r,n;do if(n=!1,!t.steiner&&(fh(t,t.next)||Yt(t.prev,t,t.next)===0)){if(nc(t),t=e=t.prev,t===t.next)break;n=!0}else t=t.next;while(n||t!==e);return e}function ec(r,e,t,n,i,s,o){if(!r)return;!o&&s&&WC(r,n,i,s);let a=r,l,c;for(;r.prev!==r.next;){if(l=r.prev,c=r.next,s?FC(r,n,i,s):OC(r)){e.push(l.i/t),e.push(r.i/t),e.push(c.i/t),nc(r),r=c.next,a=c.next;continue}if(r=c,r===a){o?o===1?(r=zC(fs(r),e,t),ec(r,e,t,n,i,s,2)):o===2&&GC(r,e,t,n,i,s):ec(fs(r),e,t,n,i,s,1);break}}}function OC(r){let e=r.prev,t=r,n=r.next;if(Yt(e,t,n)>=0)return!1;let i=r.next.next;for(;i!==r.prev;){if(Na(e.x,e.y,t.x,t.y,n.x,n.y,i.x,i.y)&&Yt(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function FC(r,e,t,n){let i=r.prev,s=r,o=r.next;if(Yt(i,s,o)>=0)return!1;let a=i.xs.x?i.x>o.x?i.x:o.x:s.x>o.x?s.x:o.x,u=i.y>s.y?i.y>o.y?i.y:o.y:s.y>o.y?s.y:o.y,h=tp(a,l,e,t,n),d=tp(c,u,e,t,n),f=r.prevZ,p=r.nextZ;for(;f&&f.z>=h&&p&&p.z<=d;){if(f!==r.prev&&f!==r.next&&Na(i.x,i.y,s.x,s.y,o.x,o.y,f.x,f.y)&&Yt(f.prev,f,f.next)>=0||(f=f.prevZ,p!==r.prev&&p!==r.next&&Na(i.x,i.y,s.x,s.y,o.x,o.y,p.x,p.y)&&Yt(p.prev,p,p.next)>=0))return!1;p=p.nextZ}for(;f&&f.z>=h;){if(f!==r.prev&&f!==r.next&&Na(i.x,i.y,s.x,s.y,o.x,o.y,f.x,f.y)&&Yt(f.prev,f,f.next)>=0)return!1;f=f.prevZ}for(;p&&p.z<=d;){if(p!==r.prev&&p!==r.next&&Na(i.x,i.y,s.x,s.y,o.x,o.y,p.x,p.y)&&Yt(p.prev,p,p.next)>=0)return!1;p=p.nextZ}return!0}function zC(r,e,t){let n=r;do{let i=n.prev,s=n.next.next;!fh(i,s)&&Sv(i,n,n.next,s)&&tc(i,s)&&tc(s,i)&&(e.push(i.i/t),e.push(n.i/t),e.push(s.i/t),nc(n),nc(n.next),n=r=s),n=n.next}while(n!==r);return fs(n)}function GC(r,e,t,n,i,s){let o=r;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&qC(o,a)){let l=Mv(o,a);o=fs(o,o.next),l=fs(l,l.next),ec(o,e,t,n,i,s),ec(l,e,t,n,i,s);return}a=a.next}o=o.next}while(o!==r)}function UC(r,e,t,n){let i=[],s,o,a,l,c;for(s=0,o=e.length;s=t.next.y&&t.next.y!==t.y){let d=t.x+(i-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(d<=n&&d>s){if(s=d,d===n){if(i===t.y)return t;if(i===t.next.y)return t.next}o=t.x=t.x&&t.x>=l&&n!==t.x&&Na(io.x||t.x===o.x&&jC(o,t)))&&(o=t,u=h)),t=t.next;while(t!==a);return o}function jC(r,e){return Yt(r.prev,r,e.prev)<0&&Yt(e.next,r,r.next)<0}function WC(r,e,t,n){let i=r;do i.z===null&&(i.z=tp(i.x,i.y,e,t,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==r);i.prevZ.nextZ=null,i.prevZ=null,JC(i)}function JC(r){let e,t,n,i,s,o,a,l,c=1;do{for(t=r,r=null,s=null,o=0;t;){for(o++,n=t,a=0,e=0;e0||l>0&&n;)a!==0&&(l===0||!n||t.z<=n.z)?(i=t,t=t.nextZ,a--):(i=n,n=n.nextZ,l--),s?s.nextZ=i:r=i,i.prevZ=s,s=i;t=n}s.nextZ=null,c*=2}while(o>1);return r}function tp(r,e,t,n,i){return r=32767*(r-t)*i,e=32767*(e-n)*i,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,r|e<<1}function XC(r){let e=r,t=r;do(e.x=0&&(r-o)*(n-a)-(t-o)*(e-a)>=0&&(t-o)*(s-a)-(i-o)*(n-a)>=0}function qC(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!YC(r,e)&&(tc(r,e)&&tc(e,r)&&KC(r,e)&&(Yt(r.prev,r,e.prev)||Yt(r,e.prev,e))||fh(r,e)&&Yt(r.prev,r,r.next)>0&&Yt(e.prev,e,e.next)>0)}function Yt(r,e,t){return(e.y-r.y)*(t.x-e.x)-(e.x-r.x)*(t.y-e.y)}function fh(r,e){return r.x===e.x&&r.y===e.y}function Sv(r,e,t,n){let i=mh(Yt(r,e,t)),s=mh(Yt(r,e,n)),o=mh(Yt(t,n,r)),a=mh(Yt(t,n,e));return!!(i!==s&&o!==a||i===0&&ph(r,t,e)||s===0&&ph(r,n,e)||o===0&&ph(t,r,n)||a===0&&ph(t,e,n))}function ph(r,e,t){return e.x<=Math.max(r.x,t.x)&&e.x>=Math.min(r.x,t.x)&&e.y<=Math.max(r.y,t.y)&&e.y>=Math.min(r.y,t.y)}function mh(r){return r>0?1:r<0?-1:0}function YC(r,e){let t=r;do{if(t.i!==r.i&&t.next.i!==r.i&&t.i!==e.i&&t.next.i!==e.i&&Sv(t,t.next,r,e))return!0;t=t.next}while(t!==r);return!1}function tc(r,e){return Yt(r.prev,r,r.next)<0?Yt(r,e,r.next)>=0&&Yt(r,r.prev,e)>=0:Yt(r,e,r.prev)<0||Yt(r,r.next,e)<0}function KC(r,e){let t=r,n=!1,i=(r.x+e.x)/2,s=(r.y+e.y)/2;do t.y>s!=t.next.y>s&&t.next.y!==t.y&&i<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(n=!n),t=t.next;while(t!==r);return n}function Mv(r,e){let t=new np(r.i,r.x,r.y),n=new np(e.i,e.x,e.y),i=r.next,s=e.prev;return r.next=e,e.prev=r,t.next=i,i.prev=t,n.next=t,t.prev=n,s.next=n,n.prev=s,n}function Av(r,e,t,n){let i=new np(r,e,t);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function nc(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function np(r,e,t){this.i=r,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function QC(r,e,t,n){let i=0;for(let s=e,o=t-n;s2&&r[e-1].equals(r[0])&&r.pop()}function Tv(r,e){for(let t=0;tNumber.EPSILON){let ve=Math.sqrt(pe),Fe=Math.sqrt(re*re+ye*ye),Ce=H.x-Y/ve,J=H.y+E/ve,xe=Q.x-ye/Fe,he=Q.y+re/Fe,Ne=((xe-Ce)*ye-(he-J)*re)/(E*ye-Y*re);ce=Ce+E*Ne-$.x,ie=J+Y*Ne-$.y;let Be=ce*ce+ie*ie;if(Be<=2)return new O(ce,ie);N=Math.sqrt(Be/2)}else{let ve=!1;E>Number.EPSILON?re>Number.EPSILON&&(ve=!0):E<-Number.EPSILON?re<-Number.EPSILON&&(ve=!0):Math.sign(Y)===Math.sign(ye)&&(ve=!0),ve?(ce=-Y,ie=E,N=Math.sqrt(pe)):(ce=E,ie=Y,N=Math.sqrt(pe/2))}return new O(ce/N,ie/N)}let le=[];for(let $=0,H=R.length,Q=H-1,ce=$+1;$=0;$--){let H=$/v,Q=f*Math.cos(H*Math.PI/2),ce=p*Math.sin(H*Math.PI/2)+m;for(let ie=0,N=R.length;ie=0;){let ce=Q,ie=Q-1;ie<0&&(ie=$.length-1);for(let N=0,E=u+v*2;N=0?(e(y-l,v,h),d.subVectors(u,h)):(e(y+l,v,h),d.subVectors(h,u)),v-l>=0?(e(y,v-l,h),f.subVectors(u,h)):(e(y,v+l,h),f.subVectors(h,u)),c.crossVectors(d,f).normalize(),o.push(c.x,c.y,c.z),a.push(y,v)}}for(let m=0;m0)&&f.push(x,b,_),(g!==n-1||l=n)){h.push(c.times[f]);for(let m=0;ms.tracks[l].times[0]&&(a=s.tracks[l].times[0]);for(let l=0;l=a.times[p]){let g=p*h+u,y=g+h-u;m=Ht.arraySlice(a.values,g,y)}else{let g=a.createInterpolant(),y=u,x=h-u;g.evaluate(s),m=Ht.arraySlice(g.resultBuffer,y,x)}l==="quaternion"&&new Tt().fromArray(m).normalize().conjugate().toArray(m);let v=c.times.length;for(let g=0;g=s)){let a=t[1];e=s)break t}o=n,n=0;break n}break e}for(;n>>1;et;)--o;if(++o,s!==0||o!==i){s>=o&&(o=Math.max(o,1),s=o-1);let a=this.getValueSize();this.times=Ht.arraySlice(n,s,o),this.values=Ht.arraySlice(this.values,s*a,o*a)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);let n=this.times,i=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==s;a++){let l=n[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),e=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),e=!1;break}o=l}if(i!==void 0&&Ht.isTypedArray(i))for(let a=0,l=i.length;a!==l;++a){let c=i[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),e=!1;break}}return e}optimize(){let e=Ht.arraySlice(this.times),t=Ht.arraySlice(this.values),n=this.getValueSize(),i=this.getInterpolation()===Zd,s=e.length-1,o=1;for(let a=1;a0){e[o]=e[s];for(let a=s*n,l=o*n,c=0;c!==n;++c)t[l+c]=t[a+c];++o}return o!==e.length?(this.times=Ht.arraySlice(e,0,o),this.values=Ht.arraySlice(t,0,o*n)):(this.times=e,this.values=t),this}clone(){let e=Ht.arraySlice(this.times,0),t=Ht.arraySlice(this.values,0),n=this.constructor,i=new n(this.name,e,t);return i.createInterpolant=this.createInterpolant,i}};Yi.prototype.TimeBufferType=Float32Array;Yi.prototype.ValueBufferType=Float32Array;Yi.prototype.DefaultInterpolation=Er;var fo=class extends Yi{};fo.prototype.ValueTypeName="bool";fo.prototype.ValueBufferType=Array;fo.prototype.DefaultInterpolation=Yr;fo.prototype.InterpolantFactoryMethodLinear=void 0;fo.prototype.InterpolantFactoryMethodSmooth=void 0;var fp=class extends Yi{};fp.prototype.ValueTypeName="color";var po=class extends Yi{};po.prototype.ValueTypeName="number";var Pv=class extends qi{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e,t,n,i){let s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(n-t)/(i-t),c=e*a;for(let u=c+a;c!==u;c+=4)Tt.slerpFlat(s,0,o,c-a,o,c,l);return s}},ms=class extends Yi{InterpolantFactoryMethodLinear(e){return new Pv(this.times,this.values,this.getValueSize(),e)}};ms.prototype.ValueTypeName="quaternion";ms.prototype.DefaultInterpolation=Er;ms.prototype.InterpolantFactoryMethodSmooth=void 0;var mo=class extends Yi{};mo.prototype.ValueTypeName="string";mo.prototype.ValueBufferType=Array;mo.prototype.DefaultInterpolation=Yr;mo.prototype.InterpolantFactoryMethodLinear=void 0;mo.prototype.InterpolantFactoryMethodSmooth=void 0;var go=class extends Yi{};go.prototype.ValueTypeName="vector";var Ca=class{constructor(e,t=-1,n,i=$d){this.name=e,this.tracks=n,this.duration=t,this.blendMode=i,this.uuid=fi(),this.duration<0&&this.resetDuration()}static parse(e){let t=[],n=e.tracks,i=1/(e.fps||1);for(let o=0,a=n.length;o!==a;++o)t.push(iL(n[o]).scale(i));let s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){let t=[],n=e.tracks,i={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,o=n.length;s!==o;++s)t.push(Yi.toJSON(n[s]));return i}static CreateFromMorphTargetSequence(e,t,n,i){let s=t.length,o=[];for(let a=0;a1){let h=u[1],d=i[h];d||(i[h]=d=[]),d.push(c)}}let o=[];for(let a in i)o.push(this.CreateFromMorphTargetSequence(a,i[a],t,n));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;let n=function(h,d,f,p,m){if(f.length!==0){let v=[],g=[];Ht.flattenJSON(f,v,g,p),v.length!==0&&m.push(new h(d,v,g))}},i=[],s=e.name||"default",o=e.fps||30,a=e.blendMode,l=e.length||-1,c=e.hierarchy||[];for(let h=0;h0||e.search(/^data\:image\/jpeg/)===0;s.format=l?Nt:zt,s.needsUpdate=!0,t!==void 0&&t(s)},n,i),s}},Rv=class extends gi{constructor(){super();this.type="CurvePath",this.curves=[],this.autoClose=!1}add(e){this.curves.push(e)}closePath(){let e=this.curves[0].getPoint(0),t=this.curves[this.curves.length-1].getPoint(1);e.equals(t)||this.curves.push(new ri(t,e))}getPoint(e){let t=e*this.getLength(),n=this.getCurveLengths(),i=0;for(;i=t){let s=n[i]-t,o=this.curves[i],a=o.getLength(),l=a===0?0:1-s/a;return o.getPointAt(l)}i++}return null}getLength(){let e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;let e=[],t=0;for(let n=0,i=this.curves.length;n1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,n=e.curves.length;t0){let h=c.getPoint(0);h.equals(this.currentPoint)||this.lineTo(h.x,h.y)}this.curves.push(c);let u=c.getPoint(1);return this.currentPoint.copy(u),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){let e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}},yi=class extends cc{constructor(e){super(e);this.uuid=fi(),this.type="Shape",this.holes=[]}getPointsHoles(e){let t=[];for(let n=0,i=this.holes.length;n0:i.vertexColors=e.vertexColors),e.uniforms!==void 0)for(let s in e.uniforms){let o=e.uniforms[s];switch(i.uniforms[s]={},o.type){case"t":i.uniforms[s].value=n(o.value);break;case"c":i.uniforms[s].value=new fe().setHex(o.value);break;case"v2":i.uniforms[s].value=new O().fromArray(o.value);break;case"v3":i.uniforms[s].value=new M().fromArray(o.value);break;case"v4":i.uniforms[s].value=new Qe().fromArray(o.value);break;case"m3":i.uniforms[s].value=new Dt().fromArray(o.value);break;case"m4":i.uniforms[s].value=new me().fromArray(o.value);break;default:i.uniforms[s].value=o.value}}if(e.defines!==void 0&&(i.defines=e.defines),e.vertexShader!==void 0&&(i.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(i.fragmentShader=e.fragmentShader),e.extensions!==void 0)for(let s in e.extensions)i.extensions[s]=e.extensions[s];if(e.shading!==void 0&&(i.flatShading=e.shading===1),e.size!==void 0&&(i.size=e.size),e.sizeAttenuation!==void 0&&(i.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(i.map=n(e.map)),e.matcap!==void 0&&(i.matcap=n(e.matcap)),e.alphaMap!==void 0&&(i.alphaMap=n(e.alphaMap)),e.bumpMap!==void 0&&(i.bumpMap=n(e.bumpMap)),e.bumpScale!==void 0&&(i.bumpScale=e.bumpScale),e.normalMap!==void 0&&(i.normalMap=n(e.normalMap)),e.normalMapType!==void 0&&(i.normalMapType=e.normalMapType),e.normalScale!==void 0){let s=e.normalScale;Array.isArray(s)===!1&&(s=[s,s]),i.normalScale=new O().fromArray(s)}return e.displacementMap!==void 0&&(i.displacementMap=n(e.displacementMap)),e.displacementScale!==void 0&&(i.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(i.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(i.roughnessMap=n(e.roughnessMap)),e.metalnessMap!==void 0&&(i.metalnessMap=n(e.metalnessMap)),e.emissiveMap!==void 0&&(i.emissiveMap=n(e.emissiveMap)),e.emissiveIntensity!==void 0&&(i.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(i.specularMap=n(e.specularMap)),e.specularIntensityMap!==void 0&&(i.specularIntensityMap=n(e.specularIntensityMap)),e.specularTintMap!==void 0&&(i.specularTintMap=n(e.specularTintMap)),e.envMap!==void 0&&(i.envMap=n(e.envMap)),e.envMapIntensity!==void 0&&(i.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(i.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(i.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(i.lightMap=n(e.lightMap)),e.lightMapIntensity!==void 0&&(i.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(i.aoMap=n(e.aoMap)),e.aoMapIntensity!==void 0&&(i.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(i.gradientMap=n(e.gradientMap)),e.clearcoatMap!==void 0&&(i.clearcoatMap=n(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(i.clearcoatRoughnessMap=n(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(i.clearcoatNormalMap=n(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(i.clearcoatNormalScale=new O().fromArray(e.clearcoatNormalScale)),e.transmissionMap!==void 0&&(i.transmissionMap=n(e.transmissionMap)),e.thicknessMap!==void 0&&(i.thicknessMap=n(e.thicknessMap)),i}setTextures(e){return this.textures=e,this}},Ei=class{static decodeText(e){if(typeof TextDecoder!="undefined")return new TextDecoder().decode(e);let t="";for(let n=0,i=e.length;n0){let l=new yo(t);s=new lc(l),s.setCrossOrigin(this.crossOrigin);for(let c=0,u=e.length;c0){i=new lc(this.manager),i.setCrossOrigin(this.crossOrigin);for(let o=0,a=e.length;oNumber.EPSILON){if(C<0&&(A=x[S],L=-L,T=x[_],C=-C),y.yT.y)continue;if(y.y===A.y){if(y.x===A.x)return!0}else{let U=C*(y.x-A.x)-L*(y.y-A.y);if(U===0)return!0;if(U<0)continue;w=!w}}else{if(y.y!==A.y)continue;if(T.x<=y.x&&y.x<=A.x||A.x<=y.x&&y.x<=T.x)return!0}}return w}let s=ur.isClockWise,o=this.subPaths;if(o.length===0)return[];if(t===!0)return n(o);let a,l,c,u=[];if(o.length===1)return l=o[0],c=new yi,c.curves=l.curves,u.push(c),u;let h=!s(o[0].getPoints());h=e?!h:h;let d=[],f=[],p=[],m=0,v;f[m]=void 0,p[m]=[];for(let y=0,x=o.length;y1){let y=!1,x=[];for(let b=0,w=f.length;b0&&(y||(p=d))}let g;for(let y=0,x=f.length;y0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(n,i,this._addIndex*t,1,t);for(let l=t,c=t+t;l!==c;++l)if(n[l]!==n[l+t]){a.setValue(n,i);break}}saveOriginalState(){let e=this.binding,t=this.buffer,n=this.valueSize,i=n*this._origIndex;e.getValue(t,i);for(let s=n,o=i;s!==o;++s)t[s]=t[i+s%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){let e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){let e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let n=e;n=.5)for(let o=0;o!==s;++o)e[t+o]=e[n+o]}_slerp(e,t,n,i){Tt.slerpFlat(e,t,e,t,e,n,i)}_slerpAdditive(e,t,n,i,s){let o=this._workIndex*s;Tt.multiplyQuaternionsFlat(e,o,e,t,e,n),Tt.slerpFlat(e,t,e,t,e,o,i)}_lerp(e,t,n,i,s){let o=1-i;for(let a=0;a!==s;++a){let l=t+a;e[l]=e[l]*o+e[n+a]*i}}_lerpAdditive(e,t,n,i,s){for(let o=0;o!==s;++o){let a=t+o;e[a]=e[a]+e[n+o]*i}}},Np="\\[\\]\\.:\\/",lL=new RegExp("["+Np+"]","g"),Cp="[^"+Np+"]",cL="[^"+Np.replace("\\.","")+"]",uL=/((?:WC+[\/:])*)/.source.replace("WC",Cp),hL=/(WCOD+)?/.source.replace("WCOD",cL),dL=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Cp),fL=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Cp),pL=new RegExp("^"+uL+hL+dL+fL+"$"),mL=["material","materials","bones"],Kv=class{constructor(e,t,n){let i=n||nt.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,i)}getValue(e,t){this.bind();let n=this._targetGroup.nCachedObjects_,i=this._bindings[n];i!==void 0&&i.getValue(e,t)}setValue(e,t){let n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,s=n.length;i!==s;++i)n[i].setValue(e,t)}bind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].bind()}unbind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].unbind()}},nt=class{constructor(e,t,n){this.path=t,this.parsedPath=n||nt.parseTrackName(t),this.node=nt.findNode(e,this.parsedPath.nodeName)||e,this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,n){return e&&e.isAnimationObjectGroup?new nt.Composite(e,t,n):new nt(e,t,n)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(lL,"")}static parseTrackName(e){let t=pL.exec(e);if(!t)throw new Error("PropertyBinding: Cannot parse trackName: "+e);let n={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(i!==void 0&&i!==-1){let s=n.nodeName.substring(i+1);mL.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return n}static findNode(e,t){if(!t||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){let n=e.skeleton.getBoneByName(t);if(n!==void 0)return n}if(e.children){let n=function(s){for(let o=0;o=s){let h=s++,d=e[h];t[d.uuid]=u,e[u]=d,t[c]=h,e[h]=l;for(let f=0,p=i;f!==p;++f){let m=n[f],v=m[h],g=m[u];m[u]=v,m[h]=g}}}this.nCachedObjects_=s}uncache(){let e=this._objects,t=this._indicesByUUID,n=this._bindings,i=n.length,s=this.nCachedObjects_,o=e.length;for(let a=0,l=arguments.length;a!==l;++a){let c=arguments[a],u=c.uuid,h=t[u];if(h!==void 0)if(delete t[u],h0&&(t[f.uuid]=h),e[h]=f,e.pop();for(let p=0,m=i;p!==m;++p){let v=n[p];v[h]=v[d],v.pop()}}}this.nCachedObjects_=s}subscribe_(e,t){let n=this._bindingsIndicesByPath,i=n[e],s=this._bindings;if(i!==void 0)return s[i];let o=this._paths,a=this._parsedPaths,l=this._objects,c=l.length,u=this.nCachedObjects_,h=new Array(c);i=s.length,n[e]=i,o.push(e),a.push(t),s.push(h);for(let d=u,f=l.length;d!==f;++d){let p=l[d];h[d]=new nt(p,e,t)}return h}unsubscribe_(e){let t=this._bindingsIndicesByPath,n=t[e];if(n!==void 0){let i=this._paths,s=this._parsedPaths,o=this._bindings,a=o.length-1,l=o[a],c=e[a];t[c]=n,o[n]=l,o.pop(),s[n]=s[a],s.pop(),i[n]=i[a],i.pop()}}};Qv.prototype.isAnimationObjectGroup=!0;var Zv=class{constructor(e,t,n=null,i=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=n,this.blendMode=i;let s=t.tracks,o=s.length,a=new Array(o),l={endingStart:qo,endingEnd:qo};for(let c=0;c!==o;++c){let u=s[c].createInterpolant(null);a[c]=u,u.settings=l}this._interpolantSettings=l,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=B_,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,n){if(e.fadeOut(t),this.fadeIn(t),n){let i=this._clip.duration,s=e._clip.duration,o=s/i,a=i/s;e.warp(1,o,t),this.warp(a,1,t)}return this}crossFadeTo(e,t,n){return e.crossFadeFrom(this,t,n)}stopFading(){let e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,n){let i=this._mixer,s=i.time,o=this.timeScale,a=this._timeScaleInterpolant;a===null&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);let l=a.parameterPositions,c=a.sampleValues;return l[0]=s,l[1]=s+n,c[0]=e/o,c[1]=t/o,this}stopWarping(){let e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,n,i){if(!this.enabled){this._updateWeight(e);return}let s=this._startTime;if(s!==null){let l=(e-s)*n;if(l<0||n===0)return;this._startTime=null,t=n*l}t*=this._updateTimeScale(e);let o=this._updateTime(t),a=this._updateWeight(e);if(a>0){let l=this._interpolants,c=this._propertyBindings;switch(this.blendMode){case Qg:for(let u=0,h=l.length;u!==h;++u)l[u].evaluate(o),c[u].accumulateAdditive(a);break;case $d:default:for(let u=0,h=l.length;u!==h;++u)l[u].evaluate(o),c[u].accumulate(i,a)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;let n=this._weightInterpolant;if(n!==null){let i=n.evaluate(e)[0];t*=i,e>n.parameterPositions[1]&&(this.stopFading(),i===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;let n=this._timeScaleInterpolant;n!==null&&(t*=n.evaluate(e)[0],e>n.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t))}return this._effectiveTimeScale=t,t}_updateTime(e){let t=this._clip.duration,n=this.loop,i=this.time+e,s=this._loopCount,o=n===O_;if(e===0)return s===-1?i:o&&(s&1)==1?t-i:i;if(n===R_){s===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(i>=t)i=t;else if(i<0)i=0;else{this.time=i;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(s===-1&&(e>=0?(s=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),i>=t||i<0){let a=Math.floor(i/t);i-=t*a,s+=Math.abs(a);let l=this.repetitions-s;if(l<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=e>0?t:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(l===1){let c=e<0;this._setEndings(c,!c,o)}else this._setEndings(!1,!1,o);this._loopCount=s,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=i;if(o&&(s&1)==1)return t-i}return i}_setEndings(e,t,n){let i=this._interpolantSettings;n?(i.endingStart=Yo,i.endingEnd=Yo):(e?i.endingStart=this.zeroSlopeAtStart?Yo:qo:i.endingStart=wu,t?i.endingEnd=this.zeroSlopeAtEnd?Yo:qo:i.endingEnd=wu)}_scheduleFading(e,t,n){let i=this._mixer,s=i.time,o=this._weightInterpolant;o===null&&(o=i._lendControlInterpolant(),this._weightInterpolant=o);let a=o.parameterPositions,l=o.sampleValues;return a[0]=s,l[0]=t,a[1]=s+e,l[1]=n,this}},$v=class extends cn{constructor(e){super();this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){let n=e._localRoot||this._root,i=e._clip.tracks,s=i.length,o=e._propertyBindings,a=e._interpolants,l=n.uuid,c=this._bindingsByRootAndName,u=c[l];u===void 0&&(u={},c[l]=u);for(let h=0;h!==s;++h){let d=i[h],f=d.name,p=u[f];if(p!==void 0)o[h]=p;else{if(p=o[h],p!==void 0){p._cacheIndex===null&&(++p.referenceCount,this._addInactiveBinding(p,l,f));continue}let m=t&&t._propertyBindings[h].binding.parsedPath;p=new Yv(nt.create(n,f,m),d.ValueTypeName,d.getValueSize()),++p.referenceCount,this._addInactiveBinding(p,l,f),o[h]=p}a[h].resultBuffer=p.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){let n=(e._localRoot||this._root).uuid,i=e._clip.uuid,s=this._actionsByClip[i];this._bindAction(e,s&&s.knownActions[0]),this._addInactiveAction(e,i,n)}let t=e._propertyBindings;for(let n=0,i=t.length;n!==i;++n){let s=t[n];s.useCount++==0&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){let t=e._propertyBindings;for(let n=0,i=t.length;n!==i;++n){let s=t[n];--s.useCount==0&&(s.restoreOriginalState(),this._takeBackBinding(s))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;let e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){let t=e._cacheIndex;return t!==null&&t=0;--n)e[n].stop();return this}update(e){e*=this.timeScale;let t=this._actions,n=this._nActiveActions,i=this.time+=e,s=Math.sign(e),o=this._accuIndex^=1;for(let c=0;c!==n;++c)t[c]._update(i,e,s,o);let a=this._bindings,l=this._nActiveBindings;for(let c=0;c!==l;++c)a[c].apply(o);return this}setTime(e){this.time=0;for(let t=0;tthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return ix.copy(e).clamp(this.min,this.max).sub(e).length()}intersect(e){return this.min.max(e.min),this.max.min(e.max),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}};Pa.prototype.isBox2=!0;var rx=new M,wh=new M,qn=class{constructor(e=new M,t=new M){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){rx.subVectors(e,this.start),wh.subVectors(this.end,this.start);let n=wh.dot(wh),s=wh.dot(rx)/n;return t&&(s=Ln(s,0,1)),s}closestPointToPoint(e,t,n){let i=this.closestPointToPointParameter(e,t);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}},sx=class extends Ke{constructor(e){super();this.material=e,this.render=function(){},this.hasPositions=!1,this.hasNormals=!1,this.hasColors=!1,this.hasUvs=!1,this.positionArray=null,this.normalArray=null,this.colorArray=null,this.uvArray=null,this.count=0}};sx.prototype.isImmediateRenderObject=!0;var ox=new M,Pp=class extends Ke{constructor(e,t){super();this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t;let n=new we,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let o=0,a=1,l=32;o=0,fc=new M,fx=new M,vL=new O,px=new M,mx=new Tt,pc=2*Math.PI,Gp=class extends cn{constructor(e,t){super();t===void 0&&console.warn('THREE.OrbitControls: The second parameter "domElement" is now mandatory.'),t===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.object=e,this.domElement=t,this.enabled=!0,this.useKeyEvents=!0,this.target=new M,this.object.getTarget(this.target),this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0+1*Ee.DEG2RAD,this.maxPolarAngle=Math.PI-1*Ee.DEG2RAD,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.125,this.enableZoom=!0,this.zoomSpeed=2,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.autoRotateClockwise=!0,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:Us.ROTATE,MIDDLE:Us.DOLLY,RIGHT:Us.PAN},this.touches={ONE:ks.ROTATE,TWO:ks.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=function(){return f.phi},this.getAzimuthalAngle=function(){return f.theta},this.saveState=function(){l.target0.copy(l.target),l.position0.copy(l.object.position),l.zoom0=l.object.zoom},this.reset=function(){l.target.copy(l.target0),l.object.position.copy(l.position0),l.object.zoom=l.zoom0,n=0,l.object.updateProjectionMatrix(),l.dispatchEvent(Fp),l.update(),u=c.NONE},this.update=function(){let F=l.object.position;fc.copy(F).sub(l.target),f.setFromVector3(fc),l.object.isUpVectorFlipped&&(f.phi*=-1,f.theta-=Math.PI),l.autoRotate&&u===c.NONE&&(l.autoRotateClockwise===!0?R(U()):G(U())),l.rotationLimitsMode!==l.rotationLimitsOptions.HORIZONTAL&&(f.phi+=p.phi),(l.rotationLimitsMode!==l.rotationLimitsOptions.VERTICAL||l.autoRotate===!0)&&(f.theta+=p.theta),(l.rotationLimitsMode===l.rotationLimitsOptions.VERTICAL||l.rotationLimitsMode===l.rotationLimitsOptions.BOTH)&&(f.phi=Math.max(i,Math.min(s,f.phi))),(l.rotationLimitsMode===l.rotationLimitsOptions.HORIZONTAL||l.rotationLimitsMode===l.rotationLimitsOptions.BOTH)&&(n+=p.theta,n>l.rotationHorizontalOffset.max?(f.theta=a,n=l.rotationHorizontalOffset.max):n<-l.rotationHorizontalOffset.min&&(f.theta=o,n=-l.rotationHorizontalOffset.min));let Pe=l.minAzimuthAngle,et=l.maxAzimuthAngle;isFinite(Pe)&&isFinite(et)&&(Pe<-Math.PI?Pe+=pc:Pe>Math.PI&&(Pe-=pc),et<-Math.PI?et+=pc:et>Math.PI&&(et-=pc),Pe<=et?f.theta=Math.max(Pe,Math.min(et,f.theta)):f.theta=f.theta>(Pe+et)/2?Math.max(Pe,f.theta):Math.min(et,f.theta)),f.radius*=m,f.radius=Math.max(l.minDistance,Math.min(l.maxDistance,f.radius)),l.target.add(v),fc.setFromSpherical(f),F.copy(l.target).add(fc);let Ft=f.phi%pc;return fx.copy(fc).normalize(),l.object.up.copy(Ke.DefaultUp).applyAxisAngle(fx,l.object.angleOffsetFromUp),Ft>0&&Ft>Math.PI||Ft<0&&Ft>-Math.PI?(l.object.up.negate(),l.object.lookAt(l.target),l.object.isUpVectorFlipped=!0):(l.object.lookAt(l.target),l.object.isUpVectorFlipped=!1),l.enableDamping===!0?(p.theta*=1-l.dampingFactor,p.phi*=1-l.dampingFactor):p.set(0,0,0),v.set(0,0,0),m=1,g||px.distanceToSquared(l.object.position)>d||8*(1-mx.dot(l.object.quaternion))>h?(l.dispatchEvent(Fp),g&&l.dispatchEvent(yL),px.copy(l.object.position),mx.copy(l.object.quaternion),g=!1,!0):(p.set(0,0,0),!1)},this.dispose=function(){l.domElement.removeEventListener("contextmenu",xn),l.domElement.removeEventListener("pointerdown",xe),l.domElement.removeEventListener("wheel",Bn),l.domElement.removeEventListener("touchstart",En),l.domElement.removeEventListener("touchend",_r),l.domElement.removeEventListener("touchmove",Di),l.domElement.ownerDocument.removeEventListener("pointermove",he),l.domElement.ownerDocument.removeEventListener("pointerup",Ne),l.domElement.removeEventListener("gesturestart",X),l.domElement.removeEventListener("gesturechange",X),l.domElement.removeEventListener("gestureend",X),window.removeEventListener("keydown",Mt,!1),window.removeEventListener("keyup",Tn,!1)},this.zoomOut=function(){W(P())},this.zoomIn=function(){z(P())},this.setEnableDampingSpeed=function(F){this.enableDamping=F,this.rotateSpeed=F===!0?.2:1},this.resetTo=function(F,Pe,et){l.target.copy(F),l.object.position.copy(Pe),l.object.zoom=et,l.object.updateProjectionMatrix(),l.dispatchEvent(Fp),l.update(),u=c.NONE},this.stopDamping=function(){p.theta=0,p.phi=0};let n,i,s,o,a;this.rotationVerticalOffset={min:Math.PI*.5,max:Math.PI*.5},this.rotationHorizontalOffset={min:Math.PI*.5,max:Math.PI*.5},this.rotationLimitsOptions={DEFAULT:0,VERTICAL:1,HORIZONTAL:2,BOTH:3},this.rotationLimitsMode=this.rotationLimitsOptions.DEFAULT,this.updateRotationOffetLimits=function(){n=0,i=Th(f.phi-l.rotationVerticalOffset.min),s=Th(f.phi+l.rotationVerticalOffset.max),i<0&&(i=l.minPolarAngle),s<0&&(s=l.maxPolarAngle),o=Th(f.theta-l.rotationHorizontalOffset.min),a=Th(f.theta+l.rotationHorizontalOffset.max)},this.toJSON=function(){let F={};return l.useKeyEvents&&(F.useKeyEvents=!0),l.enableDamping&&(F.enableDamping=!0),l.enablePan&&(F.enablePan=!0),l.enableZoom&&(F.enableZoom=!0),l.enableRotate&&(F.enableRotate=!0),F.rotationLimitsMode=l.rotationLimitsMode,(l.rotationLimitsMode===l.rotationLimitsOptions.VERTICAL||l.rotationLimitsMode===l.rotationLimitsOptions.BOTH)&&(F.rotationVerticalOffset={min:l.rotationVerticalOffset.min,max:l.rotationVerticalOffset.max}),(l.rotationLimitsMode===l.rotationLimitsOptions.HORIZONTAL||l.rotationLimitsMode===l.rotationLimitsOptions.BOTH)&&(F.rotationHorizontalOffset={min:l.rotationHorizontalOffset.min,max:l.rotationHorizontalOffset.max}),l.autoRotate&&(F.autoRotate=!0,F.autoRotateSpeed=l.autoRotateSpeed,l.autoRotateClockwise&&(F.autoRotateClockwise=!0)),F},this.fromJSON=function(F){l.useKeyEvents=F.useKeyEvents===!0,l.setEnableDampingSpeed(F.enableDamping===!0),l.enablePan=F.enablePan===!0,l.enableZoom=F.enableZoom===!0,l.enableRotate=F.enableRotate===!0,F.rotationLimitsMode!==void 0&&(l.rotationLimitsMode=F.rotationLimitsMode),F.rotationVerticalOffset&&(l.rotationVerticalOffset={min:F.rotationVerticalOffset.min,max:F.rotationVerticalOffset.max}),F.rotationHorizontalOffset&&(l.rotationHorizontalOffset={min:F.rotationHorizontalOffset.min,max:F.rotationHorizontalOffset.max}),l.autoRotate=F.autoRotate===!0,F.autoRotateSpeed&&(l.autoRotateSpeed=F.autoRotateSpeed),l.autoRotateClockwise=F.autoRotateClockwise===!0,l.updateRotationOffetLimits()};let l=this,c={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},u=c.NONE,h=1e-8,d=.01,f=new bh,p=new bh,m=1,v=new M,g=!1,y=new O,x=new O,b=new O,w=new O,_=new O,S=new O,A=new O,T=new O,L=new O,C={};function U(){return 2*Math.PI/60/60*l.autoRotateSpeed}function P(){return Math.pow(.95,l.zoomSpeed)}function R(F){p.theta-=F*(l.object.isUpVectorFlipped?-1:1)}function G(F){p.theta+=F}function B(F){p.phi-=F}let j=function(){let F=new M;return function(et,Ft){F.setFromMatrixColumn(Ft,0),F.multiplyScalar(-et),v.add(F)}}(),ne=function(){let F=new M;return function(et,Ft){l.screenSpacePanning===!0?F.setFromMatrixColumn(Ft,1):(F.setFromMatrixColumn(Ft,0),F.crossVectors(l.object.up,F)),F.multiplyScalar(et),v.add(F)}}(),le=function(){let F=new M;return function(et,Ft){let Nn=l.domElement;if(l.object.isPerspectiveCamera){let Gs=l.object.position;F.copy(Gs).sub(l.target);let sr=F.length();sr*=Math.tan(l.object.fov/2*Math.PI/180),j(2*et*sr/Nn.clientHeight,l.object.matrix),ne(2*Ft*sr/Nn.clientHeight,l.object.matrix)}else l.object.isOrthographicCamera?(j(et*(l.object.right-l.object.left)/l.object.zoom/Nn.clientWidth,l.object.matrix),ne(Ft*(l.object.top-l.object.bottom)/l.object.zoom/Nn.clientHeight,l.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),l.enablePan=!1)}}();function W(F){l.object.isPerspectiveCamera?m/=F:l.object.isOrthographicCamera?(l.object.zoom=Math.max(l.minZoom,Math.min(l.maxZoom,l.object.zoom*F)),l.object.updateProjectionMatrix(),g=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),l.enableZoom=!1)}function z(F){l.object.isPerspectiveCamera?m*=F:l.object.isOrthographicCamera?(l.object.zoom=Math.max(l.minZoom,Math.min(l.maxZoom,l.object.zoom/F)),l.object.updateProjectionMatrix(),g=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),l.enableZoom=!1)}function D(F){y.set(F.clientX,F.clientY)}function K(F){A.set(F.clientX,F.clientY)}function q(F){w.set(F.clientX,F.clientY)}function ee(F){x.set(F.clientX,F.clientY),b.subVectors(x,y).multiplyScalar(l.rotateSpeed).rotateAround(vL,-l.object.angleOffsetFromUp);let Pe=l.domElement;R(2*Math.PI*b.x/Pe.clientHeight),B(2*Math.PI*b.y/Pe.clientHeight),y.copy(x),l.update()}function V(F){T.set(F.clientX,F.clientY),L.subVectors(T,A),L.y>0?W(P()):L.y<0&&z(P()),A.copy(T),l.update()}function de(F){_.set(F.clientX,F.clientY),S.subVectors(_,w).multiplyScalar(l.panSpeed),le(S.x,S.y),w.copy(_),l.update()}function ae(){}let te=0;function X(F){if(F.preventDefault(),F.type==="gesturechange"){if(l.enableZoom===!1)return;F.scale>te?z(P()):F.scale0&&W(P())}else{if(l.enablePan===!1)return;S.set(-F.deltaX,-F.deltaY).multiplyScalar(l.panSpeed),F.altKey?le(0,S.y):F.shiftKey?le(S.x,0):le(S.x,S.y)}l.update()}$&&window.clearTimeout($),$=window.setTimeout(()=>{se=!1,H=void 0},200)}function ie(F){let Pe=!1;switch(F.code){case l.keys.UP:le(0,l.keyPanSpeed),Pe=!0;break;case l.keys.BOTTOM:le(0,-l.keyPanSpeed),Pe=!0;break;case l.keys.LEFT:le(l.keyPanSpeed,0),Pe=!0;break;case l.keys.RIGHT:le(-l.keyPanSpeed,0),Pe=!0;break;default:break}Pe&&(F.preventDefault(),l.update())}function N(F){if(F.touches.length===1)y.set(F.touches[0].pageX,F.touches[0].pageY);else{let Pe=.5*(F.touches[0].pageX+F.touches[1].pageX),et=.5*(F.touches[0].pageY+F.touches[1].pageY);y.set(Pe,et)}}function E(F){if(F.touches.length===1)w.set(F.touches[0].pageX,F.touches[0].pageY);else{let Pe=.5*(F.touches[0].pageX+F.touches[1].pageX),et=.5*(F.touches[0].pageY+F.touches[1].pageY);w.set(Pe,et)}}function Y(F){let Pe=F.touches[0].pageX-F.touches[1].pageX,et=F.touches[0].pageY-F.touches[1].pageY,Ft=Math.sqrt(Pe*Pe+et*et);A.set(0,Ft)}function re(F){l.enableZoom&&Y(F),l.enablePan&&E(F)}function ye(F){l.enableZoom&&Y(F),l.enableRotate&&N(F)}function pe(F){if(F.touches.length===1)x.set(F.touches[0].pageX,F.touches[0].pageY);else{let et=.5*(F.touches[0].pageX+F.touches[1].pageX),Ft=.5*(F.touches[0].pageY+F.touches[1].pageY);x.set(et,Ft)}b.subVectors(x,y).multiplyScalar(l.rotateSpeed);let Pe=l.domElement;R(2*Math.PI*b.x/Pe.clientHeight),B(2*Math.PI*b.y/Pe.clientHeight),y.copy(x)}function Ie(F){if(F.touches.length===1)_.set(F.touches[0].pageX,F.touches[0].pageY);else{let Pe=.5*(F.touches[0].pageX+F.touches[1].pageX),et=.5*(F.touches[0].pageY+F.touches[1].pageY);_.set(Pe,et)}S.subVectors(_,w).multiplyScalar(l.panSpeed),le(S.x,S.y),w.copy(_)}function ve(F){let Pe=F.touches[0].pageX-F.touches[1].pageX,et=F.touches[0].pageY-F.touches[1].pageY,Ft=Math.sqrt(Pe*Pe+et*et);T.set(0,Ft),L.set(0,Math.pow(T.y/A.y,l.zoomSpeed)),W(L.y),A.copy(T)}function Fe(F){l.enableZoom&&ve(F),l.enablePan&&Ie(F)}function Ce(F){l.enableZoom&&ve(F),l.enableRotate&&pe(F)}function J(){}function xe(F){if(l.enabled!==!1)switch(F.pointerType){case"mouse":case"pen":l.useKeyEvents===!1?Be(F):ke(F);break;default:break}}function he(F){if(l.enabled!==!1)switch(F.pointerType){case"mouse":case"pen":ht(F);break;default:break}}function Ne(F){switch(F.pointerType){case"mouse":case"pen":ft(F);break;default:break}l.domElement.ownerDocument.removeEventListener("pointermove",he),l.domElement.ownerDocument.removeEventListener("pointerup",Ne)}function Be(F){F.preventDefault(),l.domElement.focus?l.domElement.focus():window.focus();let Pe;switch(F.button){case 0:Pe=l.mouseButtons.LEFT;break;case 1:Pe=l.mouseButtons.MIDDLE;break;case 2:Pe=l.mouseButtons.RIGHT;break;default:Pe=-1}switch(Pe){case Us.DOLLY:if(l.enablePan===!1)return;q(F),u=c.PAN;break;case Us.ROTATE:if(F.ctrlKey||F.metaKey||F.shiftKey){if(l.enablePan===!1)return;q(F),u=c.PAN}else{if(l.enableRotate===!1)return;D(F),u=c.ROTATE}break;case Us.PAN:if(F.ctrlKey||F.metaKey||F.shiftKey){if(l.enableRotate===!1)return;D(F),u=c.ROTATE}else{if(l.enablePan===!1)return;q(F),u=c.PAN}break;default:u=c.NONE}u!==c.NONE&&(l.domElement.ownerDocument.addEventListener("pointermove",he),l.domElement.ownerDocument.addEventListener("pointerup",Ne),l.dispatchEvent(_h))}function ke(F){if(l.enabled!==!1){switch(F.preventDefault(),l.domElement.focus?l.domElement.focus():window.focus(),F.button){case l.mouseButtons.MIDDLE:if(l.enablePan===!1)return;q(F),u=c.PAN;break;case l.mouseButtons.LEFT:if(F.altKey===!0&&!F.shiftKey&&!(dx?F.metaKey:F.ctrlKey)){if(l.enableRotate===!1)return;D(F),u=c.ROTATE}else if(C.code==="Space"){if(l.enablePan===!1)return;q(F),u=c.PAN}break;default:u=c.NONE}u!==c.NONE&&(l.domElement.ownerDocument.addEventListener("pointermove",he),l.domElement.ownerDocument.addEventListener("pointerup",Ne),l.dispatchEvent(_h))}}function ht(F){if(l.enabled!==!1)switch(F.preventDefault(),u){case c.ROTATE:if(l.enableRotate===!1)return;ee(F);break;case c.DOLLY:if(l.enableZoom===!1)return;V(F);break;case c.PAN:if(l.enablePan===!1)return;de(F);break;default:break}}function ft(F){l.enabled!==!1&&(ae(F),l.dispatchEvent(zp),u=c.NONE)}function Bn(F){l.enabled===!1||l.enableZoom===!1||u!==c.NONE&&u!==c.ROTATE||(F.preventDefault(),l.dispatchEvent(_h),ce(F),l.dispatchEvent(zp))}function Mt(F){l.enabled!==!1&&(C=F)}function Tn(){l.enabled!==!1&&(C={},u!==c.NONE&&ft(new PointerEvent("pointerover")))}function En(F){if(l.enabled!==!1){switch(F.preventDefault(),F.touches.length){case 1:switch(l.touches.ONE){case ks.ROTATE:if(l.enableRotate===!1)return;N(F),u=c.TOUCH_ROTATE;break;case ks.PAN:if(l.enablePan===!1)return;E(F),u=c.TOUCH_PAN;break;default:u=c.NONE}break;case 2:switch(l.touches.TWO){case ks.DOLLY_PAN:if(l.enableZoom===!1&&l.enablePan===!1)return;re(F),u=c.TOUCH_DOLLY_PAN;break;case ks.DOLLY_ROTATE:if(l.enableZoom===!1&&l.enableRotate===!1)return;ye(F),u=c.TOUCH_DOLLY_ROTATE;break;default:u=c.NONE}break;default:u=c.NONE}u!==c.NONE&&l.dispatchEvent(_h)}}function Di(F){if(l.enabled!==!1)switch(F.preventDefault(),u){case c.TOUCH_ROTATE:if(l.enableRotate===!1)return;pe(F),l.update();break;case c.TOUCH_PAN:if(l.enablePan===!1)return;Ie(F),l.update();break;case c.TOUCH_DOLLY_PAN:if(l.enableZoom===!1&&l.enablePan===!1)return;Fe(F),l.update();break;case c.TOUCH_DOLLY_ROTATE:if(l.enableZoom===!1&&l.enableRotate===!1)return;Ce(F),l.update();break;default:u=c.NONE}}function _r(F){l.enabled!==!1&&(J(F),l.dispatchEvent(zp),u=c.NONE)}function xn(F){l.enabled!==!1&&F.preventDefault()}l.domElement.addEventListener("contextmenu",xn),l.domElement.addEventListener("pointerdown",xe),l.domElement.addEventListener("wheel",Bn,{passive:!1}),l.domElement.addEventListener("touchstart",En,{passive:!1}),l.domElement.addEventListener("touchend",_r),l.domElement.addEventListener("touchmove",Di,{passive:!1}),l.domElement.addEventListener("gesturestart",X),l.domElement.addEventListener("gesturechange",X),l.domElement.addEventListener("gestureend",X),window.addEventListener("keydown",Mt,!1),window.addEventListener("keyup",Tn,!1),this.update(),this.updateRotationOffetLimits(),this.setEnableDampingSpeed(!0)}};function Th(r){let e=Math.PI*2;for(;r<=-Math.PI;)r+=e;for(;r>Math.PI;)r-=e;return r}var xL=3,Up=class extends Lp{constructor(){super();this.layers.enable(xL)}setFromCamera(e,t){t.isOrthographicCamera?(this.ray.origin.set(e.x,e.y,-1).unproject(t),this.ray.direction.set(0,0,-1).transformDirection(t.matrixWorld),this.camera=t):t.isPerspectiveCamera?(this.ray.origin.set(e.x,e.y,-1).unproject(t),this.ray.direction.set(e.x,e.y,.5).unproject(t).sub(this.ray.origin).normalize(),this.camera=t):console.error("Raycaster: Unsupported camera type.")}intersectVisibleObjects(e,t=!0,n=[]){return e.forEach(i=>{i.visible&&this.intersectObject(i,t,n)}),n}createRaycastLineHelper(){let e=new Gn({color:65280,linewidth:10}),t=new M(this.ray.origin.x,this.ray.origin.y,this.ray.origin.z),n=new M(this.ray.direction.x,this.ray.direction.y,this.ray.direction.z),i=this.camera.far-this.camera.near,s=new M().addVectors(t,n.multiplyScalar(i)),o=new we;return o.setFromPoints([t,s]),new Hi(o,e)}};var gx=r=>class{constructor(t=pp){this.manager=t;this.loader=new r(t)}};var ze=class{constructor(e){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=Ee.generateUUID(),this.type=e,this.name="",this.userData={}}analyze(e,t){t=t!=null?t:{},e.analyzing=!0,this.build(e.addFlow(t.slot,t.cache,t.context),"v4"),e.clearVertexNodeCode(),e.clearFragmentNodeCode(),e.removeFlow(),e.analyzing=!1}analyzeAndFlow(e,t,n){return n=n!=null?n:{},this.analyze(e,n),this.flow(e,t,n)}flow(e,t,n){n=n!=null?n:{},e.addFlow(n.slot,n.cache,n.context);let i={result:this.build(e,t),code:e.clearNodeCode(),extra:e.context.extra};return e.removeFlow(),i}build(e,t,n){t=t!=null?t:this.getType(e,t);let i=e.getNodeData(n!=null?n:this);return e.analyzing&&this.appendDepsNode(e,i,t),e.nodes.indexOf(this)===-1&&e.nodes.push(this),this.updateFrame!==void 0&&e.updaters.indexOf(this)===-1&&e.updaters.push(this),this.generate(e,t,n)}updateFrame(e){}generateReadonly(e,t,n,i,s,o){return""}generate(e,t,n,i,s){return""}parse(e,t,n,i){}appendDepsNode(e,t,n){t.deps=(t.deps||0)+1;let i=e.getTypeLength(n);(i>(t.outputMax||0)||this.getType(e,n))&&(t.outputMax=i,t.output=n)}setName(e){this.name=e}getName(){return this.name}getType(e,t){return t==="sampler2D"||t==="samplerCube"?t:this.type}getJSONNode(e){if((e==null?void 0:e.materials)&&(e==null?void 0:e.materials[this.uuid])!==void 0)return e.materials[this.uuid]}getHash(){let e="{",t,n;for(t in this)n=this[t],n instanceof ze&&(e+='"'+t+'":'+n.getHash()+",");if(this.hashProperties)for(let i=0;it)),this.userData=JSON.parse(JSON.stringify(e.userData)),this.shortcuts=JSON.parse(JSON.stringify(e.shortcuts)),this}clone(){return new this.constructor().copy(this)}createJSONNode(e){let t=e===void 0||typeof e=="string";if(typeof this.type!="string")throw new Error("Node does not allow serialization.");let n={};return n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),JSON.stringify(this.userData)!=="{}"&&(n.userData=this.userData),!t&&e&&(e.nodes[this.uuid]=n),n}toJSON(e){var t;return(t=this.getJSONNode(e))!=null?t:this.createJSONNode(e)}fromJSON(e,t){return this.uuid=e.uuid,this.type=e.type,e.name&&(this.name=e.name),e.userData&&(this.userData=e.userData),this}};var je=class extends ze{constructor(e,t){super(e);this.scope="";t=t!=null?t:{},this.shared=t.shared!==void 0?t.shared:!0,this.unique=t.unique!==void 0?t.unique:!1}build(e,t,n,i){if(t=t!=null?t:this.getType(e),this.getShared(e,t)){let s=this.getUnique(e,t);s&&this.uuid===void 0&&(this.uuid=Ee.generateUUID()),n=e.getUUID(n!=null?n:this.getUUID(),!s);let o=e.getNodeData(n),a=o.output||this.getType(e);if(e.analyzing)return(o.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,o,t),this.generate(e,t,n)):super.build(e,t,n);if(s)return o.name=o.name||super.build(e,t,n),o.name;if(!this.getLabel()&&(!this.getShared(e,a)||e.context.ignoreCache||o.deps===1))return super.build(e,t,n);n=this.getUUID(!1);let l=this.getTemp(e,n);if(l)return e.format(l,a,t);{l=super.generate(e,t,n,o.output,i);let c=this.generate(e,a,n);return e.addNodeCode(l+" = "+c+";"),e.format(l,a,t)}}return super.build(e,t,n)}getShared(e,t){return t!=="sampler2D"&&t!=="samplerCube"&&this.shared}getUnique(e,t){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let t=this.uuid;return typeof this.scope=="string"&&(t=this.scope+"-"+t),t}getTemp(e,t){t=t||this.uuid;let n=e.getVars()[t];return n?n.name:void 0}generate(e,t,n,i,s){return this.getShared(e,t)||console.error("TempNode is not shared"),n=n!=null?n:this.uuid,e.getTempVar(n,i!=null?i:this.getType(e),s,this.getLabel()).name}};var Ct=class extends je{constructor(e,t){t=t!=null?t:{},t.shared=t.shared!==void 0?t.shared:!1;super(e,t);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}createJSONNode(e){let t=super.createJSONNode(e);return this.readonly===!0&&(t.readonly=this.readonly),t}fromJSON(e,t){return super.fromJSON(e,t),e.readonly!==void 0&&this.setReadonly(e.readonly),this}generate(e,t,n,i,s,o){n=e.getUUID(n!=null?n:this.getUUID()),i=i!=null?i:this.getType(e);let a=e.getNodeData(n);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,t,n,i,s,o):e.isShader("vertex")?(a.vertex||(a.vertex=e.createVertexUniform(i,this,s,o,this.getLabel())),e.format(a.vertex.name,i,t)):(a.fragment||(a.fragment=e.createFragmentUniform(i,this,s,o,this.getLabel())),e.format(a.fragment.name,i,t))}copy(e){return super.copy(e),this.readonly=e.readonly,this}};var Un=class extends Ct{constructor(e=0,t,n){super("v3");this.nodeType="Vector3";this.value=e instanceof M?e:new M(e,t,n)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,t,n,i,s,o){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,t)}copy(e){return super.copy(e),this.value.copy(e.value),this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.x=this.value.x,t.y=this.value.y,t.z=this.value.z,this.getReadonly()===!0&&(t.readonly=!0)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.x&&(this.value.x=e.x),e.y&&(this.value.y=e.y),e.z&&(this.value.z=e.z),this}};var In=class extends Ct{constructor(e=0,t){super("v2");this.nodeType="Vector2";this.value=e instanceof O?e:new O(e,t)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,t,n,i,s,o){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,t)}copy(e){return super.copy(e),this.value.copy(e.value),this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.x=this.value.x,t.y=this.value.y,this.getReadonly()===!0&&(t.readonly=!0)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.x&&(this.value.x=e.x),e.y&&(this.value.y=e.y),this}};var it=class extends Ct{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e!=null?e:0)}generateReadonly(e,t,n,i,s,o){return e.format(this.value.toString(),i,t)}copy(e){return super.copy(e),this.value=e.value,this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.value=this.value,this.getReadonly()===!0&&(t.readonly=!0)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.value&&(this.value=e.value),this}};var Te=class extends Ct{constructor(e){super("f");this.nodeType="Float";this.value=e!=null?e:0}generateReadonly(e,t,n,i,s,o){return e.format(this.value+(this.value%1?"":".0"),i,t)}copy(e){return super.copy(e),this.value=e.value,this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.value=this.value,this.getReadonly()===!0&&(t.readonly=!0)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.value&&(this.value=e.value),this}};var lt;(function(m){m.POSITION="position",m.LIGHTING="light",m.COLOR="color",m.GRADIENT="gradient",m.NORMAL="normal",m.DEPTH="depth",m.TEXTURE="texture",m.NOISE="noise",m.FRESNEL="fresnel",m.RAINBOW="rainbow",m.TRANSMISSION="transmission",m.POINTS="points",m.MATCAP="matcap",m.LINES="lines",m.DISPLACE="displace"})(lt||(lt={}));var Gt;(function(n){n.POSITION="position",n.LIGHTING="light",n.COLOR="color"})(Gt||(Gt={}));var jt=class{constructor(e,t,n){this.next=void 0;this.uniforms={};this.textures={};this.defines={};this.backLayer=void 0;this.isBack=!1;if(this.id=e,t){this.type=t.type;for(let i in t)i!=="type"&&i!=="calpha"&&(this.uniforms[`f${this.id}_${i}`]=t[i]);for(let i in n)this.defines[i]=n[i]}}copy(e){this.id=e.id,this.type=e.type,this.defines=Ue({},e.defines);for(let t in e.uniforms)this.getName(t)==="transmissionSamplerMap"||this.getName(t)==="transmissionDepthMap"||(this.uniforms[t]?this.uniforms[t].copy(e.uniforms[t]):this.uniforms[t]=e.uniforms[t].clone());return this}clone(){return new jt(this.id).copy(this)}fromJSON(e,t){this.id=e.id,this.defines=Ue({},e.defines);for(let n in e.uniforms)this.uniforms[n]=t.getNode(e.uniforms[n]);if(e.type===lt.TEXTURE){if(!(`f${this.id}_textureSize`in this.uniforms)){let n=this.uniforms[`f${this.id}_texture`].value.image;this.uniforms[`f${e.id}_textureSize`]=new Un(n.width,n.height)}`f${this.id}_size`in this.uniforms||(this.uniforms[`f${e.id}_size`]=new In(200,200)),`f${e.id}_axis`in this.uniforms||(this.uniforms[`f${e.id}_axis`]=new it(0)),`f${e.id}_projection`in this.uniforms||(this.uniforms[`f${e.id}_projection`]=new it(0))}else e.type===lt.NOISE?(`f${e.id}_noiseType`in this.uniforms||(this.uniforms[`f${e.id}_noiseType`]=new it(0)),`f${e.id}_size`in this.uniforms||(this.uniforms[`f${e.id}_size`]=new Un(-1,-1,-1))):e.type===lt.DEPTH&&(`f${e.id}_isWorldSpace`in this.uniforms||(this.uniforms[`f${e.id}_isWorldSpace`]=new Te(1)));return this}toJSON(e){let t={};for(let i in this.uniforms)t[i]=this.uniforms[i].toJSON(e).uuid;return{id:this.id,type:this.type,defines:JSON.parse(JSON.stringify(this.defines)),uniforms:t,next:this.next==null?void 0:this.next.toJSON(e)}}copyUniforms(e){for(let t in this.uniforms){let n=this.getName(t);n!==void 0&&e.uniforms[`f${e.id}_${n}`]&&n!=="transmissionDepthMap"&&n!=="transmissionSamplerMap"&&this.uniforms[t].copy(e.uniforms[`f${e.id}_${n}`])}return this}hasValueByKey(e){return this.uniforms[e]!==void 0}hasValue(e){return this.hasValueByKey(`f${this.id}_${e}`)}setValue(e,t){let n=`f${this.id}_${e}`;this.hasValueByKey(n)&&t!==void 0&&(this.uniforms[n].value=t)}getValue(e){let t=`f${this.id}_${e}`;if(this.hasValueByKey(t))return this.uniforms[t].value}getValues(){let e={type:this.type};for(let t in this.uniforms){let n=this.getName(t);if(n===void 0)continue;let s=this.uniforms[`f${this.id}_${n}`].value;s!==void 0&&(Array.isArray(s)?e[n]=s.map(o=>o.clone?o.clone():o):e[n]=s.clone?s.clone():s)}return e}getName(e){let n=/f\d+_(.*)/.exec(e);if(n&&n.length>1)return n[1];console.log(`Layer.getName: error ${e}`)}getNames(){let e=[];for(let t in this.uniforms){let n=this.getName(t);n&&e.push(n)}return e}isEqual(e){for(let t in e.uniforms){let n=e.getName(t);if(!n)return!1;let i=this.getValue(n),s=e.uniforms[t].value;if(s.value instanceof xt){if(i.image!==s.image)return!1}else if(Array.isArray(s)){let o=i;for(let a=0,l=o.length;at.clone()),this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.value=this.value.map(n=>({x:n.x,y:n.y,z:n.z,w:n.w}))),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.value&&(this.value=e.value.map(n=>new Qe(n.x,n.y,n.z,n.w)),this.size=this.value.length),this}};var Ba=class extends Ct{constructor(e=1,t){super("f[]");this.nodeType="FloatArray";this.size=e,this.value=Array.isArray(t)?t:typeof t=="number"?new Array(e).fill(t):new Array(e).fill(0)}copy(e){return super.copy(e),this.size=e.size,this.value=[...e.value],this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.size=this.size,t.value=[...this.value]),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.value&&(this.value=[...e.value]),e.size?this.size=e.size:e.value&&(this.size=this.value.length),this}};var yx=class{constructor(){this.nodes={};this.keywords={}}add(e){this.nodes[e.name]=e}addKeyword(e,t,n){n=n!==void 0?n:!0,this.keywords[e]={callback:t,cache:n}}remove(e){delete this.nodes[e.name]}removeKeyword(e){delete this.keywords[e]}get(e){return this.nodes[e]}getKeyword(e,t){return this.keywords[e].callback(t)}getKeywordData(e){return this.keywords[e]}contains(e){return this.nodes[e]!==void 0}containsKeyword(e){return this.keywords[e]!==void 0}},pn=new yx;var bo=class extends je{constructor(e){super("v2",{shared:!1});this.nodeType="UV";this.index=e!=null?e:0}generate(e,t){e.requires.uv[this.index]=!0;let n=this.index>0?this.index+1:"",i=e.isShader("vertex")?"uv"+n:"vUv"+n;return e.format(i,this.getType(e),t)}copy(e){return super.copy(e),this.index=e.index,this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.index=this.index),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.index&&(this.index=e.index),this}};pn.addKeyword("uv",function(){return new bo});pn.addKeyword("uv2",function(){return new bo(1)});var bL=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,vx=/[a-z_0-9]+/gi,Le=class extends je{constructor(e,t,n,i,s){super(s);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=s===void 0,this.isInterface=!1,this.parse(e,t,n,i)}getShared(e,t){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let t=this.inputs.length;for(;t--;)if(this.inputs[t].name===e)return this.inputs[t]}}getIncludeByName(e){if(this.includes){let t=this.includes.length;for(;t--;)if(this.includes[t].name===e)return this.includes[t]}}generate(e,t,n,i,s){let o,a=0,l=this.src;if(this.includes)for(let u=0;ut.getNode(n))),this}};var wL=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Vp=class extends je{constructor(e="",t){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||Vp.PI,void 0,void 0,void 0,t)}getType(e){return e.getTypeByFormat(this.type)}parse(e,t,n,i,s){this.src=e||"";let o,a,l="",c=wL.exec(e);this.useDefine=s!=null?s:this.src.charAt(0)==="#",c&&c.length>1?(a=c[1],o=c[2],l=c[3]):(o=this.src,a="f"),this.name=o,this.type=a,this.value=l}build(e,t){if(t==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return e.include(this),e.format(this.name,this.getType(e),t)}generate(e,t,n,i,s){return e.format(this.name,this.getType(e),t)}copy(e){return super.copy(e),this.parse(e.src,void 0,void 0,void 0,e.useDefine),this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.src=this.src,t.useDefine=this.useDefine,t.value=this.value,t.name=this.name),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.src&&(this.src=e.src),e.value&&(this.value=e.value),e.name&&(this.name=e.name),e.useDefine!==void 0&&(this.useDefine=e.useDefine),this}},rt=Vp;rt.PI="PI",rt.PI2="PI2",rt.RECIPROCAL_PI="RECIPROCAL_PI",rt.RECIPROCAL_PI2="RECIPROCAL_PI2",rt.LOG2="LOG2",rt.EPSILON="EPSILON";var yt=class extends Le{constructor(e="",t,n,i,s){super(e,s,i,n,t);this.nodeType="Expression"}};var wo=class extends je{constructor(e=new ze,t){super("v4");this.nodeType="ColorSpace";this.factor=new ze;this.input=e,this.method=t!=null?t:wo.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case ln:return["Linear"];case Fi:return["sRGB"];case Rl:return["RGBE"];case Mu:return["RGBM",new Te(7).setReadonly(!0)];case Au:return["RGBM",new Te(16).setReadonly(!0)];case _u:return["RGBD",new Te(256).setReadonly(!0)];case Qs:return["Gamma",new yt("float( GAMMA_FACTOR )","f")];default:return[]}}generate(e,t){let n=this.input.build(e,"v4"),i=this.getType(e),s=wo.Nodes[this.method],o=e.include(s);if(o===wo.LINEAR_TO_LINEAR)return e.format(n,i,t);if(s.inputs.length===2){let a=this.factor.build(e,"f");return e.format(o+"( "+n+", "+a+" )",i,t)}else return e.format(o+"( "+n+" )",i,t)}fromEncoding(e){let t=wo.getEncodingComponents(e);this.method="LinearTo"+t[0],this.factor=t[1]}fromDecoding(e){let t=wo.getEncodingComponents(e);this.method=t[0]+"ToLinear",this.factor=t[1]}copy(e){return super.copy(e),this.input.copy(e.input),this.method=e.method,this.factor.copy(e.factor),this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.input=this.input.toJSON(e).uuid,t.factor=this.factor.toJSON(e).uuid,t.method=this.method),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.input&&(this.input=t.getNode(e.input)),e.factor&&(this.factor=t.getNode(e.factor)),e.method&&(this.method=e.method),this}},Bt=wo;Bt.Nodes={LinearToLinear:new Le(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(` +`)),GammaToLinear:new Le(["vec4 GammaToLinear( in vec4 value, in float gammaFactor ) {"," return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );","}"].join(` +`)),LinearToGamma:new Le(["vec4 LinearToGamma( in vec4 value, in float gammaFactor ) {"," return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );","}"].join(` +`)),sRGBToLinear:new Le(["vec4 sRGBToLinear( in vec4 value ) {"," return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );","}"].join(` +`)),LinearTosRGB:new Le(["vec4 LinearTosRGB( in vec4 value ) {"," return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );","}"].join(` +`)),RGBEToLinear:new Le(["vec4 RGBEToLinear( in vec4 value ) {"," return vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );","}"].join(` +`)),LinearToRGBE:new Le(["vec4 LinearToRGBE( in vec4 value ) {"," float maxComponent = max( max( value.r, value.g ), value.b );"," float fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );"," return vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );","}"].join(` +`)),RGBMToLinear:new Le(["vec3 RGBMToLinear( in vec4 value, in float maxRange ) {"," return vec4( value.xyz * value.w * maxRange, 1.0 );","}"].join(` +`)),LinearToRGBM:new Le(["vec3 LinearToRGBM( in vec4 value, in float maxRange ) {"," float maxRGB = max( value.x, max( value.g, value.b ) );"," float M = clamp( maxRGB / maxRange, 0.0, 1.0 );"," M = ceil( M * 255.0 ) / 255.0;"," return vec4( value.rgb / ( M * maxRange ), M );","}"].join(` +`)),RGBDToLinear:new Le(["vec3 RGBDToLinear( in vec4 value, in float maxRange ) {"," return vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );","}"].join(` +`)),LinearToRGBD:new Le(["vec3 LinearToRGBD( in vec4 value, in float maxRange ) {"," float maxRGB = max( value.x, max( value.g, value.b ) );"," float D = max( maxRange / maxRGB, 1.0 );"," D = clamp( floor( D ) / 255.0, 0.0, 1.0 );"," return vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );","}"].join(` +`)),cLogLuvM:new rt("const mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );"),LinearToLogLuv:new Le(["vec4 LinearToLogLuv( in vec4 value ) {"," vec3 Xp_Y_XYZp = cLogLuvM * value.rgb;"," Xp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));"," vec4 vResult;"," vResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;"," float Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;"," vResult.w = fract(Le);"," vResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;"," return vResult;","}"].join(` +`),[new rt("const mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );")]),cLogLuvInverseM:new rt("const mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );"),LogLuvToLinear:new Le(["vec4 LogLuvToLinear( in vec4 value ) {"," float Le = value.z * 255.0 + value.w;"," vec3 Xp_Y_XYZp;"," Xp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);"," Xp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;"," Xp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;"," vec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;"," return vec4( max(vRGB, 0.0), 1.0 );","}"].join(` +`),[new rt("const mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );")])},Bt.LINEAR_TO_LINEAR="LinearToLinear",Bt.GAMMA_TO_LINEAR="GammaToLinear",Bt.LINEAR_TO_GAMMA="LinearToGamma",Bt.SRGB_TO_LINEAR="sRGBToLinear",Bt.LINEAR_TO_SRGB="LinearTosRGB",Bt.RGBE_TO_LINEAR="RGBEToLinear",Bt.LINEAR_TO_RGBE="LinearToRGBE",Bt.RGBM_TO_LINEAR="RGBMToLinear",Bt.LINEAR_TO_RGBM="LinearToRGBM",Bt.RGBD_TO_LINEAR="RGBDToLinear",Bt.LINEAR_TO_RGBD="LinearToRGBD",Bt.LINEAR_TO_LOG_LUV="LinearToLogLuv",Bt.LOG_LUV_TO_LINEAR="LogLuvToLinear";var bi=class extends xt{toJSON(e){let t=super.toJSON(e),n=e===void 0||typeof e=="string";if(this.image!==void 0&&!n){let i=this.image;if(Array.isArray(i)){e.images[i.uuid].url=[];for(let s=0;s 0.5 ) { + if ( uvs.x < 0.0 || uvs.x > 1.0 || uvs.y < 0.0 || uvs.y > 1.0 ) { + lalpha = 0.0; + } + } + calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 ); + accumAlpha += ( 1.0 - accumAlpha ) * lalpha; + return col; + }`);n=e.include(s);break;default:n=e.include(gc.Nodes.uv);break}if(this.projection.value===1&&this.firstTime){let s=`g${this.uuid.toString().replace(/-/g,"")}`;e.addVertexParsCode(`varying vec2 ${s}_vCustomUv;`),e.addFragmentParsCode(`varying vec2 ${s}_vCustomUv;`),e.addVertexFinalCode(` + vec3 ${s}_posN = transformed; +${this.axis.value===0?` + float ${s}_u = (1. + (${s}_posN.z)) / 2.; + float ${s}_v = (1. + (${s}_posN.y)) / 2.; + `:""} + +${this.axis.value===1?` + float ${s}_u = (1. + (${s}_posN.x)) / 2.; + float ${s}_v = (1. - (${s}_posN.z)) / 2.; + `:""} + +${this.axis.value===2?` + float ${s}_u = (1. + (${s}_posN.x)) / 2.; + float ${s}_v = (1. + (${s}_posN.y)) / 2.; + `:""} + + ${s}_vCustomUv = vec2(${s}_u, ${s}_v); + `)}e.addFragmentVariable(this.calpha,"float");let i=[];return i.push(this.texture.getTexture(e,"t")),i.push(this.textureSize.build(e,"v2")),i.push(this.crop.build(e,"f")),i.push(this.mat.build(e,"mat3")),i.push(this.size.build(e,"v2")),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),this.firstTime=!this.firstTime,e.format(n+"("+i.join(",")+")",this.getType(e),t)}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.texture=this.texture.toJSON(e).uuid,t.textureSize=this.textureSize.toJSON(e).uuid,t.crop=this.crop.toJSON(e).uuid,t.projection=this.projection.toJSON(e).uuid,t.axis=this.axis.toJSON(e).uuid,t.size=this.size.toJSON(e).uuid,t.alpha=this.alpha.toJSON(e).uuid,t.mode=this.mode.toJSON(e).uuid,t.calpha=this.calpha),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.texture&&(this.texture=t.getNode(e.texture),this.texture.value.updateMatrix(),this.mat=new zr(this.texture.value.matrix)),e.textureSize&&(this.textureSize=t.getNode(e.textureSize)),e.crop&&(this.crop=t.getNode(e.crop)),e.projection&&(this.projection=t.getNode(e.projection)),e.axis&&(this.axis=t.getNode(e.axis)),e.size&&(this.size=t.getNode(e.size)),e.alpha&&(this.alpha=t.getNode(e.alpha)),e.mode&&(this.mode=t.getNode(e.mode)),e.calpha&&(this.calpha=e.calpha),this}copy(e){return super.copy(e),this.texture.copy(e.texture),this.textureSize=e.textureSize.clone(),this.crop=e.crop.clone(),this.projection=e.projection.clone(),this.axis=e.axis.clone(),this.size=e.size.clone(),this.alpha=e.alpha.clone(),this.mode=e.mode.clone(),this}},za=gc;za.Nodes=function(){let e=new Le(` +vec3 cylindricalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) { + vec3 posN = normalize(position); + float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415); + float scaledHeight = position.y / (size.y * 0.5); + float v = (scaledHeight / 2.) + .5; + + vec2 calculatedUv = vec2(u,v); + vec2 uvs = ( mat * vec3( calculatedUv * 2. - 1., 1. ) / 2. + 0.5 ).xy; + + vec2 df = fwidth(uvs); + if(df.x > 0.5) df.x = 0.; + + #ifdef GL_EXT_shader_texture_lod + vec4 tmp = texture2DLodEXT(tex, uvs, log2(max(df.x, df.y)*min(textureSize.x, textureSize.y))); + #else + vec4 tmp = textureLod(tex, uvs, log2(max(df.x, df.y)*min(textureSize.x, textureSize.y))); + #endif + + vec3 col = tmp.rgb; + float lalpha = alpha * tmp.a; + if ( crop > 0.5 ) { + if ( uvs.x < 0.0 || uvs.x > 1.0 || uvs.y < 0.0 || uvs.y > 1.0 ) { + lalpha = 0.0; + } + } + calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 ); + accumAlpha += ( 1.0 - accumAlpha ) * lalpha; + return col; + } +`),t=new Le(` +vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) { + vec3 posN = normalize(vPosition); + float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415); + float v = 0.5 + asin(posN.y) / 3.1415; + + vec2 calculatedUv = vec2(u,v); + vec2 uvs = ( mat * vec3( calculatedUv * 2. - 1., 1. ) / 2. + 0.5 ).xy; + + vec2 df = fwidth(uvs); + if(df.x > 0.5) df.x = 0.; + #ifdef GL_EXT_shader_texture_lod + vec4 tmp = texture2DLodEXT(tex, uvs, log2(max(df.x, df.y)*min(textureSize.x, textureSize.y))); + #else + vec4 tmp = textureLod(tex, uvs, log2(max(df.x, df.y)*min(textureSize.x, textureSize.y))); + #endif + + vec3 col = tmp.rgb; + float lalpha = alpha * tmp.a; + if ( crop > 0.5 ) { + if ( uvs.x < 0.0 || uvs.x > 1.0 || uvs.y < 0.0 || uvs.y > 1.0 ) { + lalpha = 0.0; + } + } + calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 ); + accumAlpha += ( 1.0 - accumAlpha ) * lalpha; + return col; + } +`),n=new Le(`vec3 uvTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) { + + vec2 uvs = ( mat * vec3( vUv * 2. - 1., 1. ) / 2. + 0.5 ).xy; + vec4 tmp = texture2D( tex, uvs ); + + vec3 col = tmp.rgb; + + float lalpha = alpha * tmp.a; + if ( crop > 0.5 ) { + if ( uvs.x < 0.0 || uvs.x > 1.0 || uvs.y < 0.0 || uvs.y > 1.0 ) { + lalpha = 0.0; + } + } + calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 ); + accumAlpha += ( 1.0 - accumAlpha ) * lalpha; + return col; + }`);return{cylindrical:e,spherical:t,uv:n}}();var Hp=class extends je{constructor(e,t,n,i,s,o,a){super("v3");this.nodeType="Fresnel";this.color=e,this.bias=t,this.scale=n,this.intensity=i,this.factor=s,this.alpha=o,this.mode=a,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,t){if(e.require("vWorldViewDir"),e.require("vWorldNormal"),e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let n=e.include(Hp.Nodes.fresnel),i=[];return i.push(this.color.build(e,"c")),i.push(this.bias.build(e,"f")),i.push(this.scale.build(e,"f")),i.push(this.intensity.build(e,"f")),i.push(this.factor.build(e,"f")),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(n+"("+i.join(",")+")",this.getType(e),t)}else return console.warn("FresnelNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.color=this.color.toJSON(e).uuid,t.bias=this.bias.toJSON(e).uuid,t.scale=this.scale.toJSON(e).uuid,t.intensity=this.intensity.toJSON(e).uuid,t.factor=this.factor.toJSON(e).uuid,t.alpha=this.alpha.toJSON(e).uuid,t.mode=this.mode.toJSON(e).uuid,t.calpha=this.calpha),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.color&&(this.color=t.getNode(e.color)),e.bias&&(this.bias=t.getNode(e.bias)),e.scale&&(this.scale=t.getNode(e.scale)),e.intensity&&(this.intensity=t.getNode(e.intensity)),e.factor&&(this.factor=t.getNode(e.factor)),e.alpha&&(this.alpha=t.getNode(e.alpha)),e.mode&&(this.mode=t.getNode(e.mode)),e.calpha&&(this.calpha=e.calpha),this}copy(e){return super.copy(e),this.color=e.color.clone(),this.bias=e.bias.clone(),this.scale=e.scale.clone(),this.intensity=e.intensity.clone(),this.factor=e.factor.clone(),this.alpha=e.alpha.clone(),this.mode=e.mode.clone(),this.calpha=e.calpha,this}},Ga=Hp;Ga.Nodes=function(){return{fresnel:new Le(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, float alpha, int mode, out float calpha) { + float fresnel = bias + scale * pow( abs( factor + dot( normalize( vWorldViewDir ), normalize( vWorldNormal ) ) ), intensity ); + + float lalpha = clamp( fresnel, 0.0, 1.0 ) * alpha; + calpha = lalpha / clamp(lalpha + accumAlpha, 0.001, 1.0); + accumAlpha += (1.0 - accumAlpha) * lalpha; + return color; + }`)}}();var Ua;(function(s){s.SIMPLEX="simplex3d",s.SIMPLEX_FRACTAL="simplex3dFractal",s.ASHIMA="simplexAshima",s.FBM="fbm",s.PERLIN="perlin"})(Ua||(Ua={}));var si=function(){let r=5,e=new Le(`vec3 random3(vec3 c) { + float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0))); + vec3 r; + r.z = fract(512.0*j); + j *= .125; + r.x = fract(512.0*j); + j *= .125; + r.y = fract(512.0*j); + return r-0.5; + }`),t=new Le(`float simplex3d(vec3 p) { + vec3 s = floor(p + dot(p, vec3(F3))); + vec3 x = p - s + dot(s, vec3(G3)); + + vec3 e = step(vec3(0.0), x - x.yzx); + vec3 i1 = e*(1.0 - e.zxy); + vec3 i2 = 1.0 - e.zxy*(1.0 - e); + + vec3 x1 = x - i1 + G3; + vec3 x2 = x - i2 + 2.0*G3; + vec3 x3 = x - 1.0 + 3.0*G3; + + vec4 w, d; + + w.x = dot(x, x); + w.y = dot(x1, x1); + w.z = dot(x2, x2); + w.w = dot(x3, x3); + + w = max(0.6 - w, 0.0); + + d.x = dot(random3(s), x); + d.y = dot(random3(s + i1), x1); + d.z = dot(random3(s + i2), x2); + d.w = dot(random3(s + 1.0), x3); + + w *= w; + w *= w; + d *= w; + + return dot(d, vec4(52.0)); + }`,[e]);t.keywords.F3=new rt("float F3 0.3333333"),t.keywords.G3=new rt("float G3 0.1666667");let n=new Le(`float simplex3dFractal(vec3 m) { + mat3 rot1 = mat3(-0.37, 0.36, 0.85,-0.14,-0.93, 0.34,0.92, 0.01,0.4); + mat3 rot2 = mat3(-0.55,-0.39, 0.74, 0.33,-0.91,-0.24,0.77, 0.12,0.63); + mat3 rot3 = mat3(-0.71, 0.52,-0.47,-0.08,-0.72,-0.68,-0.7,-0.45,0.56); + return 0.5333333 * simplex3d(m * rot1) + + 0.2666667 * simplex3d(2.0 * m * rot2) + + 0.1333333 * simplex3d(4.0 * m * rot3) + + 0.0666667 * simplex3d(8.0 * m); + }`,[t]),i=new Le("vec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}"),s=new Le("vec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}"),o=new Le(`float simplexAshima(vec3 v) { + const vec2 C = vec2(1.0/6.0, 1.0/3.0) ; + const vec4 D = vec4(0.0, 0.5, 1.0, 2.0); + vec3 i = floor(v + dot(v, C.yyy) ); + vec3 x0 = v - i + dot(i, C.xxx) ; + vec3 g = step(x0.yzx, x0.xyz); + vec3 l = 1.0 - g; + vec3 i1 = min( g.xyz, l.zxy ); + vec3 i2 = max( g.xyz, l.zxy ); + vec3 x1 = x0 - i1 + 1.0 * C.xxx; + vec3 x2 = x0 - i2 + 2.0 * C.xxx; + vec3 x3 = x0 - 1. + 3.0 * C.xxx; + i = mod(i, 289.0 ); + vec4 p = permute( permute( permute( + i.z + vec4(0.0, i1.z, i2.z, 1.0 )) + + i.y + vec4(0.0, i1.y, i2.y, 1.0 )) + + i.x + vec4(0.0, i1.x, i2.x, 1.0 )); + float n_ = 1.0/7.0; // N=7 + vec3 ns = n_ * D.wyz - D.xzx; + vec4 j = p - 49.0 * floor(p * ns.z *ns.z); // mod(p,N*N) + vec4 x_ = floor(j * ns.z); + vec4 y_ = floor(j - 7.0 * x_ ); // mod(j,N) + vec4 x = x_ *ns.x + ns.yyyy; + vec4 y = y_ *ns.x + ns.yyyy; + vec4 h = 1.0 - abs(x) - abs(y); + vec4 b0 = vec4( x.xy, y.xy ); + vec4 b1 = vec4( x.zw, y.zw ); + vec4 s0 = floor(b0)*2.0 + 1.0; + vec4 s1 = floor(b1)*2.0 + 1.0; + vec4 sh = -step(h, vec4(0.0)); + vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy ; + vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww ; + vec3 p0 = vec3(a0.xy,h.x); + vec3 p1 = vec3(a0.zw,h.y); + vec3 p2 = vec3(a1.xy,h.z); + vec3 p3 = vec3(a1.zw,h.w); + vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3))); + p0 *= norm.x; + p1 *= norm.y; + p2 *= norm.z; + p3 *= norm.w; + vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0); + m = m * m; + return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1), + dot(p2,x2), dot(p3,x3) ) ); + }`,[i,s]),a=new Le("vec4 mod289(vec4 x){return x - floor(x * (1.0 / 289.0)) * 289.0;}"),l=new Le("vec4 perm(vec4 x){return mod289(((x * 34.0) + 1.0) * x);}",[a]),c=new Le(`float noise(vec3 p){ + vec3 a = floor(p); + vec3 d = p - a; + d = d * d * (3.0 - 2.0 * d); + vec4 b = a.xxyy + vec4(0.0, 1.0, 0.0, 1.0); + vec4 k1 = perm(b.xyxy); + vec4 k2 = perm(k1.xyxy + b.zzww); + vec4 c = k2 + a.zzzz; + vec4 k3 = perm(c); + vec4 k4 = perm(c + 1.0); + vec4 o1 = fract(k3 * (1.0 / 41.0)); + vec4 o2 = fract(k4 * (1.0 / 41.0)); + vec4 o3 = o2 * d.z + o1 * (1.0 - d.z); + vec2 o4 = o3.yw * d.x + o3.xz * (1.0 - d.x); + return o4.y * d.y + o4.x * (1.0 - d.y); + }`,[l]),u=new Le(`float fbm(vec3 x) { + float v = 0.0; + float a = 0.5; + vec3 shift = vec3(100); + for (int i = 0; i < NUM_OCTAVES; ++i) { + v += a * noise(x); + x = x * 2.0 + shift; + a *= 0.5; + } + return v; + }`,[c]);u.keywords.NUM_OCTAVES=new rt(`int NUM_OCTAVES ${r}`);let h=new Le("vec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}"),d=new Le(`float perlin(vec3 P){ + vec3 Pi0 = floor(P); + vec3 Pi1 = Pi0 + vec3(1.0); + Pi0 = mod(Pi0, 289.0); + Pi1 = mod(Pi1, 289.0); + vec3 Pf0 = fract(P); + vec3 Pf1 = Pf0 - vec3(1.0); + vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x); + vec4 iy = vec4(Pi0.yy, Pi1.yy); + vec4 iz0 = Pi0.zzzz; + vec4 iz1 = Pi1.zzzz; + vec4 ixy = permute(permute(ix) + iy); + vec4 ixy0 = permute(ixy + iz0); + vec4 ixy1 = permute(ixy + iz1); + vec4 gx0 = ixy0 / 7.0; + vec4 gy0 = fract(floor(gx0) / 7.0) - 0.5; + gx0 = fract(gx0); + vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0); + vec4 sz0 = step(gz0, vec4(0.0)); + gx0 -= sz0 * (step(0.0, gx0) - 0.5); + gy0 -= sz0 * (step(0.0, gy0) - 0.5); + vec4 gx1 = ixy1 / 7.0; + vec4 gy1 = fract(floor(gx1) / 7.0) - 0.5; + gx1 = fract(gx1); + vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1); + vec4 sz1 = step(gz1, vec4(0.0)); + gx1 -= sz1 * (step(0.0, gx1) - 0.5); + gy1 -= sz1 * (step(0.0, gy1) - 0.5); + vec3 g000 = vec3(gx0.x,gy0.x,gz0.x); + vec3 g100 = vec3(gx0.y,gy0.y,gz0.y); + vec3 g010 = vec3(gx0.z,gy0.z,gz0.z); + vec3 g110 = vec3(gx0.w,gy0.w,gz0.w); + vec3 g001 = vec3(gx1.x,gy1.x,gz1.x); + vec3 g101 = vec3(gx1.y,gy1.y,gz1.y); + vec3 g011 = vec3(gx1.z,gy1.z,gz1.z); + vec3 g111 = vec3(gx1.w,gy1.w,gz1.w); + vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110))); + g000 *= norm0.x; + g010 *= norm0.y; + g100 *= norm0.z; + g110 *= norm0.w; + vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111))); + g001 *= norm1.x; + g011 *= norm1.y; + g101 *= norm1.z; + g111 *= norm1.w; + float n000 = dot(g000, Pf0); + float n100 = dot(g100, vec3(Pf1.x, Pf0.yz)); + float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z)); + float n110 = dot(g110, vec3(Pf1.xy, Pf0.z)); + float n001 = dot(g001, vec3(Pf0.xy, Pf1.z)); + float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z)); + float n011 = dot(g011, vec3(Pf0.x, Pf1.yz)); + float n111 = dot(g111, Pf1); + vec3 fade_xyz = fade(Pf0); + vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z); + vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y); + float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x); + return 2.2 * n_xyz; + }`,[i,s,h]);return{simplex:t,simplexFractal:n,simplexAshima:o,fbm:u,perlin:d}}();var jp=class extends je{constructor(e,t,n,i,s,o,a){super("v3");this.nodeType="Rainbow";this.filmThickness=e,this.movement=t,this.wavelengths=n,this.noiseStrength=i,this.noiseScale=s,this.offset=o,this.alpha=a,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,t){if(e.isShader("fragment")){e.require("normal"),e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let n=e.include(jp.Nodes.rainbow),i=[];return i.push(this.filmThickness.build(e,"f")),i.push(this.movement.build(e,"f")),i.push(this.wavelengths.build(e,"v3")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(n+"("+i.join(",")+")",this.getType(e),t)}else return console.warn("RainbowNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.filmThickness=this.filmThickness.toJSON(e).uuid,t.movement=this.movement.toJSON(e).uuid,t.wavelengths=this.wavelengths.toJSON(e).uuid,t.noiseStrength=this.noiseStrength.toJSON(e).uuid,t.noiseScale=this.noiseScale.toJSON(e).uuid,t.offset=this.offset.toJSON(e).uuid,t.alpha=this.alpha.toJSON(e).uuid,t.calpha=this.calpha),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.filmThickness&&(this.filmThickness=t.getNode(e.filmThickness)),e.movement&&(this.movement=t.getNode(e.movement)),e.wavelengths&&(this.wavelengths=t.getNode(e.wavelengths)),e.noiseStrength&&(this.noiseStrength=t.getNode(e.noiseStrength)),e.noiseScale&&(this.noiseScale=t.getNode(e.noiseScale)),e.offset&&(this.offset=t.getNode(e.offset)),e.alpha&&(this.alpha=t.getNode(e.alpha)),e.calpha&&(this.calpha=e.calpha),this}copy(e){return super.copy(e),this.filmThickness=e.filmThickness.clone(),this.movement=e.movement.clone(),this.wavelengths=e.wavelengths.clone(),this.noiseStrength=e.noiseStrength.clone(),this.noiseScale=e.noiseScale.clone(),this.offset=e.offset.clone(),this.alpha=e.alpha.clone(),this.calpha=e.calpha,this}},ka=jp;ka.Nodes=function(){let e=new Le(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) { + vec3 viewDir = normalize(-(cameraPosition + offset)); + vec3 st = position / noiseScale; + vec3 q = vec3(simplex3d(st), + simplex3d(st + vec3(1.0)), + simplex3d(st + vec3(1.0))); + + vec3 r = vec3(simplex3d(st + vec3(1.4, 1.3, 1.0) * q + vec3(1.7, 9.2, 1.0)), + simplex3d(st + vec3(2.0, 1.2, 1.0) * q + vec3(8.3, 2.8, 1.0)), + simplex3d(st * q)); + + float noise = simplex3d(st + r); + + return .5 + .5 * cos((((filmThickness + (noise * noiseStrength)) / (vec3(wavelengths.r * 1.0, wavelengths.g * 0.8, wavelengths.b * 0.6) + 1.0)) * dot(normalize(vObjectNormal), viewDir)) + movement); + }`,[si.simplex]);return{rainbow:new Le(`vec3 rainbow(float filmThickness, float movement, vec3 wavelengths, float noiseStrength, float noiseScale, vec3 offset, float alpha, out float calpha) { + vec3 res = clamp(attenuation(wavelengths, filmThickness, movement, noiseStrength, noiseScale, offset), 0.0, 2.0); + + float rainbowContribution = clamp(res.r + res.g + res.b, 0.0, 1.0); + float lalpha = alpha * rainbowContribution; + calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 ); + accumAlpha += ( 1.0 - accumAlpha ) * lalpha; + + return res; + }`,[e])}}();var Wp=class extends je{constructor(e,t,n,i,s,o,a,l){super("v3");this.nodeType="Transmission";this.thickness=e,this.ior=t,this.roughness=n,this.transmissionSamplerSize=i,this.transmissionSamplerMap=s,this.transmissionDepthMap=o,this.aspectRatio=a,this.alpha=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,t){if(e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0,e.isShader("fragment")){e.define("NUM_SAMPLES",30),e.require("worldPosition"),e.requires.worldNormal=!0,e.requires.modelMatrix=!0,e.requires.projectionMatrix=!0,e.addFragmentVariable(this.calpha,"float");let n=e.include(Wp.Nodes.transmission),i=[];return i.push(this.thickness.build(e,"f")),i.push(this.ior.build(e,"f")),i.push(this.roughness.build(e,"f")),i.push(this.transmissionSamplerSize.build(e,"v2")),i.push(this.transmissionSamplerMap.getTexture(e,"t")),i.push(this.transmissionDepthMap.getTexture(e,"t")),i.push(this.aspectRatio.build(e,"v2")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(n+"("+i.join(",")+")",this.getType(e),t)}else return console.warn("TransmissionNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.thickness=this.thickness.toJSON(e).uuid,t.ior=this.ior.toJSON(e).uuid,t.roughness=this.roughness.toJSON(e).uuid,t.alpha=this.alpha.toJSON(e).uuid,t.calpha=this.calpha),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.thickness&&(this.thickness=t.getNode(e.thickness)),e.ior&&(this.ior=t.getNode(e.ior)),e.roughness&&(this.roughness=t.getNode(e.roughness)),e.alpha&&(this.alpha=t.getNode(e.alpha)),e.calpha&&(this.calpha=e.calpha),this}copy(e){return super.copy(this),this.thickness=e.thickness.clone(),this.ior=e.ior.clone(),this.roughness=e.roughness.clone(),this.transmissionSamplerSize=e.transmissionSamplerSize.clone(),this.transmissionSamplerMap=e.transmissionSamplerMap,this.transmissionDepthMap=e.transmissionDepthMap,this.alpha=e.alpha.clone(),this.calpha=e.calpha,this}},Va=Wp;Va.Nodes=function(){let e=new Le(` + float gaussian(vec2 i) { + const float sigma = float(NUM_SAMPLES) * .25; + return exp( -.5* dot(i/=sigma,i) ) / ( 6.28 * sigma*sigma ); + }`),t=new Le(` + vec4 blur(sampler2D sp, vec2 U, vec2 scale, float lod, sampler2D dm, vec2 unrefractedU, vec2 aspectRatio) { + // Slightly modified version of this: + // https://www.shadertoy.com/view/ltScRG + + const int LOD = 2; + const int sLOD = 4; // tile size = 2^LOD + + vec4 O = vec4(0); + const int s = NUM_SAMPLES/sLOD; + for ( int i = 0; i < s*s; i++ ) { + int modulo = (i)-((i)/(s))*(s); + vec2 d = vec2(float(modulo), float(i/s))*float(sLOD) - float(NUM_SAMPLES)/2.; + vec2 uv = U + (scale * aspectRatio) * d; + // What is the depth of the opaque object we're trying to sample + float opaqueDepth = texture2D(dm, uv).r; + if (opaqueDepth < gl_FragCoord.z) { + uv = unrefractedU + ((scale * min(lod / 2., 1.)) * aspectRatio) * d; + lod = lod > 4.0 ? lod : lod / 2.0; + } + #ifdef TEXTURE_LOD_EXT + O += gaussian(d) * texture2DLodEXT( sp, uv, lod); + #else + O += gaussian(d) * textureLod( sp, uv, lod); + #endif + } + return O / O.a; + }`,[e]),n=new Le(` + vec3 getVolumeTransmissionRay( vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix ) { + // Direction of refracted light. + vec3 refractionVector = refract( -v, n, 1.0 / ior ); + // Compute rotation-independant scaling of the model matrix. + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + // The thickness is specified in local space. + return normalize( refractionVector ) * thickness * modelScale; + }`),i=new Le(` +float applyIorToRoughness( float roughness, float ior ) { + // Scale roughness with IOR so that an IOR of 1.0 results in no microfacet refraction and + // an IOR of 1.5 results in the default amount of microfacet refraction. + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } `),s=new Le(` +vec4 getTransmissionSample( vec2 fragCoord, float roughness, float ior, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 unrefractedCoords, vec2 aspectRatio) { + float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + float lod = applyIorToRoughness(roughness, ior); + + return blur(transmissionSamplerMap, fragCoord, vec2(lod / (transmissionSamplerSize.x / 2.)), min(framebufferLod / 5.5, 8.5), transmissionDepthMap, unrefractedCoords, aspectRatio); + }`,[i,t]),o=new Le(` +vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 aspectRatio ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + + // Project refracted vector on the framebuffer, while mapping to normalized device coordinates. + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + + vec4 ndcPosUnrefracted = projMatrix * viewMatrix * vec4(position, 1.0 ); + vec2 unrefractedCoords = ndcPosUnrefracted.xy / ndcPosUnrefracted.w; + unrefractedCoords += 1.0; + unrefractedCoords /= 2.0; + + // Sample framebuffer to get pixel the refracted ray hits. + vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior, transmissionSamplerSize, transmissionSamplerMap, transmissionDepthMap, unrefractedCoords, aspectRatio ); + // Get the specular component. + return vec4( ( 1.0 ) * transmittedLight.rgb, transmittedLight.a ); + }`,[s,n]);return{transmission:new Le(` + vec3 transmission(float thickness, float ior, float roughness, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 aspectRatio, vec3 normal, float alpha, out float calpha) { + vec3 v = vec3(0.); + if (isOrthographic) { + v = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + v = normalize(vWPosition - cameraPosition); + } + vec4 transmission = getIBLVolumeRefraction(vWNormal, -v, roughness, vWPosition, modelMatrix, viewMatrix, projectionMatrix, ior, thickness, transmissionSamplerSize, transmissionSamplerMap, transmissionDepthMap, aspectRatio ); + float lalpha = alpha; + + calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 ); + accumAlpha += ( 1.0 - accumAlpha ) * lalpha; + return transmission.rgb; + }`,[o])}}();var Jp=class extends je{constructor(e,t){super("v3");this.nodeType="CustomNormal";this.cnormal=e,this.alpha=t}generate(e,t){if(e.isShader("fragment")){let n=e.include(Jp.Nodes.customNormal),i=[];return i.push(this.cnormal.build(e,"v3")),i.push("normal"),i.push(this.alpha.build(e,"f")),e.format(n+"("+i.join(",")+")",this.getType(e),t)}else return console.warn("CustomNormalNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.cnormal=this.cnormal.toJSON(e).uuid,t.alpha=this.alpha.toJSON(e).uuid),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.cnormal&&(this.cnormal=t.getNode(e.cnormal)),e.alpha&&(this.alpha=t.getNode(e.alpha)),this}copy(e){return super.copy(e),this.cnormal.copy(e.cnormal),this.alpha.copy(e.alpha),this}},Ha=Jp;Ha.Nodes=function(){return{customNormal:new Le(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) { + vec3 normal = packNormalToRGB( norm ).rgb; + normal *= step( vec3(0.5), cnormal ); + + accumAlpha += ( 1.0 - accumAlpha ) * alpha; + + return normal; + }`)}}();var Xp=class extends je{constructor(e,t,n,i,s,o,a,l,c){super("v3");this.nodeType="Gradient";this.glType=e,this.num=t,this.smooth=n,this.colors=i,this.steps=s,this.offset=o,this.morph=a,this.angle=l,this.alpha=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,t){if(e.isShader("fragment")){e.define("GRAD_MAX",10),e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let n=e.include(Xp.Nodes.gradient),i=[];return i.push(this.glType.build(e,"i")),i.push(this.num.build(e,"i")),i.push(this.smooth.build(e,"b")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.offset.build(e,"v2")),i.push(this.morph.build(e,"v2")),i.push(this.angle.build(e,"f")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(n+"("+i.join(",")+")",this.getType(e),t)}else return console.warn("GradientNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.glType=this.glType.toJSON(e).uuid,t.num=this.num.toJSON(e).uuid,t.smooth=this.smooth.toJSON(e).uuid,t.colors=this.colors.toJSON(e).uuid,t.steps=this.steps.toJSON(e).uuid,t.offset=this.offset.toJSON(e).uuid,t.morph=this.morph.toJSON(e).uuid,t.angle=this.angle.toJSON(e).uuid,t.alpha=this.alpha.toJSON(e).uuid,t.calpha=this.calpha),t.nodeType=this.nodeType,t}copy(e){return super.copy(e),this.glType=e.glType.clone(),this.num=e.num.clone(),this.smooth=e.smooth.clone(),this.colors=e.colors.clone(),this.steps=e.steps.clone(),this.offset=e.offset.clone(),this.morph=e.morph.clone(),this.angle=e.angle.clone(),this.alpha=e.alpha.clone(),this.calpha=e.calpha,this}fromJSON(e,t){return super.fromJSON(e,t),e.calpha&&(this.calpha=e.calpha),e.glType&&(this.glType=t.getNode(e.glType)),e.num&&(this.num=t.getNode(e.num)),e.smooth&&(this.smooth=t.getNode(e.smooth)),e.colors&&(this.colors=t.getNode(e.colors)),e.steps&&(this.steps=t.getNode(e.steps)),e.offset&&(this.offset=t.getNode(e.offset)),e.morph&&(this.morph=t.getNode(e.morph)),e.angle&&(this.angle=t.getNode(e.angle)),e.alpha&&(this.alpha=t.getNode(e.alpha)),this}},ja=Xp;ja.Nodes=function(){return{gradient:new Le(`vec3 gradient(int glType, int num, bool smoothed, vec4 colors[GRAD_MAX], float steps[GRAD_MAX], vec2 offset, vec2 morph, float angle, float alpha, out float calpha) { + vec4 color = colors[0]; + vec2 m = morph / vUv.xy; + vec2 rot = vec2( 0.5 + m.x, m.y ); + vec2 dt = vec2( + cos( angle ) * rot.x - sin( angle ) * rot.y, + sin( angle ) * rot.x + cos( angle ) * rot.y + ); + vec2 pt = ( vUv - 0.5 + offset ) / 2.0 + dt / 2.0; + float t = dot( pt, dt ) / dot( dt, dt ); + if ( glType == 1 ) { + t = distance ( + ( vUv + morph ) * 3.0, + ( vUv + offset ) + 1.0 + ) + angle; + } else if ( glType == 2 ) { + float polar = atan( + vUv.x + morph.x - 0.5 + offset.x, + vUv.y + morph.y - 0.5 + offset.y + ) * -1.0; + t = fract( ( angle / PI / -2.0 ) + 0.5 * ( polar / PI ) ); + } + + float p; + if (smoothed) { + for ( int i = 1; i < GRAD_MAX; i++ ) { + p = clamp( ( t - steps[i-1] ) / ( steps[i] - steps[i-1] ), 0.0, 1.0 ); + color = mix(color, colors[i], smoothstep(0.0, 1.0, p)); + } + + } else { + for ( int i = 1; i < GRAD_MAX; i++ ) { + p = clamp( ( t - steps[i-1] ) / ( steps[i] - steps[i-1] ), 0.0, 1.0 ); + color = mix(color, colors[i], p); + } + } + + float lalpha = alpha * color.a; + calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 ); + accumAlpha += ( 1.0 - accumAlpha ) * lalpha; + + return color.xyz; + }`)}}();var So;(function(t){t.NOISE="noise",t.MAP="map"})(So||(So={}));var qp=class extends je{constructor(e=new it(0),t,n,i,s,o){super("v3");this.nodeType="VertexDisplacement";this.displacementTypeIndex=e,this.intensity=t,this.movementOrTexture=n,Object.values(So)[this.displacementTypeIndex.value]===So.MAP&&(this.mat=new zr(this.movementOrTexture.value.matrix)),this.cropOrOffset=i,this.scale=s,this.noiseFunctionIndex=o}generate(e,t){if(e.isShader("vertex")){e.define("USE_LAYER_DISPLACE");let n,i=[];switch(i.push("displaced_position"),i.push("displaced_normal"),Object.values(So)[this.displacementTypeIndex.value]){case So.MAP:{n=e.include(qp.Nodes.map),i.push(this.movementOrTexture.getTexture(e,"t")),i.push("uv"),i.push(this.cropOrOffset.build(e,"f")),this.mat&&i.push(this.mat.build(e,"mat3"));break}case So.NOISE:{let o=Object.values(Ua)[this.noiseFunctionIndex.value],a=new Le(`vec3 orthogonal(vec3 v) { + return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y)); + }`),l=new Le(`vec3 distorted(vec3 p, vec3 n, float scale, float intensity, vec3 offset, float neighbour_offset, float movement) { + return p + n * ${o}((p + offset) * scale * 0.001 + neighbour_offset + (movement * 0.1)) * intensity; + }`,[si.simplex,si.simplexFractal,si.simplexAshima,si.fbm,si.perlin]),c=new Le(`vec3 vertexDisplacementNoise(vec3 position, vec3 normal, float scale, vec3 offset, float movement, float intensity, out vec3 displaced_normal) { + vec3 displaced_position = distorted(position, normal, scale, intensity, offset, neighbor_offset, movement); + vec3 tangent1 = orthogonal(normal); + vec3 tangent2 = normalize(cross(normal, tangent1)); + + // TODO(Max): The distance to the neighbors was originally scaled by 0.1. + // This caused some small oval/circular visual artifacts in the lighting. + // For now, simply using neighbors further away betters the problem, + // but we should figure out the underlying cause when we have some time. + // Maybe its related to how we calculate the tangent and bitangent? + vec3 nearby1 = position + tangent1; + vec3 nearby2 = position + tangent2; + vec3 distorted1 = distorted(nearby1, normal, scale, intensity, offset, neighbor_offset, movement); + vec3 distorted2 = distorted(nearby2, normal, scale, intensity, offset, neighbor_offset, movement); + displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position)); + return displaced_position; + }`,[l,a]);n=e.include(c),i.push(this.scale.build(e,"f")),i.push(this.cropOrOffset.build(e,"v3")),i.push(this.movementOrTexture.build(e,"f"));break}}return i.push(this.intensity.build(e,"f")),i.push("displaced_normal"),e.format(n+"("+i.join(",")+")",this.getType(e),t)}else return console.warn("VertexDisplacementNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}toJSON(e){var n;let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.intensity=this.intensity.toJSON(e).uuid,t.scale=(n=this.scale)==null?void 0:n.toJSON(e).uuid,t.movementOrTexture=this.movementOrTexture.toJSON(e).uuid,t.cropOrOffset=this.cropOrOffset.toJSON(e).uuid),t.displacementTypeIndex=this.displacementTypeIndex,t.noiseFunctionIndex=this.noiseFunctionIndex,t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),this.displacementTypeIndex=e.displacementTypeIndex,this.noiseFunctionIndex=e.noiseFunctionIndex,e.cropOrOffset&&(this.cropOrOffset=t.getNode(e.cropOrOffset)),e.intensity&&(this.intensity=t.getNode(e.intensity)),e.movementOrTexture&&(this.displacementTypeIndex.value===1?(this.movementOrTexture=t.getNode(e.movementOrTexture),this.movementOrTexture.value.updateMatrix(),this.mat=new zr(this.movementOrTexture.value.matrix)):this.displacementTypeIndex.value===0&&(this.movementOrTexture=t.getNode(e.movementOrTexture))),e.scale&&(this.scale=t.getNode(e.scale)),this}copy(e){var t,n;return super.copy(e),this.noiseFunctionIndex=(t=e.noiseFunctionIndex)==null?void 0:t.clone(),this.scale=(n=e.scale)==null?void 0:n.clone(),this.cropOrOffset=e.cropOrOffset.clone(),this.intensity=e.intensity.clone(),this.movementOrTexture=e.movementOrTexture.clone(),this}},Mo=qp;Mo.Nodes=function(){let e=new Le(`vec3 orthogonal(vec3 v) { + return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y)); + }`),t=new Le(`float displacementMapTexture(sampler2D tex, float crop, vec2 uv, mat3 mat, vec2 offset) { + vec2 uvs = (mat * vec3(uv * 2.0 - 1.0, 1.0) / 2.0 + 0.5).xy + offset; + vec4 tmp = texture2D(tex, uvs); + vec3 col = tmp.rgb; + if (crop > 0.5) { + if ( uvs.x < 0.0 || uvs.x > 1.0 || uvs.y < 0.0 || uvs.y > 1.0 ) { + return 0.0; + } + } + return col.r; + }`);return{map:new Le(`vec3 vertexDisplacementMap(vec3 position, vec3 normal, sampler2D tex, vec2 uv, float crop, mat3 mat, float intensity, out vec3 displaced_normal) { + vec3 displaced_position = position + normal * displacementMapTexture(tex, crop, uv, mat, vec2(0.0)) * intensity; + vec3 tangent1 = normalize(orthogonal(normal)); + vec3 tangent2 = normalize(cross(normal, tangent1)); + vec3 nearby1 = position + tangent1 * 0.1; + vec3 nearby2 = position + tangent2 * 0.1; + vec3 distorted1 = nearby1 + normal * displacementMapTexture(tex, crop, uv, mat, vec2(neighbor_offset)) * intensity; + vec3 distorted2 = nearby2 + normal * displacementMapTexture(tex, crop, uv, mat, vec2(neighbor_offset)) * intensity; + displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position)); + return displaced_position; + }`,[e,t])}}();var Wa=class extends je{constructor(e=new ze,t=new ze,n=new ze,i=new ze,s=new ze,o=new ze,a=new ze,l=new ze,c=new ze,u=new ze,h=new ze,d=new ze,f=new ze,p=new ze,m=new ze,v=new ze){super("v3");this.nodeType="Noise";this.scale=e,this.size=t,this.move=n,this.fA=i,this.fB=s,this.distortion=o,this.colorA=a,this.colorB=l,this.colorC=c,this.colorD=u,this.intA=h,this.intB=d,this.intC=f,this.intD=p,this.alpha=m,this.noiseFunctionIndex=v}generate(e,t,n,i,s){e.require("uv"),e.requires.uv=[!0];let o=Object.values(Ua)[this.noiseFunctionIndex.value],a=new Le(`vec3 ${o}customNoise(float scale, vec3 size, float move, vec2 fA, vec2 fB, vec2 distortion, vec3 colorA, vec3 colorB, vec3 colorC, vec3 colorD, float intA, float intB, float intC, float intD, float alpha) { + vec3 st = position / size; + st /= scale; + vec3 q = vec3(${o}(st), + ${o}(st + vec3(1.0)), + ${o}(st + vec3(1.0))); + vec3 r = vec3(${o}(st + vec3(distortion, 1.0) * q + vec3(fA, 1.0) + move), + ${o}(st + vec3(distortion, 1.0) * q + vec3(fB, 1.0) + move), + ${o}(st * q)); + float f = ${o}(st + r); + vec3 color; + color = mix(colorA * intA, colorB * intB, clamp((f * f) * 4.0, 0.0, 1.0)); + color = mix(color, colorC * intC, clamp(length(q), 0.0, 1.0)); + color = mix(color, colorD * intD, clamp(length(r.x), 0.0, 1.0)); + accumAlpha += (1.0 - accumAlpha) * alpha; + return clamp(color, 0.0, 1.0); + }`,[si.simplex,si.simplexFractal,si.simplexAshima,si.fbm,si.perlin]),l=e.include(a),c=[];return c.push(this.scale.build(e,"f")),c.push(this.size.build(e,"v3")),c.push(this.move.build(e,"f")),c.push(this.fA.build(e,"v2")),c.push(this.fB.build(e,"v2")),c.push(this.distortion.build(e,"v2")),c.push(this.colorA.build(e,"c")),c.push(this.colorB.build(e,"c")),c.push(this.colorC.build(e,"c")),c.push(this.colorD.build(e,"c")),c.push(this.intA.build(e,"f")),c.push(this.intB.build(e,"f")),c.push(this.intC.build(e,"f")),c.push(this.intD.build(e,"f")),c.push(this.alpha.build(e,"f")),e.format(l+"("+c.join(",")+")",this.getType(e),t)}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.scale=this.scale.toJSON(e).uuid,t.size=this.size.toJSON(e).uuid,t.move=this.move.toJSON(e).uuid,t.fA=this.fA.toJSON(e).uuid,t.fB=this.fB.toJSON(e).uuid,t.distortion=this.distortion.toJSON(e).uuid,t.colorA=this.colorA.toJSON(e).uuid,t.colorB=this.colorB.toJSON(e).uuid,t.colorC=this.colorC.toJSON(e).uuid,t.colorD=this.colorD.toJSON(e).uuid,t.intA=this.intA.toJSON(e).uuid,t.intB=this.intB.toJSON(e).uuid,t.intC=this.intC.toJSON(e).uuid,t.intD=this.intD.toJSON(e).uuid,t.alpha=this.alpha.toJSON(e).uuid),t.noiseFunction=this.noiseFunctionIndex,t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.scale&&(this.scale=t.getNode(e.scale)),e.size&&(this.size=t.getNode(e.size)),e.move&&(this.move=t.getNode(e.move)),e.fA&&(this.fA=t.getNode(e.fA)),e.fB&&(this.fB=t.getNode(e.fB)),e.distortion&&(this.distortion=t.getNode(e.distortion)),e.colorA&&(this.colorA=t.getNode(e.colorA)),e.colorB&&(this.colorB=t.getNode(e.colorB)),e.colorC&&(this.colorC=t.getNode(e.colorC)),e.colorD&&(this.colorD=t.getNode(e.colorD)),e.intA&&(this.intA=t.getNode(e.intA)),e.intB&&(this.intB=t.getNode(e.intB)),e.intC&&(this.intC=t.getNode(e.intC)),e.intD&&(this.intD=t.getNode(e.intD)),e.alpha&&(this.alpha=t.getNode(e.alpha)),e.noiseFunctionIndex&&(this.noiseFunctionIndex=t.getNode(e.noiseFunctionIndex)),this}copy(e){return super.copy(e),this.scale.copy(e.scale),this.size.copy(e.size),this.move.copy(e.move),this.fA.copy(e.fA),this.fB.copy(e.fB),this.distortion.copy(e.distortion),this.colorA.copy(e.colorA),this.colorB.copy(e.colorB),this.colorC.copy(e.colorC),this.colorD.copy(e.colorD),this.intA.copy(e.intA),this.intB.copy(e.intB),this.intC.copy(e.intC),this.intD.copy(e.intD),this.alpha.copy(e.alpha),this.noiseFunctionIndex.copy(e.noiseFunctionIndex),this}};Wa.numOctaves=5;var Ja;(function(i){i.ADD="+",i.SUB="-",i.MUL="*",i.DIV="/"})(Ja||(Ja={}));var Yp=class extends je{constructor(e=new ze,t=new ze,n=Yp.ADD){super();this.nodeType="Operator";this.type=e.type,this.a=e,this.b=t,this.op=n}getType(e){let t=this.a.getType(e),n=this.b.getType(e);return e.isTypeMatrix(t)?"v4":e.getTypeLength(n)>e.getTypeLength(t)?n:t}generate(e,t){let n=this.getType(e);this.type=n;let i=this.a.build(e,n),s=this.b.build(e,n);return e.format("( "+i+" "+this.op+" "+s+" )",n,t)}copy(e){return super.copy(e),this.a.copy(e.a),this.b.copy(e.b),this.op=e.op,this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.a=this.a.toJSON(e).uuid,t.b=this.b.toJSON(e).uuid,t.op=this.op),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.a&&(this.a=t.getNode(e.a)),e.b&&(this.b=t.getNode(e.b)),e.op&&(this.op=e.op),this}},Yn=Yp;Yn.ADD=Ja.ADD,Yn.SUB=Ja.SUB,Yn.MUL=Ja.MUL,Yn.DIV=Ja.DIV;var Xa=class extends je{constructor(e=new ze,t=new ze,n=new ze,i=new ze){super("v3");this.nodeType="Blend";this.a=e,this.b=t,this.alpha=n,this.mode=i}generate(e,t){if(e.isShader("fragment")){let n=[];return n.push(this.a.build(e,"c")),n.push(this.b.build(e,"c")),n.push(this.alpha.build(e,"f")),n.push(this.mode.build(e,"i")),e.format("spe_blend("+n.join(",")+")",this.getType(e),t)}else return console.warn("BlendNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}copy(e){return super.copy(e),this.a.copy(e.a),this.b.copy(e.b),this.alpha.copy(e.alpha),this.mode.copy(e.mode),this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.a=this.a.toJSON(e).uuid,t.b=this.b.toJSON(e).uuid,t.alpha=this.alpha.toJSON(e).uuid,t.mode=this.mode.toJSON(e).uuid),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.a&&(this.a=t.getNode(e.a)),e.b&&(this.b=t.getNode(e.b)),e.alpha&&(this.alpha=t.getNode(e.alpha)),e.mode&&(this.mode=t.getNode(e.mode)),this}};var Kp=class extends je{constructor(e,t,n,i,s,o,a,l){super("v3");this.nodeType="Depth";this.near=e,this.far=t,this.isVector=n,this.isWorldSpace=i,this.origin=s,this.colorA=o,this.colorB=a,this.alpha=l}generate(e,t){if(e.isShader("fragment")){e.require("worldPosition");let n=e.include(Kp.Nodes.sdepth),i=[];return i.push(this.near.build(e,"f")),i.push(this.far.build(e,"f")),i.push(this.isVector.build(e,"f")),i.push(this.isWorldSpace.build(e,"f")),i.push(this.origin.build(e,"v3")),i.push(this.colorA.build(e,"v3")),i.push(this.colorB.build(e,"v3")),i.push(this.alpha.build(e,"f")),e.format(n+"("+i.join(",")+")",this.getType(e),t)}else return console.warn("DepthNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.near=this.near.toJSON(e).uuid,t.far=this.far.toJSON(e).uuid,t.isVector=this.isVector.toJSON(e).uuid,t.isWorldSpace=this.isWorldSpace.toJSON(e).uuid,t.origin=this.origin.toJSON(e).uuid,t.colorA=this.colorA.toJSON(e).uuid,t.colorB=this.colorB.toJSON(e).uuid,t.alpha=this.alpha.toJSON(e).uuid),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.near&&(this.near=t.getNode(e.near)),e.far&&(this.far=t.getNode(e.far)),e.isVector&&(this.isVector=t.getNode(e.isVector)),e.isWorldSpace&&(this.isWorldSpace=t.getNode(e.isWorldSpace)),e.origin&&(this.origin=t.getNode(e.origin)),e.colorA&&(this.colorA=t.getNode(e.colorA)),e.colorB&&(this.colorB=t.getNode(e.colorB)),e.alpha&&(this.alpha=t.getNode(e.alpha)),this}copy(e){return super.copy(e),this.near=e.near.clone(),this.far=e.far.clone(),this.isVector=e.isVector.clone(),this.isWorldSpace=e.isWorldSpace.clone(),this.origin=e.origin.clone(),this.colorA=e.colorA.clone(),this.colorB=e.colorB.clone(),this.alpha=e.alpha.clone(),this}},qa=Kp;qa.Nodes=function(){return{sdepth:new Le(`vec3 sdepth(float near, float far, float isVector, float isWorldSpace, vec3 origin, vec3 colorA, vec3 colorB, float alpha) { + float dist; + if (isVector > 0.5) { + dist = (isWorldSpace > 0.5) ? length(vWPosition - origin) : length(position - origin); + } else { + dist = length (vWPosition - cameraPosition); + } + float dep = ( dist - near ) / ( far - near ); + vec3 depth = mix( colorB, colorA, 1.0 - clamp( dep, 0., 1. ) ); + + accumAlpha += ( 1.0 - accumAlpha ) * alpha; + + return depth; + }`)}}();var Qp=class extends je{constructor(e,t,n,i){super("v3");this.nodeType="Matcap";this.color=e,this.texture=t,this.alpha=n,this.mode=i,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,t){if(e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let n=e.include(Qp.Nodes.matcap);e.require("normal"),e.requires.normal=!0;let i=[];return i.push(this.color.build(e,"v3")),i.push(this.texture.getTexture(e,"t")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(n+"("+i.join(",")+")",this.getType(e),t)}else return console.warn("MatcapNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}copy(e){return super.copy(e),this.texture=e.texture.clone(),this.color=e.color.clone(),this.alpha=e.alpha.clone(),this.mode=e.mode.clone(),this.calpha=e.calpha,this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.texture=this.texture.toJSON(e).uuid,t.color=this.color.toJSON(e).uuid,t.alpha=this.alpha.toJSON(e).uuid,t.mode=this.mode.toJSON(e).uuid,t.calpha=this.calpha),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.calpha&&(this.calpha=e.calpha),e.alpha&&(this.alpha=t.getNode(e.alpha)),e.texture&&(this.texture=t.getNode(e.texture)),e.color&&(this.color=t.getNode(e.color)),e.mode&&(this.mode=t.getNode(e.mode)),this}},Ya=Qp;Ya.Nodes=function(){return{matcap:new Le(`vec3 matcap(vec3 color, sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) { + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; // 0.495 to remove artifacts caused by undersized matcap disks + vec4 matcapColor = texture2D( matcapTex, uv ); + // matcapColor = matcapTexelToLinear( matcapColor ); + matcapColor.rgb *= color; + + calpha = alpha / clamp( alpha + accumAlpha, 0.00001, 1.0 ); + accumAlpha += ( 1.0 - accumAlpha ) * alpha; + + return matcapColor.rgb; + } + `)}}();var Kn=class{constructor(e){this.id=2,this.layerCount=2,this.uuid=Ee.generateUUID(),this.needsUpdate=!1,this._material=e,this._layerNodes=[];let t=this._createLayer({id:0,type:lt.COLOR});this._material.color=t.color,this._material.alpha===void 0&&(this._material.alpha=new Te(1));let n=new Te(1),i=new it(0);"shadingAlpha"in this._material&&"shadingBlend"in this._material&&(this._material.shadingAlpha=n,this._material.shadingBlend=i),this._layerNodes.push({id:0,type:Gt.COLOR,color:t.color,alpha:t.alpha,mode:t.mode}),this._layerNodes.push({id:1,type:Gt.LIGHTING,alpha:n,mode:i}),this.head=t.layer,this.head.next=new jt(1,{type:lt.LIGHTING,alpha:n,mode:i}),this.attachLightNodes()}get material(){return this._material}set material(e){this._material=e;let t,n,i=this.head;for(;i!==void 0;){if(i.type===lt.LIGHTING){t=i.uniforms[`f${i.id}_alpha`],n=i.uniforms[`f${i.id}_mode`];break}i=i.next}"shadingAlpha"in this._material&&"shadingBlend"in this._material&&(this._material.shadingAlpha=t,this._material.shadingBlend=n),this.attachLightNodes(),this.blendColors(),this.blendAfterColors(),this.blendPositions()}getLayersOfType(e){let t=[],n=this.head;for(;n;)n.type===e&&t.push(n),n=n.next;return t}addLayer(e){var i;if(e.id=(i=e.id)!=null?i:++this.id,this.layerCount++,e.type===lt.LIGHTING){let s=this.createLightLayer(e);return this.uuid=Ee.generateUUID(),this.blendColors(),this.blendAfterColors(),this.blendPositions(),s}let t=this._createLayer(e),n=t.layer;if(this.head===void 0)this.head=n;else{let s=this.head;for(;s.next!=null;)s=s.next;s.next=n}return t.color&&this._layerNodes.push({id:n.id,type:Gt.COLOR,color:t.color,alpha:t.alpha,mode:t.mode}),t.position&&this._layerNodes.push({id:n.id,type:Gt.POSITION,position:t.position}),this.uuid=Ee.generateUUID(),this.blendColors(),this.blendAfterColors(),this.blendPositions(),n}addLayerBeforeAt(e,t){var a;let n=this.head;e.id=(a=e.id)!=null?a:++this.id,this.layerCount++;let i=this._createLayer(e),s=i.layer;s.next=t;let o=0;if(n===t)this.head=s,i.color&&this._layerNodes.splice(0,0,{id:s.id,type:Gt.COLOR,color:i.color,alpha:i.alpha,mode:i.mode}),i.position&&this._layerNodes.splice(0,0,{id:s.id,type:Gt.POSITION,position:i.position});else{for(o=1;(n==null?void 0:n.next)!==t;)n=n==null?void 0:n.next,o++;n.next=s,i.color&&this._layerNodes.splice(o,0,{id:s.id,type:Gt.COLOR,color:i.color,alpha:i.alpha,mode:i.mode}),i.position&&this._layerNodes.splice(o,0,{id:s.id,type:Gt.POSITION,position:i.position})}return this.uuid=Ee.generateUUID(),this.blendColors(),this.blendAfterColors(),this.blendPositions(),s}addLayerAt(e,t){var s;t.id=(s=t.id)!=null?s:++this.id,this.layerCount++;let n=this._createLayer(t),i=n.layer;if(n.color&&this._layerNodes.splice(e,0,{id:i.id,type:Gt.COLOR,color:n.color,alpha:n.alpha,mode:n.mode}),n.position&&this._layerNodes.splice(e,0,{id:i.id,type:Gt.POSITION,position:n.position}),e==0)i.next=this.head,this.head=i;else{let o=this.head,a=this.head.next;for(let l=0;ll.clone&&!n?l.clone():l);else{let l=t.uniforms[a].value;if(o==="transmissionDepthMap"){i[o]=l;continue}l!=null&&(i[o]=l.clone&&!n&&!l.isRenderTargetTexture?l.clone():l)}}this.addLayer(i)}}attachLightNodes(e){var i,s,o,a,l,c,u,h,d,f,p;let t={},n=this.getLightLayer();switch(this._material.userData.category){case"Lambert":t.emissive=new ct((s=(i=e==null?void 0:e.getValue("emissive"))==null?void 0:i.clone())!=null?s:0);break;case"Phong":t.shininess=new Te((o=e==null?void 0:e.getValue("shininess"))!=null?o:30),t.specular=new ct((l=(a=e==null?void 0:e.getValue("specular"))==null?void 0:a.clone())!=null?l:1118481);break;case"Toon":t.shininess=new Te((c=e==null?void 0:e.getValue("shininess"))!=null?c:30),t.specular=new ct((h=(u=e==null?void 0:e.getValue("specular"))==null?void 0:u.clone())!=null?h:1118481);break;case"Physical":t.roughness=new Te((d=e==null?void 0:e.getValue("roughness"))!=null?d:.3),t.metalness=new Te((f=e==null?void 0:e.getValue("metalness"))!=null?f:0),t.reflectivity=new Te((p=e==null?void 0:e.getValue("reflectivity"))!=null?p:.5);break;default:break}Object.keys(t).forEach(m=>{this._material[m]=t[m],n.uniforms[`f${n.id}_${m}`]=t[m]})}clone(e){return new Kn(e).copy(this)}toJSON(e){return{id:this.id,uuid:this.uuid,head:this.head.toJSON(e)}}fromJSON(e,t,n){let i=new jt(e.head.id,{type:e.head.type}).fromJSON(e.head,t),s=e.head.next,o=i;for(;s!=null;)o.next=new jt(s.id,{type:s.type}).fromJSON(s,t),s=s.next,o=o.next;this._layerNodes=[],this.head=void 0,this.rebuildLayerNodes(this.head,i,!0);let a=i;for(o=this.head;a.next!=null;)this.rebuildLayerNodes(o,a.next,!0),o=o.next,a=a.next;return this._material=n,this.id=e.id,this.uuid=e.uuid,this.blendColors(),this.blendAfterColors(),this.blendPositions(),this}getLightLayer(){var t;let e=this.head;for(;e!==void 0&&e.type!=="light";)e=(t=e.next)!=null?t:e;return e}dispose(){let e=this.head;for(this._layerNodes=[],this.layerCount=0;e!==void 0;)e.hasOwnProperty("dispose")===!0&&e.dispose(),e=e.next;this.head=void 0}_createLayer(e){var n,i,s,o,a,l,c,u,h,d,f,p,m,v,g,y,x,b,w,_,S,A,T,L,C,U,P,R,G,B,j,ne,le,W,z,D,K,q,ee,V,de,ae,te,X,se,$,H,Q,ce,ie,N,E,Y,re,ye,pe,Ie,ve,Fe,Ce,J,xe,he,Ne,Be,ke,ht,ft,Bn,Mt,Tn,En,Di,_r,xn,F,Pe,et,Ft,Nn,Gs,sr,Ll,Il,mu,gu,I,oe;let t=e.type;switch(t){case lt.COLOR:{let k=new ct((n=e.color)!=null?n:5855577),Z=new Te((i=e.alpha)!=null?i:1),ue=new yt("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");ue.keywords.alpha=Z;let Me=new it((s=e.mode)!=null?s:0);return k.alpha=Z,{layer:new jt(e.id,{type:t,color:k,alpha:Z,calpha:ue,mode:Me}),color:k,alpha:ue,mode:Me}}case lt.TEXTURE:{let k=(o=e.texture)!=null?o:new bi,Z=k.matrix;e.mat&&Z.copy(e.mat),k.needsUpdate=!0;let ue=new Te((a=e.crop)!=null?a:0),Me=new it((l=e.projection)!=null?l:0),_e=new it((c=e.axis)!=null?c:0),Se=new In((u=e.size)!=null?u:new O(100,100)),De=new Te((h=e.alpha)!=null?h:1),Ve=new it((d=e.mode)!=null?d:0),Oe=new kn(k),He=new Un((f=e.textureSize)!=null?f:new M(k.image?k.image.width:0,k.image?k.image.height:0)),Ge=new za(Oe,He,ue,Me,_e,Se,De,Ve),Kt=new yt(Ge.calpha,"f");return{layer:new jt(e.id,{type:t,texture:Oe,textureSize:He,crop:ue,projection:Me,axis:_e,size:Se,mat:Ge.mat,alpha:De,calpha:Kt,mode:Ve}),color:Ge,alpha:Kt,mode:Ve}}case lt.MATCAP:{let k=new ct((p=e.color)!=null?p:16777215),Z=(m=e.texture)!=null?m:new bi;Z.needsUpdate=!0;let ue=new Te((v=e.alpha)!=null?v:1),Me=new kn(Z),_e=new it((g=e.mode)!=null?g:0),Se=new Ya(k,Me,ue,_e),De=new yt(Se.calpha,"f");return{layer:new jt(e.id,{type:t,texture:Me,color:k,alpha:ue,calpha:De,mode:_e}),color:Se,alpha:De,mode:_e}}case lt.FRESNEL:{let k=new ct((y=e.color)!=null?y:16777215),Z=new Te((x=e.bias)!=null?x:.1),ue=new Te((b=e.scale)!=null?b:1),Me=new Te((w=e.intensity)!=null?w:2),_e=new Te((_=e.factor)!=null?_:1),Se=new Te((S=e.alpha)!=null?S:1),De=new it((A=e.mode)!=null?A:0),Ve=new Ga(k,Z,ue,Me,_e,Se,De),Oe=new yt(Ve.calpha,"f");return{layer:new jt(e.id,{type:t,color:k,bias:Z,scale:ue,intensity:Me,factor:_e,alpha:Se,calpha:Oe,mode:De}),color:Ve,alpha:Oe,mode:De}}case lt.RAINBOW:{let k=new Te((T=e.filmThickness)!=null?T:30),Z=new Te((L=e.movement)!=null?L:0),ue=new Un((C=e.wavelengths)!=null?C:new M(0,0,0)),Me=new Te((U=e.noiseStrength)!=null?U:0),_e=new Te((P=e.noiseScale)!=null?P:1),Se=new Un((R=e.offset)!=null?R:new M(0,0,0)),De=new Te((G=e.alpha)!=null?G:1),Ve=new ka(k,Z,ue,Me,_e,Se,De),Oe=new yt(Ve.calpha,"f"),He=new it((B=e.mode)!=null?B:0);return{layer:new jt(e.id,{type:t,filmThickness:k,movement:Z,wavelengths:ue,noiseStrength:Me,noiseScale:_e,offset:Se,alpha:De,calpha:Oe,mode:He}),color:Ve,alpha:Oe,mode:He}}case lt.TRANSMISSION:{let k=new Te((j=e.thickness)!=null?j:10),Z=new Te((ne=e.ior)!=null?ne:1.5),ue=new Te((le=e.roughness)!=null?le:.5),Me=new In((W=e.transmissionSamplerSize)!=null?W:new O(2048,2048)),_e=(z=e.transmissionSamplerMap)!=null?z:new bi,Se=(D=e.transmissionDepthMap)!=null?D:new bi,De=new kn(_e),Ve=new kn(Se),Oe=window.innerWidth,He=window.innerHeight,Ge=Oe>=He?new In(He/Oe,1):new In(1,Oe/He),Kt=new Te((K=e.alpha)!=null?K:1),vt=new Va(k,Z,ue,Me,De,Ve,Ge,Kt),bn=new yt(vt.calpha,"f"),wn=new it((q=e.mode)!=null?q:0);return{layer:new jt(e.id,{type:t,thickness:k,ior:Z,roughness:ue,transmissionSamplerSize:Me,transmissionSamplerMap:De,transmissionDepthMap:Ve,aspectRatio:Ge,alpha:Kt,calpha:bn,mode:wn}),color:vt,alpha:bn,mode:wn}}case lt.DEPTH:{let k=new Te((ee=e.near)!=null?ee:50),Z=new Te((V=e.far)!=null?V:200),ue=new Te((de=e.isVector)!=null?de:1),Me=new Te((ae=e.isWorldSpace)!=null?ae:0),_e=new Un((te=e.origin)!=null?te:new M),Se=new ct((X=e.colorA)!=null?X:new fe),De=new ct((se=e.colorB)!=null?se:new fe(0,0,0)),Ve=new Te(($=e.alpha)!=null?$:1),Oe=new it((H=e.mode)!=null?H:0),He=new yt("alpha / clamp(alpha + accumAlpha, 0.001, 1.0 )","f");He.keywords.alpha=Ve;let Ge=new qa(k,Z,ue,Me,_e,Se,De,Ve);return{layer:new jt(e.id,{type:t,near:k,far:Z,isVector:ue,isWorldSpace:Me,origin:_e,colorA:Se,colorB:De,alpha:Ve,calpha:He,mode:Oe}),color:Ge,alpha:He,mode:Oe}}case lt.NOISE:{let k=new Te((Q=e.scale)!=null?Q:1),Z=new Un((ce=e.size)!=null?ce:new M(100,100,100)),ue=new Te((ie=e.move)!=null?ie:1),Me=new In((N=e.fA)!=null?N:new O(1.7,9.2)),_e=new In((E=e.fB)!=null?E:new O(8.3,2.8)),Se=new In((Y=e.distortion)!=null?Y:new O(1,1)),De=new ct((re=e.colorA)!=null?re:new fe(.4,.4,.4)),Ve=new ct((ye=e.colorB)!=null?ye:new fe(.4,.4,.4)),Oe=new ct((pe=e.colorC)!=null?pe:new fe(1,1,1)),He=new ct((Ie=e.colorD)!=null?Ie:new fe(1,1,1)),Ge=new Te((ve=e.intA)!=null?ve:1),Kt=new Te((Fe=e.intB)!=null?Fe:1),vt=new Te((Ce=e.intC)!=null?Ce:1),bn=new Te((J=e.intD)!=null?J:1),wn=new Te((xe=e.alpha)!=null?xe:1),Ri=new it((he=e.mode)!=null?he:0),Bi=new it((Ne=e.noiseType)!=null?Ne:0),Qt=new yt("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");Qt.keywords.alpha=wn;let Mi=new Wa(k,Z,ue,Me,_e,Se,De,Ve,Oe,He,Ge,Kt,vt,bn,wn,Bi);return{layer:new jt(e.id,{type:t,scale:k,size:Z,move:ue,fA:Me,fB:_e,distortion:Se,colorA:De,colorB:Ve,colorC:Oe,colorD:He,intA:Ge,intB:Kt,intC:vt,intD:bn,alpha:wn,calpha:Qt,mode:Ri,noiseType:Bi}),color:Mi,alpha:Qt,mode:Ri}}case lt.NORMAL:{let k=new Un((Be=e.cnormal)!=null?Be:new M(1,1,1)),Z=new Te((ke=e.alpha)!=null?ke:1),ue=new it((ht=e.mode)!=null?ht:0),Me=new Ha(k,Z),_e=new yt("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return _e.keywords.alpha=Z,{layer:new jt(e.id,{type:t,cnormal:k,alpha:Z,calpha:_e,mode:ue}),color:Me,alpha:_e,mode:ue}}case lt.GRADIENT:{let k=new it((ft=e.gl_type)!=null?ft:0),Z=new it((Bn=e.num)!=null?Bn:2),ue=new mc((Mt=e.smooth)!=null?Mt:!1),Me;e.colors?Me=new Ra(e.colors.length,e.colors):(Me=new Ra(10,new Qe(0,0,0,1)),Me.value[1]=new Qe(1,1,1,1));for(let bn=Z.value;bn<10;bn++)Me.value[bn]=Me.value[Z.value-1];let _e;e.steps?_e=new Ba(e.steps.length,e.steps):(_e=new Ba(10,1),_e.value[0]=0);let Se=new In((Tn=e.offset)!=null?Tn:new O(0,0)),De=new In((En=e.morph)!=null?En:new O(0,0)),Ve=new Te((Di=e.angle)!=null?Di:0),Oe=new Te((_r=e.alpha)!=null?_r:1),He=new it((xn=e.mode)!=null?xn:0),Ge=new ja(k,Z,ue,Me,_e,Se,De,Ve,Oe),Kt=new yt(Ge.calpha,"f");return{layer:new jt(e.id,{type:t,gl_type:k,num:Z,smooth:ue,colors:Me,steps:_e,offset:Se,morph:De,angle:Ve,alpha:Oe,calpha:Kt,mode:He}),color:Ge,alpha:Kt,mode:He}}case lt.DISPLACE:{let k=new it((F=e.displacementType)!=null?F:0);if(k.value===0){let Z=new Un((Pe=e.offset)!=null?Pe:new M(0,0,0)),ue=new Te((et=e.scale)!=null?et:10),Me=new Te((Ft=e.intensity)!=null?Ft:8),_e=new Te((Nn=e.movement)!=null?Nn:1),Se=new Te((Gs=e.alpha)!=null?Gs:1),De=new it((sr=e.mode)!=null?sr:0),Ve=new it((Ll=e.noiseType)!=null?Ll:0),Oe=new Mo(k,Me,_e,Z,ue,Ve);return{layer:new jt(e.id,{displacementType:k,type:t,offset:Z,scale:ue,intensity:Me,movement:_e,alpha:Se,mode:De,noiseType:Ve}),position:Oe}}else if(k.value===1){let Z=(Il=e.texture)!=null?Il:new bi,ue=Z.matrix;e.mat&&ue.copy(e.mat),Z.needsUpdate=!0;let Me=new Te((mu=e.intensity)!=null?mu:8),_e=new kn(Z),Se=new Te((gu=e.crop)!=null?gu:0),De=new Te((I=e.alpha)!=null?I:1),Ve=new it((oe=e.mode)!=null?oe:0),Oe=new Mo(k,Me,_e,Se);return{layer:new jt(e.id,{displacementType:k,type:t,intensity:Me,texture:_e,crop:Se,mat:Oe.mat,alpha:De,mode:Ve}),position:Oe}}return{}}}return{}}blendColors(){let e=this._layerNodes.findIndex(n=>n.type===Gt.COLOR),t=this._layerNodes.findIndex(n=>n.type===Gt.LIGHTING);if(e!==-1&&en.type===Gt.LIGHTING);if(this._layerNodes.length>t+1){for(let n=t+1;nt.type===Gt.POSITION);if(e.length>0){let t=e[0].position;for(let n=1;nt.id!==e.id),e.type){case lt.DISPLACE:{this.blendPositions();break}default:{this.blendColors(),this.blendAfterColors();break}}}};var Nh=class{constructor(e){e=e!=null?e:{},this.name=e.name,this.type=e.type,this.node=e.node,this.size=e.size,this.needsUpdate=e.needsUpdate}get value(){return this.node.value}set value(e){this.node.value=e}};var yc=class extends Ct{constructor(e=0,t,n,i){super("v4");this.nodeType="Vector4";this.value=e instanceof Qe?e:new Qe(e,t,n,i)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}get w(){return this.value.w}set w(e){this.value.w=e}generateReadonly(e,t,n,i,s,o){return e.format("vec4("+this.value.x+", "+this.value.y+", "+this.value.z+", "+this.value.w+")",i,t)}copy(e){return super.copy(e),this.value.copy(e.value),this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.x=this.value.x,t.y=this.value.y,t.z=this.value.z,t.w=this.value.w,this.getReadonly()===!0&&(t.readonly=!0)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.x&&(this.value.x=e.x),e.y&&(this.value.y=e.y),e.z&&(this.value.z=e.z),e.w&&(this.value.w=e.w),e.readonly!==void 0&&(this.readonly=e.readonly),this}};var ML=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.| +)*?)}`,"gim"),AL=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Ao=class extends je{constructor(e=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(e)}getType(e){return e.getTypeByFormat(this.name)}getInputByName(e){let t=this.inputs.length;for(;t--;)if(this.inputs[t].name===e)return this.inputs[t]}generate(e,t,n,i,s){return t==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),t)}parse(e=""){this.src=e,this.inputs=[];let t=ML.exec(e);if(t){let n=t[2],i;for(;i=AL.exec(n);)this.inputs.push({type:i[1],name:i[2]});this.name=t[1]}else this.name="";this.type=this.name}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.src=this.src),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.src&&(this.src=e.src,this.parse(this.src)),this}};var Ch=class extends je{constructor(e,t){super();this.inputs=[];this.nodeType="FunctionCall";this.value=e,this.inputs=t!=null?t:[]}getFunction(){return this.value}getType(e){return this.value.getType(e)}generate(e,t,n,i,s){i=this.getType(e);let o=this.value,a=o.build(e,t)+"( ",l=[];if(o.inputs){for(let c=0;ct.clone()),this}toJSON(e){var n;let t=this.getJSONNode(e);if(!t){let i=this.value;if(t=this.createJSONNode(e),t.value=this.value.toJSON(e).uuid,(n=i.inputs)==null?void 0:n.length){t.inputs={};for(let s=0;sn&&t>i?this.a.getType(e):n>i?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case St.LENGTH:case St.DISTANCE:case St.DOT:return"f";case St.CROSS:return"v3"}return this.getInputType(e)}generate(e,t){let n,i,s,o=this.a?e.getTypeLength(this.a.getType(e)):0,a=this.b?e.getTypeLength(this.b.getType(e)):0,l=this.c?e.getTypeLength(this.c.getType(e)):0,c=this.getInputType(e),u=this.getType(e);switch(this.type=u,this.method){case St.NEGATE:return e.format("( -"+this.a.build(e,c)+" )",c,t);case St.INVERT:return e.format("( 1.0 - "+this.a.build(e,c)+" )",c,t);case St.CROSS:n=this.a.build(e,"v3"),i=this.b.build(e,"v3");break;case St.STEP:n=this.a.build(e,o===1?"f":c),i=this.b.build(e,c);break;case St.MIN:case St.MAX:case St.MOD:n=this.a.build(e,c),i=this.b.build(e,a===1?"f":c);break;case St.REFRACT:n=this.a.build(e,c),i=this.b.build(e,c),s=this.c.build(e,"f");break;case St.MIX:n=this.a.build(e,c),i=this.b.build(e,c),s=this.c.build(e,l===1?"f":c);break;default:n=this.a.build(e,c),this.b&&(i=this.b.build(e,c)),this.c&&(s=this.c.build(e,c));break}let h=[];h.push(n),i&&h.push(i),s&&h.push(s);let d=this.getNumInputs(e);if(h.length!==d)throw Error(`Arguments not match used in "${this.method}". Require ${d}, currently ${h.length}.`);return e.format(this.method+"( "+h.join(", ")+" )",u,t)}copy(e){return super.copy(e),this.a.copy(e.a),this.b=e.b instanceof ze?e.b.clone():e.b,this.c=e.c instanceof ze?e.c.clone():e.c,this.method=e.method,this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.a=this.a.toJSON(e).uuid,this.b&&(t.b=this.b.toJSON(e).uuid),this.c&&(t.c=this.c.toJSON(e).uuid),t.method=this.method),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.a&&(this.a=t.getNode(e.a)),e.b&&(this.b=t.getNode(e.b)),e.c&&(this.c=t.getNode(e.c)),e.method&&(this.method=e.method),this}},Ye=St;Ye.RAD=st.RAD,Ye.DEG=st.DEG,Ye.EXP=st.EXP,Ye.EXP2=st.EXP2,Ye.LOG=st.LOG,Ye.LOG2=st.LOG2,Ye.SQRT=st.SQRT,Ye.INV_SQRT=st.INV_SQRT,Ye.FLOOR=st.FLOOR,Ye.CEIL=st.CEIL,Ye.NORMALIZE=st.NORMALIZE,Ye.FRACT=st.FRACT,Ye.SATURATE=st.SATURATE,Ye.SIN=st.SIN,Ye.COS=st.COS,Ye.TAN=st.TAN,Ye.ASIN=st.ASIN,Ye.ACOS=st.ACOS,Ye.ARCTAN=st.ARCTAN,Ye.ABS=st.ABS,Ye.SIGN=st.SIGN,Ye.LENGTH=st.LENGTH,Ye.NEGATE=st.NEGATE,Ye.INVERT=st.INVERT,Ye.MIN=st.MIN,Ye.MAX=st.MAX,Ye.MOD=st.MOD,Ye.STEP=st.STEP,Ye.REFLECT=st.REFLECT,Ye.DISTANCE=st.DISTANCE,Ye.DOT=st.DOT,Ye.CROSS=st.CROSS,Ye.POW=st.POW,Ye.MIX=st.MIX,Ye.CLAMP=st.CLAMP,Ye.REFRACT=st.REFRACT,Ye.SMOOTHSTEP=st.SMOOTHSTEP,Ye.FACEFORWARD=st.FACEFORWARD;var Ka=class extends je{constructor(e=new ze,t=new ze,n=new ze){super("v4");this.nodeType="TextureCubeUV";this.value=e,this.uv=t,this.bias=n}bilinearCubeUV(e,t,n,i){var l,c,u,h;let s=new Ch(Ka.Nodes.bilinearCubeUV,[t,n,i]);this.colorSpaceTL=(l=this.colorSpaceTL)!=null?l:new Bt(new yt("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(s.build(e)+".tl"),this.colorSpaceTR=(c=this.colorSpaceTR)!=null?c:new Bt(new yt("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(s.build(e)+".tr"),this.colorSpaceBL=(u=this.colorSpaceBL)!=null?u:new Bt(new yt("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(s.build(e)+".bl"),this.colorSpaceBR=(h=this.colorSpaceBR)!=null?h:new Bt(new yt("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(s.build(e)+".br");let o={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(o),this.colorSpaceTLExp=new yt(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new yt(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new yt(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new yt(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let a=new yt("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return a.keywords.cubeUV_TL=this.colorSpaceTLExp,a.keywords.cubeUV_TR=this.colorSpaceTRExp,a.keywords.cubeUV_BL=this.colorSpaceBLExp,a.keywords.cubeUV_BR=this.colorSpaceBRExp,a.keywords.cubeUV=s,a}generate(e,t){if(e.isShader("fragment")){let n=this.uv,i=this.bias||e.context.roughness,s=new Ch(Ka.Nodes.roughnessToMip,[i]),o=new Ye(s,Ka.Nodes.m0,Ka.Nodes.cubeUV_maxMipLevel,Ye.CLAMP),a=new Ye(o,Ye.FLOOR),l=new Ye(o,Ye.FRACT),c=this.bilinearCubeUV(e,this.value,n,a),u=this.bilinearCubeUV(e,this.value,n,new Yn(a,new Te(1).setReadonly(!0),Yn.ADD)),h=new Ye(c,u,l,Ye.MIX);return e.format(h.build(e),"v4",t)}else return console.warn("TextureCubeUVNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),t)}copy(e){return super.copy(e),this.uv.copy(e.uv),this.bias.copy(e.bias),this.value.copy(e.value),e.colorSpaceTL?this.colorSpaceTL?this.colorSpaceTL.copy(e.colorSpaceTL):this.colorSpaceTL=e.colorSpaceTL.clone():this.colorSpaceTL=void 0,e.colorSpaceTR?this.colorSpaceTR?this.colorSpaceTR.copy(e.colorSpaceTR):this.colorSpaceTR=e.colorSpaceTR.clone():this.colorSpaceTR=void 0,e.colorSpaceBL?this.colorSpaceBL?this.colorSpaceBL.copy(e.colorSpaceBL):this.colorSpaceBL=e.colorSpaceBL.clone():this.colorSpaceBL=void 0,e.colorSpaceBR?this.colorSpaceBR?this.colorSpaceBR.copy(e.colorSpaceBR):this.colorSpaceBR=e.colorSpaceBR.clone():this.colorSpaceBR=void 0,e.colorSpaceTLExp?this.colorSpaceTLExp?this.colorSpaceTLExp.copy(e.colorSpaceTLExp):this.colorSpaceTLExp=e.colorSpaceTLExp.clone():this.colorSpaceTLExp=void 0,e.colorSpaceTRExp?this.colorSpaceTRExp?this.colorSpaceTRExp.copy(e.colorSpaceTRExp):this.colorSpaceTRExp=e.colorSpaceTRExp.clone():this.colorSpaceTRExp=void 0,e.colorSpaceBLExp?this.colorSpaceBLExp?this.colorSpaceBLExp.copy(e.colorSpaceBLExp):this.colorSpaceBLExp=e.colorSpaceBLExp.clone():this.colorSpaceBLExp=void 0,e.colorSpaceBRExp?this.colorSpaceBRExp?this.colorSpaceBRExp.copy(e.colorSpaceBRExp):this.colorSpaceBRExp=e.colorSpaceBRExp.clone():this.colorSpaceBRExp=void 0,this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.value=this.value.toJSON(e).uuid,t.uv=this.uv.toJSON(e).uuid,t.bias=this.bias.toJSON(e).uuid,this.colorSpaceTL&&this.colorSpaceTL.toJSON(e).uuid,this.colorSpaceTR&&this.colorSpaceTR.toJSON(e).uuid,this.colorSpaceBL&&this.colorSpaceBL.toJSON(e).uuid,this.colorSpaceBR&&this.colorSpaceBR.toJSON(e).uuid,this.colorSpaceTLExp&&this.colorSpaceTLExp.toJSON(e).uuid,this.colorSpaceTRExp&&this.colorSpaceTRExp.toJSON(e).uuid,this.colorSpaceBLExp&&this.colorSpaceBLExp.toJSON(e).uuid,this.colorSpaceBRExp&&this.colorSpaceBRExp.toJSON(e).uuid),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.value&&(this.value=t.getNode(e.value)),e.uv&&(this.uv=t.getNode(e.uv)),e.bias&&(this.bias=t.getNode(e.bias)),e.colorSpaceTL&&(this.colorSpaceTL=t.getNode(e.colorSpaceTL)),e.colorSpaceTR&&(this.colorSpaceTR=t.getNode(e.colorSpaceTR)),e.colorSpaceBL&&(this.colorSpaceBL=t.getNode(e.colorSpaceBL)),e.colorSpaceBR&&(this.colorSpaceBR=t.getNode(e.colorSpaceBR)),e.colorSpaceTLExp&&(this.colorSpaceTLExp=t.getNode(e.colorSpaceTLExp)),e.colorSpaceTRExp&&(this.colorSpaceTRExp=t.getNode(e.colorSpaceTRExp)),e.colorSpaceBLExp&&(this.colorSpaceBLExp=t.getNode(e.colorSpaceBLExp)),e.colorSpaceBRExp&&(this.colorSpaceBRExp=t.getNode(e.colorSpaceBRExp)),this}},_o=Ka;_o.Nodes=function(){let e=new Ao(`struct TextureCubeUVData { + vec4 tl; + vec4 tr; + vec4 br; + vec4 bl; + vec2 f; + }`),t=new rt("float cubeUV_maxMipLevel 8.0",!0),n=new rt("float cubeUV_minMipLevel 4.0",!0),i=new rt("float cubeUV_maxTileSize 256.0",!0),s=new rt("float cubeUV_minTileSize 16.0",!0),o=new Le(`float getFace(vec3 direction) { + vec3 absDirection = abs(direction); + float face = -1.0; + if (absDirection.x > absDirection.z) { + if (absDirection.x > absDirection.y) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if (absDirection.z > absDirection.y) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + }`);o.useKeywords=!1;let a=new Le(`vec2 getUV(vec3 direction, float face) { + vec2 uv; + if (face == 0.0) { + uv = vec2(direction.z, direction.y) / abs(direction.x); // pos x + } else if (face == 1.0) { + uv = vec2(-direction.x, -direction.z) / abs(direction.y); // pos y + } else if (face == 2.0) { + uv = vec2(-direction.x, direction.y) / abs(direction.z); // pos z + } else if (face == 3.0) { + uv = vec2(-direction.z, direction.y) / abs(direction.x); // neg x + } else if (face == 4.0) { + uv = vec2(-direction.x, direction.z) / abs(direction.y); // neg y + } else { + uv = vec2(direction.x, direction.y) / abs(direction.z); // neg z + } + return 0.5 * (uv + 1.0); + }`);a.useKeywords=!1;let l=new Le(`TextureCubeUVData bilinearCubeUV(sampler2D envMap, vec3 direction, float mipInt) { + float face = getFace(direction); + float filterInt = max(cubeUV_minMipLevel - mipInt, 0.0); + mipInt = max(mipInt, cubeUV_minMipLevel); + float faceSize = exp2(mipInt); + float texelSize = 1.0 / (3.0 * cubeUV_maxTileSize); + vec2 uv = getUV(direction, face) * (faceSize - 1.0); + vec2 f = fract(uv); + uv += 0.5 - f; + if (face > 2.0) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + if(mipInt < cubeUV_maxMipLevel){ + uv.y += 2.0 * cubeUV_maxTileSize; + } + uv.y += filterInt * 2.0 * cubeUV_minTileSize; + uv.x += 3.0 * max(0.0, cubeUV_maxTileSize - 2.0 * faceSize); + uv *= texelSize; + vec4 tl = texture2D(envMap, uv); + uv.x += texelSize; + vec4 tr = texture2D(envMap, uv); + uv.y += texelSize; + vec4 br = texture2D(envMap, uv); + uv.x -= texelSize; + vec4 bl = texture2D(envMap, uv); + return TextureCubeUVData( tl, tr, br, bl, f ); + }`,[e,o,a,t,n,i,s]);l.useKeywords=!1;let c=new rt("float r0 1.0",!0),u=new rt("float v0 0.339",!0),h=new rt("float m0 -2.0",!0),d=new rt("float r1 0.8",!0),f=new rt("float v1 0.276",!0),p=new rt("float m1 -1.0",!0),m=new rt("float r4 0.4",!0),v=new rt("float v4 0.046",!0),g=new rt("float m4 2.0",!0),y=new rt("float r5 0.305",!0),x=new rt("float v5 0.016",!0),b=new rt("float m5 3.0",!0),w=new rt("float r6 0.21",!0),_=new rt("float v6 0.0038",!0),S=new rt("float m6 4.0",!0),A=[c,u,h,d,f,p,m,v,g,y,x,b,w,_,S],T=new Le(`float roughnessToMip(float roughness) { + float mip = 0.0; + if (roughness >= r1) { + mip = (r0 - roughness) * (m1 - m0) / (r0 - r1) + m0; + } else if (roughness >= r4) { + mip = (r1 - roughness) * (m4 - m1) / (r1 - r4) + m1; + } else if (roughness >= r5) { + mip = (r4 - roughness) * (m5 - m4) / (r4 - r5) + m4; + } else if (roughness >= r6) { + mip = (r5 - roughness) * (m6 - m5) / (r5 - r6) + m5; + } else { + mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25 + } + return mip; + }`,A);return{bilinearCubeUV:l,roughnessToMip:T,m0:h,cubeUV_maxMipLevel:t}}();var To=class extends je{constructor(e){super("v3");this.nodeType="Normal";this.scope=e!=null?e:To.VIEW}getShared(){return this.scope===To.WORLD}build(e,t,n,i){let s=e.context[this.scope+"Normal"];return s?s.build(e,t,n,i):super.build(e,t,n)}generate(e,t,n,i,s){let o;switch(this.scope){case To.VIEW:e.isShader("vertex")?o="transformedNormal":o="geometryNormal";break;case To.LOCAL:e.isShader("vertex")?o="objectNormal":(e.requires.normal=!0,o="vObjectNormal");break;case To.WORLD:e.isShader("vertex")?o="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,o="vWNormal");break}return e.format(o,this.getType(e),t)}copy(e){return super.copy(e),this.scope=e.scope,this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.scope=this.scope),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.scope&&(this.scope=e.scope),this}},mn=To;mn.LOCAL="local",mn.WORLD="world",mn.VIEW="view",mn.NORMAL="normal";pn.addKeyword("viewNormal",function(){return new mn(mn.VIEW)});pn.addKeyword("localNormal",function(){return new mn(mn.NORMAL)});pn.addKeyword("worldNormal",function(){return new mn(mn.WORLD)});var dr=class extends je{constructor(e){super("v3");this.nodeType="Position";this.scope=e!=null?e:dr.LOCAL}getType(){switch(this.scope){case dr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case dr.LOCAL:case dr.WORLD:return!1}return!0}generate(e,t,n,i,s){let o;switch(this.scope){case dr.LOCAL:e.isShader("vertex")?o="transformed":(e.requires.position=!0,o="vPosition");break;case dr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,o="vWPosition";break;case dr.VIEW:o=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case dr.PROJECTION:o=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(o,this.getType(),t)}copy(e){return super.copy(e),this.scope=e.scope,this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.scope=this.scope),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.scope&&(this.scope=e.scope),this}},_n=dr;_n.LOCAL="local",_n.WORLD="world",_n.VIEW="view",_n.PROJECTION="projection";pn.addKeyword("position",function(){return new _n});pn.addKeyword("worldPosition",function(){return new _n(_n.WORLD)});pn.addKeyword("viewPosition",function(){return new _n(_n.VIEW)});var Zi=class extends je{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e!=null?e:Zi.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case Zi.SPHERE:return"v2"}return this.type}generate(e,t){let n=this.getUnique(e);if(e.isShader("fragment")){let i;switch(this.scope){case Zi.VECTOR:{let s=new mn(mn.VIEW),o=e.context.roughness,a=s.build(e,"v3"),l=new _n(_n.VIEW).build(e,"v3"),c=o?o.build(e,"f"):void 0,u=`reflect( -normalize( ${l} ), ${a} )`;c&&(u=`normalize( mix( ${u}, ${a}, ${c} * ${c} ) )`);let h=`inverseTransformDirection( ${u}, viewMatrix )`;n?(e.addNodeCode(`vec3 reflectVec = ${h};`),i="reflectVec"):i=h;break}case Zi.CUBE:{let s=new Zi(Zi.VECTOR).build(e,"v3"),o="vec3( -"+s+".x, "+s+".yz )";n?(e.addNodeCode(`vec3 reflectCubeVec = ${o};`),i="reflectCubeVec"):i=o;break}case Zi.SPHERE:{let s=new Zi(Zi.VECTOR).build(e,"v3"),o="normalize( ( viewMatrix * vec4( "+s+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";n?(e.addNodeCode(`vec2 reflectSphereVec = ${o};`),i="reflectSphereVec"):i=o;break}}return e.format(i,this.getType(),t)}else return console.warn("ReflectNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.type,t)}copy(e){return super.copy(e),this.scope=e.scope,this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.scope=this.scope),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.scope&&(this.scope=e.scope),this}},Qi=Zi;Qi.CUBE="cube",Qi.SPHERE="sphere",Qi.VECTOR="vector";var vc=class extends je{constructor(e=new kn,t,n){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new _o(this.value,t!=null?t:new Qi(Qi.VECTOR),n),this.irradianceNode=new _o(this.value,new mn(mn.WORLD),new Te(1).setReadonly(!0))}generate(e,t){return e.isShader("fragment")?(e.require("irradiance"),e.context.bias&&e.context.bias.setTexture(this.value),(e.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(e,t)):(console.warn("TextureCubeNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),t))}copy(e){return super.copy(e),this.value.copy(e.value),this.radianceNode.copy(e.radianceNode),this.irradianceNode.copy(e.irradianceNode),this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.value=this.value.toJSON(e).uuid,this.radianceNode&&(t.radianceNode=this.radianceNode.toJSON(e).uuid),this.irradianceNode&&(t.irradianceNode=this.irradianceNode.toJSON(e).uuid)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.value&&(this.value=t.getNode(e.value)),e.radianceNode&&(this.radianceNode=t.getNode(e.radianceNode)),e.irradianceNode&&(this.irradianceNode=t.getNode(e.irradianceNode)),this}};var xc=class extends Ct{constructor(e=new as,t,n){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=t!=null?t:new Qi,this.bias=n}getTexture(e,t){return super.generate(e,t,this.value.uuid,"tc")}generate(e,t){var c,u;if(t==="samplerCube")return this.getTexture(e,t);let n=this.getTexture(e,t),i=(c=this.uv)==null?void 0:c.build(e,"v3"),s=this.bias?this.bias.build(e,"f"):void 0;s===void 0&&e.context.bias&&(s=e.context.bias.setTexture(this).build(e,"f"));let o;s?o="texCubeBias( "+n+", "+i+", "+s+" )":o="texCube( "+n+", "+i+" )";let a={include:e.isShader("vertex"),ignoreCache:!0},l=this.getType(e);return e.addContext(a),this.colorSpace=(u=this.colorSpace)!=null?u:new Bt(new yt("",l)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(o),o=this.colorSpace.build(e,l),e.removeContext(),e.format(o,l,t)}copy(e){return super.copy(e),this.value.copy(e.value),e.uv?this.uv?this.uv.copy(e.uv):this.uv=e.uv.clone():this.uv=void 0,e.bias?this.bias?this.bias.copy(e.bias):this.bias=e.bias.clone():this.bias=void 0,this}toJSON(e){var n;let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),this.value&&(t.value=this.value.uuid),t.uv=(n=this.uv)==null?void 0:n.toJSON(e).uuid,this.bias&&(t.bias=this.bias.toJSON(e).uuid)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.value&&(this.value=t.getTexture(e.value)),e.uv&&(this.uv=t.getNode(e.uv)),e.bias&&(this.bias=t.getNode(e.bias)),this}};var bx=["x","y","z","w"],_L=["float","vec2","vec3","vec4"],TL={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},EL={t:"sampler2D",tc:"samplerCube",b:"bool",i:"int",f:"float",c:"vec3",v2:"vec2",v3:"vec3",v4:"vec4",m3:"mat3",m4:"mat4","f[]":"float[]","v4[]":"vec4[]"},Zp=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.getIncludesCode=function(){function e(t,n){return t.deps.length-n.deps.length}return function(n,i){let s=this.getIncludes(n,i);if(!s)return"";let o="";s=s.sort(e);for(let a=0;a","#include "].join(` +`),this.parsCode={vertex:["float neighbor_offset = 0.0001;",""].join(` +`),fragment:["float accumAlpha = 0.0;",`void accumulateAlpha(float alpha) { + accumAlpha += (1.0 - accumAlpha) * alpha; + }`,""].join(` +`)},this.code={vertex:"",fragment:""},this.nodeCode={vertex:"",fragment:""},this.resultCode={vertex:"",fragment:""},this.finalCode={vertex:"",fragment:""},this.inputs={uniforms:{list:[],vertex:[],fragment:[]},arrayUniforms:{list:[],vertex:[],fragment:[]},vars:{varying:[],vertex:[],fragment:[]}},this.defines={},this.uniforms={},this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.updaters=[],this.nodes=[],this.analyzing=!1}build(e,t){this.buildShader("vertex",e),this.buildShader("fragment",t);for(let n=0;n0?n+1:"";this.addVaryCode("varying vec2 vUv"+i+";"),n>0&&this.addVertexParsCode("attribute vec2 uv"+i+";"),this.addVertexFinalCode("vUv"+i+" = uv"+i+";")}return this.requires.color[0]&&(this.addVaryCode("varying vec4 vColor;"),this.addVertexParsCode("attribute vec4 color;"),this.addVertexFinalCode("vColor = color;")),this.requires.color[1]&&(this.addVaryCode("varying vec4 vColor2;"),this.addVertexParsCode("attribute vec4 color2;"),this.addVertexFinalCode("vColor2 = color2;")),this.requires.position&&(this.addVaryCode("varying vec3 vPosition;"),this.addVertexFinalCode("vPosition = transformed;")),this.requires.worldPosition&&(this.addVaryCode("varying vec3 vWPosition;"),this.addVertexFinalCode("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;")),this.requires.normal&&(this.addVaryCode("varying vec3 vObjectNormal;"),this.addVertexFinalCode("vObjectNormal = normal;")),this.requires.modelMatrix&&this.addFragmentParsCode("uniform mat4 modelMatrix;"),this.requires.viewMatrix&&this.addFragmentParsCode("uniform mat4 viewMatrix;"),this.requires.projectionMatrix&&this.addFragmentParsCode("uniform mat4 projectionMatrix;"),this.requires.worldNormal&&(this.addVaryCode("varying vec3 vWNormal;"),this.addVertexFinalCode("vWNormal = inverseTransformDirection( transformedNormal, viewMatrix ).xyz;")),this.requires.vWorldViewDir&&(this.addVaryCode("varying vec3 vWorldViewDir;"),this.addVertexFinalCode("vWorldViewDir = isPerspectiveMatrix( projectionMatrix ) ? ( (modelMatrix * vec4(position, 1.0)).xyz - cameraPosition ) : vec3( -viewMatrix[0][2], -viewMatrix[1][2], -viewMatrix[2][2] );")),this.requires.vWorldNormal&&(this.addVaryCode("varying vec3 vWorldNormal;"),this.addVertexFinalCode("vWorldNormal = normalize( mat3( modelMatrix[0].xyz, modelMatrix[1].xyz, modelMatrix[2].xyz ) * normal );")),this}buildShader(e,t){this.resultCode[e]=t.build(this.setShader(e),"v4")}setMaterial(e,t){return this.material=e,this.renderer=t,this.requires.lights=e.lights,this.requires.fog=e.fog,this.mergeDefines(e.defines),this}addFlow(e,t,n){return this.addSlot(e).addCache(t).addContext(n)}removeFlow(){return this.removeSlot().removeCache().removeContext()}addCache(e){return this.cache=e!=null?e:"",this.caches.push(this.cache),this}removeCache(){return this.caches.pop(),this.cache=this.caches[this.caches.length-1]||"",this}addContext(e){return this.context=Object.assign({},this.context,e),this.context.extra=this.context.extra||{},this.contexts.push(this.context),this}removeContext(){return this.contexts.pop(),this.context=this.contexts[this.contexts.length-1]||{},this}addSlot(e){return this.slot=e||"",this.slots.push(this.slot),this}removeSlot(){return this.slots.pop(),this.slot=this.slots[this.slots.length-1]||"",this}addFragmentVariable(e,t){this.fragmentVariables[e]===void 0&&(this.addFragmentCode(`${t} ${e};`),this.fragmentVariables[e]="")}addVertexCode(e){this.addCode(e,"vertex")}addFragmentCode(e){this.addCode(e,"fragment")}addCode(e,t){this.code[t!=null?t:this.shader]+=e+` +`}addVertexNodeCode(e){this.addNodeCode(e,"vertex")}addFragmentNodeCode(e){this.addNodeCode(e,"fragment")}addNodeCode(e,t){this.nodeCode[t!=null?t:this.shader]+=e+` +`}clearNodeCode(e){e=e!=null?e:this.shader;let t=this.nodeCode[e];return this.nodeCode[e]="",t}clearVertexNodeCode(){return this.clearNodeCode("vertex")}clearFragmentNodeCode(){return this.clearNodeCode("fragment")}addVertexFinalCode(e){this.addFinalCode(e,"vertex")}addFragmentFinalCode(e){this.addFinalCode(e,"fragment")}addFinalCode(e,t){this.finalCode[t!=null?t:this.shader]+=e+` +`}addVertexParsCode(e){this.addParsCode(e,"vertex")}addFragmentParsCode(e){this.addParsCode(e,"fragment")}addParsCode(e,t){this.parsCode[t!=null?t:this.shader]+=e+` +`}addVaryCode(e){this.addVertexParsCode(e),this.addFragmentParsCode(e)}isCache(e){return this.caches.indexOf(e)!==-1}isSlot(e){return this.slots.indexOf(e)!==-1}define(e,t){this.defines[e]=t===void 0?1:t}require(e){this.requires[e]=!0}isDefined(e){return this.defines[e]!==void 0}getVar(e,t,n,i="varying",s="V",o=""){let a=this.getVars(i),l=a[e];if(!l){let c=a.length;l={name:n||"node"+s+c+(o?"_"+o:""),type:t},a.push(l),a[e]=l}return l}getTempVar(e,t,n,i){return this.getVar(e,t,n,this.shader,"T",i)}getAttribute(e,t){if(!this.attributes[e]){let n=this.getVar(e,t);this.addVertexParsCode("attribute "+t+" "+e+";"),this.addVertexFinalCode(n.name+" = "+e+";"),this.attributes[e]={varying:n,name:e,type:t}}return this.attributes[e]}getCode(e){return[this.prefixCode,this.parsCode[e],this.getVarListCode(this.getVars("varying"),"varying"),this.getVarListCode(this.inputs.uniforms[e],"uniform"),this.getVarListCode(this.inputs.arrayUniforms[e],"uniform"),this.getIncludesCode("consts",e),this.getIncludesCode("structs",e),this.getIncludesCode("functions",e),"void main() {",this.getVarListCode(this.getVars(e)),this.code[e],this.resultCode[e],this.finalCode[e],"}"].join(` +`)}getVarListCode(e,t){t=t!=null?t:"";let n="";for(let i=0,s=e.length;i{for(;e.image===void 0;)await new Promise(n=>requestAnimationFrame(n));t.addLayerAt(1,{type:lt.TEXTURE,texture:e}),this.dispose()})(),t}clampUniformsForPreview(e,t){let n=(i,s,o)=>Math.min(Math.max(i,s),o);if(this.userData.layers){for(let i of this.userData.layers.getLayers())if(i.type==lt.DISPLACE){this.uniformsBackup[`f${i.id}_intensity`]=i.uniforms[`f${i.id}_intensity`].value;let s=n(i.uniforms[`f${i.id}_intensity`].value,e,t);i.uniforms[`f${i.id}_intensity`].value=s}}}restoreClampedUniforms(){if(this.userData.layers)for(let e of this.userData.layers.getLayers())e.type==lt.DISPLACE&&(e.uniforms[`f${e.id}_intensity`].value=this.uniformsBackup[`f${e.id}_intensity`])}customProgramCacheKey(){return this.getHash()}updateFrame(e){for(let t=0;tVs,this}getHash(){let e="{";return e+='"vertex":'+this.vertex.getHash()+",",e+='"fragment":'+this.fragment.getHash(),e+="}",e}copy(e){let t=this.uuid;for(let n in e)this[n]=e[n];return this.uuid=t,e.userData!==void 0&&(this.userData=JSON.parse(JSON.stringify(e.userData))),this}toJSON(e){let t=this.userData.layers;this.userData.layers=void 0;let n=super.toJSON(e);return n.type="ShaderMaterial",n.userData={type:this.userData.type,category:this.userData.category,nodeType:this.type,layers:t.toJSON(e)},n.vertex=this.vertex.toJSON(e).uuid,n.fragment=this.fragment.toJSON(e).uuid,delete n.vertexShader,delete n.fragmentShader,delete n.color,delete n.shininess,delete n.specular,delete n.roughness,delete n.metalness,delete n.uniforms,e&&!e.materials[this.uuid]&&(e.materials[this.uuid]=n),this.userData.layers=t,n}fromJSON(e,t){var n;this.defines=(n=e.defines)!=null?n:{},this.depthFunc=e.depthFunc,this.depthWrite=e.depthWrite,this.side=e.side!==void 0?e.side:Oi,this.transparent=e.transparent,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.wireframe=e.wireframe,this.userData.layers.fromJSON(e.userData.layers,t,this)}};Object.defineProperties(Ni.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(r){r===!0&&this.version++,this.needsCompile=r},get:function(){return this.needsCompile}}});var bc=class extends ze{constructor(){super("basic");this.nodeType="Basic";this.color=new ct(5855577)}generate(e){let t;if(e.isShader("vertex")){let n=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(ki.merge([be.fog])),e.addParsCode(["varying vec3 vViewPosition;","#ifndef FLAT_SHADED"," varying vec3 vNormal;","#endif","#include "].join(` +`));let i=["#include ",` + #if !defined( USE_LAYER_DISPLACE ) + #include + #endif + + vec3 displaced_position = position; + vec3 displaced_normal = normal; + + #if defined( USE_LAYER_DISPLACE ) + vec3 transformed; + vec3 transformedNormal; + #endif + `,"#ifndef FLAT_SHADED"," vNormal = normalize( transformedNormal );","#endif",` + #if !defined( USE_LAYER_DISPLACE ) + #include + #endif /* !USE_LAYER_DISPLACE */ + `];n&&i.push(n.code,n.result?"displaced_position = "+n.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push("#include ","#include ","#include "," vViewPosition = - mvPosition.xyz;","#include "),t=i.join(` +`)}else{this.color===void 0&&(this.color=new ct(5855577)),this.color.analyze(e,{slot:"color"}),this.alpha&&this.alpha.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"});let n=this.color.flow(e,"c",{slot:"color"}),i=this.alpha?this.alpha.flow(e,"f"):void 0,s=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0;e.requires.transparent=i!==void 0,e.addParsCode(["#include ","#include ","varying vec3 vViewPosition;","#ifndef FLAT_SHADED"," varying vec3 vNormal;","#endif"].join(` +`));let o=["#include ",n.code];i&&o.push(i.code,"#ifdef ALPHATEST"," if ( "+i.result+" <= ALPHATEST ) discard;","#endif"),s?o.push(s.code,`vec3 outgoingLight = ${n.result};`,`vec3 finalColor = spe_blend(outgoingLight, ${s.result}, 1.0, SPE_BLENDING_NORMAL);`):o.push(`vec3 finalColor = ${n.result};`),i?o.push(`gl_FragColor = vec4( finalColor, accumAlpha * ${i.result} );`):o.push("gl_FragColor = vec4("+n.result+", 1.0 );"),o.push("#include ","#include "),t=o.join(` +`)}return t}copy(e){return super.copy(e),e.color&&(this.color=e.color.clone()),e.position&&(this.position=e.position.clone()),e.alpha&&(this.alpha=e.alpha.clone()),e.afterColor&&(this.afterColor=e.afterColor.clone()),e.shadingAlpha&&(this.shadingAlpha=e.shadingAlpha.clone()),e.shadingBlend&&(this.shadingBlend=e.shadingBlend.clone()),this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),this.color&&(t.color=this.color.toJSON(e).uuid),this.position&&(t.position=this.position.toJSON(e).uuid),this.alpha&&(t.alpha=this.alpha.toJSON(e).uuid),this.afterColor&&(t.afterColor=this.afterColor.toJSON(e).uuid),this.shadingAlpha&&(t.shadingAlpha=this.shadingAlpha.toJSON(e).uuid),this.shadingBlend&&(t.shadingBlend=this.shadingBlend.toJSON(e).uuid)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.position&&(this.position=t.getNode(e.position)),e.color&&(this.color=t.getNode(e.color)),e.alpha&&(this.alpha=t.getNode(e.alpha)),e.afterColor&&(this.afterColor=t.getNode(e.afterColor)),e.shadingAlpha&&(this.shadingAlpha=t.getNode(e.shadingAlpha)),e.shadingBlend&&(this.shadingBlend=t.getNode(e.shadingBlend)),this}};var $p=class extends Ni{get color(){return this.fragment.color}set color(e){this.fragment.color=e}get afterColor(){return this.fragment.afterColor}set afterColor(e){this.fragment.afterColor=e}get alpha(){return this.fragment.alpha}set alpha(e){this.fragment.alpha=e}get shadingAlpha(){return this.fragment.shadingAlpha}set shadingAlpha(e){this.fragment.shadingAlpha=e}get shadingBlend(){return this.fragment.shadingBlend}set shadingBlend(e){this.fragment.shadingBlend=e}get position(){return this.fragment.position}set position(e){this.fragment.position=e}constructor(e=new bc,t){super(e,e,t);this.type="BasicNodeMaterial",this.fragment=e}};var oi=class extends $p{constructor(e,t,n){super(t,e);this.userData.type="BasicMaterial",this.userData.category="Basic",this.userData.layers=n!=null?n:this._getLayerStack(e==null?void 0:e.map)}get layersList(){return this.userData.layers}set layersList(e){this.userData.layers=e}equals(e){return this.userData.type===e.userData.type&&this.userData.layers.uuid==e.userData.layers.uuid}copy(e){if(e.userData.layers!==void 0&&e.userData.layers instanceof Kn){let t=e.userData.layers,n=e.fragment;super.copy(e);let i=n.clone();this.fragment=i,this.vertex=i;let s=t.clone(this);this.userData.layers=s}else super.copy(e);return this}static fromJSON(e,t,n){let i=n.getNode(t.vertex),s=new oi(void 0,i);return s.fromJSON(t,n),s}static fromMaterial(e){let t=new oi(e.map?{map:e.map}:{}),n=t.fragment;return n.color.value.copy(e.color),n.alpha.value=e.opacity,t}dispose(){super.dispose()}};var wc=class extends ze{constructor(){super("phong");this.nodeType="Phong";this.color=new ct(5855577),this.specular=new ct(1118481),this.shininess=new Te(30),this.shadingAlpha=new Te(1),this.shadingBlend=new it(0)}build(e){let t;if(e.define("PHONG"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let n=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(ki.merge([be.fog,be.lights])),e.addParsCode(["varying vec3 vViewPosition;","#ifndef FLAT_SHADED"," varying vec3 vNormal;","#endif","#include ","#include ","#include "].join(` +`));let i=["#include ",` + #ifndef USE_LAYER_DISPLACE + #include + #endif + + vec3 displaced_position = position; + vec3 displaced_normal = normal; + + #ifdef USE_LAYER_DISPLACE + vec3 transformed; + vec3 transformedNormal; + #endif + `,"#ifndef FLAT_SHADED"," vNormal = normalize( transformedNormal );","#endif",` + #ifndef USE_LAYER_DISPLACE + #include + #endif + `];n&&i.push(n.code,n.result?"displaced_position = "+n.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push(" #include "," #include "," vViewPosition = - mvPosition.xyz;"," #include "," #include "," #include "),t=i.join(` +`)}else{this.color===void 0&&(this.color=new ct(5855577)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let n=this.color.flow(e,"c",{slot:"color"}),i=this.specular.flow(e,"c"),s=this.shininess.flow(e,"f"),o=this.shadingAlpha.flow(e,"f"),a=this.shadingBlend.flow(e,"i"),l=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=c!==void 0,e.addParsCode(["#include ","#include ","#include ","#include ","#include ","#include "].join(` +`));let u=["#include ",` + // NOTE: gl_FrontFacing alternative using face normal estimation. + vec3 viewdx = dFdx(vViewPosition); + vec3 viewdy = dFdy(vViewPosition); + vec3 faceNormal = normalize(cross(viewdx,viewdy)); + if (dot(normal, faceNormal) < 0.0) { + normal *= -1.0; + } + `," BlinnPhongMaterial material;"];u.push(n.code," vec3 diffuseColor = "+n.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",i.code," vec3 specular = "+i.result+";",s.code," float shininess = max( 0.0001, "+s.result+" );"," float specularStrength = 1.0;"),c&&u.push(c.code,"#ifdef ALPHATEST","if ( "+c.result+" <= ALPHATEST ) discard;","#endif"),u.push("material.diffuseColor = diffuseColor;"),u.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include ","#include "),u.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;"),u.push(` + if (outgoingLight != diffuseColor) { + float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 ); + accumAlpha += ( 1.0 - accumAlpha ) * ${o.result} * lightAccu; + outgoingLight = spe_blend( diffuseColor, outgoingLight, ${o.result}, ${a.result} ); + } + `),l&&u.push(l.code,`outgoingLight = spe_blend(outgoingLight, ${l.result}, 1.0, SPE_BLENDING_NORMAL);`),c?u.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${c.result} );`):u.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u.push("#include ","#include ","#include "),t=u.join(` +`)}return t}copy(e){return super.copy(e),e.color&&(this.color=e.color.clone()),this.specular=e.specular.clone(),this.shininess=e.shininess.clone(),e.position&&(this.position=e.position.clone()),e.afterColor&&(this.afterColor=e.afterColor.clone()),e.alpha&&(this.alpha=e.alpha.clone()),e.shadingAlpha&&(this.shadingAlpha=e.shadingAlpha.clone()),e.shadingBlend&&(this.shadingBlend=e.shadingBlend.clone()),this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),this.position&&(t.position=this.position.toJSON(e).uuid),this.color&&(t.color=this.color.toJSON(e).uuid),t.specular=this.specular.toJSON(e).uuid,t.shininess=this.shininess.toJSON(e).uuid,t.shadingAlpha=this.shadingAlpha.toJSON(e).uuid,t.shadingBlend=this.shadingBlend.toJSON(e).uuid,this.afterColor&&(t.afterColor=this.afterColor.toJSON(e).uuid),this.alpha&&(t.alpha=this.alpha.toJSON(e).uuid)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.position&&(this.position=t.getNode(e.position)),e.color&&(this.color=t.getNode(e.color)),e.specular&&(this.specular=t.getNode(e.specular)),e.shininess&&(this.shininess=t.getNode(e.shininess)),e.alpha&&(this.alpha=t.getNode(e.alpha)),e.shadingAlpha&&(this.shadingAlpha=t.getNode(e.shadingAlpha)),e.shadingBlend&&(this.shadingBlend=t.getNode(e.shadingBlend)),e.afterColor&&(this.afterColor=t.getNode(e.afterColor)),this}};var em=class extends Ni{get color(){return this.fragment.color}set color(e){this.fragment.color=e}get afterColor(){return this.fragment.afterColor}set afterColor(e){this.fragment.afterColor=e}get alpha(){return this.fragment.alpha}set alpha(e){this.fragment.alpha=e}get shadingAlpha(){return this.fragment.shadingAlpha}set shadingAlpha(e){this.fragment.shadingAlpha=e}get shadingBlend(){return this.fragment.shadingBlend}set shadingBlend(e){this.fragment.shadingBlend=e}get position(){return this.fragment.position}set position(e){this.fragment.position=e}get specular(){return this.fragment.specular}set specular(e){this.fragment.specular=e}get shininess(){return this.fragment.shininess}set shininess(e){this.fragment.shininess=e}constructor(e=new wc,t){super(e,e,t);this.type="PhongNodeMaterial",this.fragment=e}};var Ci=class extends em{constructor(e,t,n){super(t,e);this.userData.type="PhongMaterial",this.userData.category="Phong",this.userData.layers=n!=null?n:this._getLayerStack(e==null?void 0:e.map)}get layersList(){return this.userData.layers}set layersList(e){this.userData.layers=e}equals(e){return this.userData.type===e.userData.type&&this.userData.layers.uuid==e.userData.layers.uuid}copy(e){if(e.userData.layers!==void 0&&e.userData.layers instanceof Kn){let t=e.userData.layers,n=e.fragment;super.copy(e);let i=n.clone();this.fragment=i,this.vertex=i;let s=t.clone(this);this.userData.layers=s,i.shadingAlpha.value=n.shadingAlpha.value,i.shadingBlend.value=n.shadingBlend.value}else super.copy(e);return this}static fromJSON(e,t,n){let i=n.getNode(t.vertex),s=new Ci(void 0,i);return s.fromJSON(t,n),s}static fromMaterial(e){let t=new Ci(e.map?{map:e.map}:{}),n=t.fragment;return n.color.value.copy(e.color),n.alpha.value=e.opacity,t}dispose(){super.dispose()}};var Sc=class extends ze{constructor(){super("lambert");this.nodeType="Lambert";this.color=new ct(5855577),this.emissive=new ct(0),this.emissiveIntensity=new Te(1),this.shadingAlpha=new Te(1),this.shadingBlend=new it(0)}build(e){let t;if(e.define("LAMBERT"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let n=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(ki.merge([be.fog,be.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#ifndef FLAT_SHADED"," varying vec3 vNormal;","#endif","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include ","#include ","#include ","#include ","#include ","#include "].join(` +`));let i=["#include ",` + #ifndef USE_LAYER_DISPLACE + #include + #endif + + vec3 displaced_position = position; + vec3 displaced_normal = normal; + + #ifdef USE_LAYER_DISPLACE + vec3 transformed; + vec3 transformedNormal; + #endif + `,"#ifndef FLAT_SHADED"," vNormal = normalize( transformedNormal );","#endif",` + #ifndef USE_LAYER_DISPLACE + #include + #endif + `];n&&i.push(n.code,n.result?"displaced_position = "+n.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push(" #include "," #include "," vViewPosition = - mvPosition.xyz;"," #include ",` + vec3 diffuse = vec3( 1.0 ); + GeometricContext geometry; + geometry.position = mvPosition.xyz; + geometry.normal = normalize( transformedNormal ); + geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz ); + GeometricContext backGeometry; + backGeometry.position = geometry.position; + backGeometry.normal = -geometry.normal; + backGeometry.viewDir = geometry.viewDir; + vLightFront = vec3( 0.0 ); + vIndirectFront = vec3( 0.0 ); + #ifdef DOUBLE_SIDED + vLightBack = vec3( 0.0 ); + vIndirectBack = vec3( 0.0 ); + #endif + IncidentLight directLight; + float dotNL; + vec3 directLightColor_Diffuse; + #if NUM_POINT_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + getPointDirectLightIrradiance( pointLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = PI * directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( -dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + getSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = PI * directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( -dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end + #endif + #if NUM_DIR_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + getDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = PI * directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( -dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end + #endif + #if NUM_HEMI_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + vIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry ); + #ifdef DOUBLE_SIDED + vIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry ); + #endif + } + #pragma unroll_loop_end + #endif + `," #include "," #include "),t=i.join(` +`)}else{this.color===void 0&&(this.color=new ct(5855577)),this.color.analyze(e,{slot:"color"}),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let n=this.color.flow(e,"c",{slot:"color"}),i=this.emissive.flow(e,"c",{slot:"emissive"}),s=this.emissiveIntensity.flow(e,"f",{slot:"emissive"}),o=this.shadingAlpha.flow(e,"f"),a=this.shadingBlend.flow(e,"i"),l=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=c!==void 0,e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#ifndef FLAT_SHADED"," varying vec3 vNormal;","#endif","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include ","#include ","#include ","#include ","#include ","#include ","#include "].join(` +`));let u=["#include ",` + // NOTE: gl_FrontFacing alternative using face normal estimation. + vec3 viewdx = dFdx(vViewPosition); + vec3 viewdy = dFdy(vViewPosition); + vec3 faceNormal = normalize(cross(viewdx, viewdy)); + bool isFrontFacing = (dot(normal, faceNormal) >= 0.0); + `,"#include "];u.push(n.code,"vec3 diffuseColor = "+n.result+";","ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"),c&&u.push(c.code,"#ifdef ALPHATEST","if ( "+c.result+" <= ALPHATEST ) discard;","#endif"),u.push("#ifdef DOUBLE_SIDED"," reflectedLight.indirectDiffuse += (isFrontFacing) ? vIndirectFront : vIndirectBack;","#else"," reflectedLight.indirectDiffuse += vIndirectFront;","#endif","#include ","reflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );","#ifdef DOUBLE_SIDED"," reflectedLight.directDiffuse = (isFrontFacing) ? vLightFront : vLightBack;","#else"," reflectedLight.directDiffuse = vLightFront;","#endif","reflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();"),i&&u.push(i.code,"reflectedLight.directDiffuse += "+i.result+" * "+s.result+";"),u.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;"),u.push(` + if (outgoingLight != diffuseColor) { + float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 ); + accumAlpha += ( 1.0 - accumAlpha ) * ${o.result} * lightAccu; + outgoingLight = spe_blend( diffuseColor, outgoingLight, ${o.result}, ${a.result} ); + } + `),l&&u.push(l.code,`outgoingLight = spe_blend(outgoingLight, ${l.result}, 1.0, SPE_BLENDING_NORMAL);`),c?u.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${c.result} );`):u.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u.push("#include ","#include ","#include "),t=u.join(` +`)}return t}copy(e){return super.copy(e),this.emissiveIntensity=e.emissiveIntensity.clone(),e.color&&(this.color=e.color.clone()),e.position&&(this.position=e.position.clone()),e.afterColor&&(this.afterColor=e.afterColor.clone()),e.alpha&&(this.alpha=e.alpha.clone()),e.shadingAlpha&&(this.shadingAlpha=e.shadingAlpha.clone()),e.shadingBlend&&(this.shadingBlend=e.shadingBlend.clone()),e.emissive&&(this.emissive=e.emissive.clone()),this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),this.position&&(t.position=this.position.toJSON(e).uuid),this.color&&(t.color=this.color.toJSON(e).uuid),t.emissiveIntensity=this.emissiveIntensity.toJSON(e).uuid,t.shadingAlpha=this.shadingAlpha.toJSON(e).uuid,t.shadingBlend=this.shadingBlend.toJSON(e).uuid,this.afterColor&&(t.afterColor=this.afterColor.toJSON(e).uuid),this.alpha&&(t.alpha=this.alpha.toJSON(e).uuid),this.emissive&&(t.emissive=this.emissive.toJSON(e).uuid)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.position&&(this.position=t.getNode(e.position)),e.color&&(this.color=t.getNode(e.color)),e.shadingAlpha&&(this.shadingAlpha=t.getNode(e.shadingAlpha)),e.shadingBlend&&(this.shadingBlend=t.getNode(e.shadingBlend)),e.afterColor&&(this.afterColor=t.getNode(e.afterColor)),e.alpha&&(this.alpha=t.getNode(e.alpha)),e.emissiveIntensity&&(this.emissiveIntensity=t.getNode(e.emissiveIntensity)),this}};var tm=class extends Ni{get color(){return this.fragment.color}set color(e){this.fragment.color=e}get afterColor(){return this.fragment.afterColor}set afterColor(e){this.fragment.afterColor=e}get alpha(){return this.fragment.alpha}set alpha(e){this.fragment.alpha=e}get shadingAlpha(){return this.fragment.shadingAlpha}set shadingAlpha(e){this.fragment.shadingAlpha=e}get shadingBlend(){return this.fragment.shadingBlend}set shadingBlend(e){this.fragment.shadingBlend=e}get position(){return this.fragment.position}set position(e){this.fragment.position=e}get emissive(){return this.fragment.emissive}set emissive(e){this.fragment.emissive=e}get emissiveIntensity(){return this.fragment.emissiveIntensity}set emissiveIntensity(e){this.fragment.emissiveIntensity=e}constructor(e=new Sc,t){super(e,e,t);this.type="LambertNodeMaterial",this.fragment=e}};var Mc=class extends tm{constructor(e,t,n){super(t,e);this.userData.type="LambertMaterial",this.userData.category="Lambert",this.userData.layers=n!=null?n:this._getLayerStack(e==null?void 0:e.map)}get layersList(){return this.userData.layers}set layersList(e){this.userData.layers=e}equals(e){return this.userData.type===e.userData.type&&this.userData.layers.uuid==e.userData.layers.uuid}copy(e){if(e.userData.layers!==void 0&&e.userData.layers instanceof Kn){let t=e.userData.layers,n=e.fragment;super.copy(e);let i=n.clone();this.fragment=i,this.vertex=i;let s=t.clone(this);this.userData.layers=s,i.shadingAlpha.value=n.shadingAlpha.value,i.shadingBlend.value=n.shadingBlend.value}else super.copy(e);return this}static fromJSON(e,t,n){let i=n.getNode(t.vertex),s=new Mc(void 0,i);return s.fromJSON(t,n),s}dispose(){super.dispose()}};var Ac=class extends ze{constructor(){super("toon");this.nodeType="Toon";this.color=new ct(5855577),this.specular=new ct(1118481),this.shininess=new Te(30),this.shadingAlpha=new Te(1),this.shadingBlend=new it(0)}build(e){let t;if(e.define("TOON"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let n=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(ki.merge([be.fog,be.lights])),e.addParsCode(["varying vec3 vViewPosition;","#ifndef FLAT_SHADED"," varying vec3 vNormal;","#endif","#include ","#include ","#include "].join(` +`));let i=["#include ",` + #ifndef USE_LAYER_DISPLACE + #include + #endif + + vec3 displaced_position = position; + vec3 displaced_normal = normal; + + #ifdef USE_LAYER_DISPLACE + vec3 transformed; + vec3 transformedNormal; + #endif + `,"#ifndef FLAT_SHADED"," vNormal = normalize( transformedNormal );","#endif",` + #ifndef USE_LAYER_DISPLACE + #include + #endif + `];n&&i.push(n.code,n.result?"displaced_position = "+n.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push(" #include "," #include "," #include "," vViewPosition = - mvPosition.xyz;"," #include "," #include "," #include "),t=i.join(` +`)}else{this.color===void 0&&(this.color=new ct(5855577)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let n=this.color.flow(e,"c",{slot:"color"}),i=this.specular.flow(e,"c"),s=this.shininess.flow(e,"f"),o=this.shadingAlpha.flow(e,"f"),a=this.shadingBlend.flow(e,"i"),l=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=c!==void 0,e.addParsCode(["#include ","#include ","#include ","#include ","#include ",` + varying vec3 vViewPosition; + #ifndef FLAT_SHADED + varying vec3 vNormal; + #endif + struct ToonMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; + }; + void RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color; + #ifndef PHYSICALLY_CORRECT_LIGHTS + irradiance *= PI; + #endif + reflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength; + } + void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor ); + } + #define RE_Direct RE_Direct_Toon + #define RE_IndirectDiffuse RE_IndirectDiffuse_Toon + #define Material_LightProbeLOD( material ) (0) + `,"#include ","#include ","#include "].join(` +`));let u=["#include ",` + // NOTE: gl_FrontFacing alternative using face normal estimation. + vec3 viewdx = dFdx(vViewPosition); + vec3 viewdy = dFdy(vViewPosition); + vec3 faceNormal = normalize(cross(viewdx,viewdy)); + if (dot(normal, faceNormal) < 0.0) { + normal *= -1.0; + } + `," ToonMaterial material;"];u.push(n.code," vec3 diffuseColor = "+n.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",i.code," vec3 specular = "+i.result+";",s.code," float shininess = max( 0.0001, "+s.result+" );"," float specularStrength = 1.0;"),c&&u.push(c.code,"#ifdef ALPHATEST","if ( "+c.result+" <= ALPHATEST ) discard;","#endif"),u.push("material.diffuseColor = diffuseColor;"),u.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include ","#include "),u.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;"),u.push(` + if (outgoingLight != diffuseColor) { + float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 ); + accumAlpha += ( 1.0 - accumAlpha ) * ${o.result} * lightAccu; + outgoingLight = spe_blend( diffuseColor, outgoingLight, ${o.result}, ${a.result} ); + } + `),l&&u.push(l.code,`outgoingLight = spe_blend(outgoingLight, ${l.result}, 1.0, SPE_BLENDING_NORMAL);`),c?u.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${c.result} );`):u.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u.push("#include ","#include ","#include "),t=u.join(` +`)}return t}copy(e){return super.copy(e),e.color&&(this.color=e.color.clone()),this.specular=e.specular.clone(),this.shininess=e.shininess.clone(),e.position&&(this.position=e.position.clone()),e.afterColor&&(this.afterColor=e.afterColor.clone()),e.alpha&&(this.alpha=e.alpha.clone()),e.shadingAlpha&&(this.shadingAlpha=e.shadingAlpha.clone()),e.shadingBlend&&(this.shadingBlend=e.shadingBlend.clone()),this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),this.position&&(t.position=this.position.toJSON(e).uuid),this.color&&(t.color=this.color.toJSON(e).uuid),t.specular=this.specular.toJSON(e).uuid,t.shininess=this.shininess.toJSON(e).uuid,this.alpha&&(t.alpha=this.alpha.toJSON(e).uuid),this.shadingAlpha&&(t.shadingAlpha=this.shadingAlpha.toJSON(e).uuid),this.shadingBlend&&(t.shadingBlend=this.shadingBlend.toJSON(e).uuid),this.afterColor&&(t.afterColor=this.afterColor.toJSON(e).uuid)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.position&&(this.position=t.getNode(e.position)),e.color&&(this.color=t.getNode(e.color)),e.specular&&(this.specular=t.getNode(e.specular)),e.shininess&&(this.shininess=t.getNode(e.shininess)),e.alpha&&(this.alpha=t.getNode(e.alpha)),e.shadingAlpha&&(this.shadingAlpha=t.getNode(e.shadingAlpha)),e.shadingBlend&&(this.shadingBlend=t.getNode(e.shadingBlend)),e.afterColor&&(this.afterColor=t.getNode(e.afterColor)),this}};var nm=class extends Ni{get color(){return this.fragment.color}set color(e){this.fragment.color=e}get afterColor(){return this.fragment.afterColor}set afterColor(e){this.fragment.afterColor=e}get alpha(){return this.fragment.alpha}set alpha(e){this.fragment.alpha=e}get shadingAlpha(){return this.fragment.shadingAlpha}set shadingAlpha(e){this.fragment.shadingAlpha=e}get shadingBlend(){return this.fragment.shadingBlend}set shadingBlend(e){this.fragment.shadingBlend=e}get position(){return this.fragment.position}set position(e){this.fragment.position=e}get specular(){return this.fragment.specular}set specular(e){this.fragment.specular=e}get shininess(){return this.fragment.shininess}set shininess(e){this.fragment.shininess=e}constructor(e=new Ac,t){super(e,e,t);this.type="ToonNodeMaterial",this.fragment=e}};var _c=class extends nm{constructor(e,t,n){super(t,e);this.userData.type="ToonMaterial",this.userData.category="Toon",this.userData.layers=n!=null?n:this._getLayerStack(e==null?void 0:e.map)}get layersList(){return this.userData.layers}set layersList(e){this.userData.layers=e}equals(e){return this.userData.type===e.userData.type&&this.userData.layers.uuid==e.userData.layers.uuid}copy(e){if(e.userData.layers!==void 0&&e.userData.layers instanceof Kn){let t=e.userData.layers,n=e.fragment;super.copy(e);let i=n.clone();this.fragment=i,this.vertex=i;let s=t.clone(this);this.userData.layers=s,i.shadingAlpha.value=n.shadingAlpha.value,i.shadingBlend.value=n.shadingBlend.value}else super.copy(e);return this}static fromJSON(e,t,n){let i=n.getNode(t.vertex),s=new _c(void 0,i);return s.fromJSON(t,n),s}dispose(){super.dispose()}};var Tc=class extends ze{constructor(){super("standard");this.nodeType="Standard";this.color=new ct(5855577),this.roughness=new Te(.3),this.metalness=new Te(0),this.reflectivity=new Te(.5),this.shadingAlpha=new Te(1),this.shadingBlend=new it(0)}build(e){let t;if(e.define("STANDARD"),e.requires.lights=!0,e.extensions.derivatives=!0,e.extensions.shaderTextureLOD=!0,e.isShader("vertex")){let n=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(ki.merge([be.fog,be.lights])),be.LTC_1&&(e.uniforms.ltc_1={value:void 0},e.uniforms.ltc_2={value:void 0}),e.addParsCode(["varying vec3 vViewPosition;","#ifndef FLAT_SHADED"," varying vec3 vNormal;","#endif","#include ","#include ","#include "].join(` +`));let i=["#include ",` + #if !defined( USE_LAYER_DISPLACE ) + #include + #endif + + vec3 displaced_position = position; + vec3 displaced_normal = normal; + + #if defined( USE_LAYER_DISPLACE ) + vec3 transformed; + vec3 transformedNormal; + #endif + `,"#ifndef FLAT_SHADED"," vNormal = normalize( transformedNormal );","#endif",` + #if !defined( USE_LAYER_DISPLACE ) + #include + #endif /* !USE_LAYER_DISPLACE */ + `];n&&i.push(n.code,n.result?"displaced_position = "+n.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push("#include ","#include ","#include "," vViewPosition = - mvPosition.xyz;","#include ","#include "),t=i.join(` +`)}else{let n={gamma:!0};this.color===void 0&&(this.color=new ct(5855577)),this.color.analyze(e,{slot:"color",context:n}),this.roughness.analyze(e),this.metalness.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e),this.reflectivity&&this.reflectivity.analyze(e);let i=this.color.flow(e,"c",{slot:"color",context:n}),s=this.roughness.flow(e,"f"),o=this.metalness.flow(e,"f"),a=this.shadingAlpha.flow(e,"f"),l=this.shadingBlend.flow(e,"i"),c=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,u=this.alpha?this.alpha.flow(e,"f"):void 0,h=this.reflectivity?this.reflectivity.flow(e,"f"):void 0;e.requires.transparent=u!==void 0,e.addParsCode(["varying vec3 vViewPosition;","#ifndef FLAT_SHADED"," varying vec3 vNormal;","#endif","#include ","#include ","#include ","#include ","#include ","#include "].join(` +`));let d=["#include "," #include ",` + // NOTE: gl_FrontFacing alternative using face normal estimation. + vec3 viewdx = dFdx(vViewPosition); + vec3 viewdy = dFdy(vViewPosition); + vec3 faceNormal = normalize(cross(viewdx,viewdy)); + if (dot(normal, faceNormal) < 0.0) { + normal *= -1.0; + } + `," PhysicalMaterial material;"," material.diffuseColor = vec3( 1.0 );"];d.push(i.code," vec3 diffuseColor = "+i.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",s.code," float roughnessFactor = "+s.result+";",o.code," float metalnessFactor = "+o.result+";"),u&&d.push(u.code,"#ifdef ALPHATEST"," if ( "+u.result+" <= ALPHATEST ) discard;","#endif"),d.push("vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );"),d.push("material.diffuseColor = diffuseColor * ( 1.0 - metalnessFactor );","material.specularRoughness = max( roughnessFactor, 0.0525 );","material.specularRoughness += geometryRoughness;","material.specularRoughness = min( material.specularRoughness, 1.0 );","material.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );"),h?d.push(h.code,"material.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( "+h.result+" ) ), diffuseColor, metalnessFactor );"):d.push("material.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor, metalnessFactor );"),d.push("#include "),d.push("#include "),d.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;"),d.push(` + if (outgoingLight != diffuseColor) { + float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 ); + accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu; + outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} ); + } + `),c&&d.push(c.code,`outgoingLight = spe_blend(outgoingLight, ${c.result}, 1.0, SPE_BLENDING_NORMAL);`),u?d.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${u.result} );`):d.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),d.push("#include ","#include ","#include "),t=d.join(` +`)}return t}copy(e){return super.copy(e),e.color&&(this.color=e.color.clone()),this.roughness=e.roughness.clone(),this.metalness=e.metalness.clone(),e.position&&(this.position=e.position.clone()),e.afterColor&&(this.afterColor=e.afterColor.clone()),e.alpha&&(this.alpha=e.alpha.clone()),e.reflectivity&&(this.reflectivity=e.reflectivity.clone()),e.shadingAlpha&&(this.shadingAlpha=e.shadingAlpha.clone()),e.shadingBlend&&(this.shadingBlend=e.shadingBlend.clone()),this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),this.position&&(t.position=this.position.toJSON(e).uuid),this.color&&(t.color=this.color.toJSON(e).uuid),t.roughness=this.roughness.toJSON(e).uuid,t.metalness=this.metalness.toJSON(e).uuid,this.alpha&&(t.alpha=this.alpha.toJSON(e).uuid),this.reflectivity&&(t.reflectivity=this.reflectivity.toJSON(e).uuid),this.shadingAlpha&&(t.shadingAlpha=this.shadingAlpha.toJSON(e).uuid),this.shadingBlend&&(t.shadingBlend=this.shadingBlend.toJSON(e).uuid),this.afterColor&&(t.afterColor=this.afterColor.toJSON(e).uuid)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.position&&(this.position=t.getNode(e.position)),e.color&&(this.color=t.getNode(e.color)),e.roughness&&(this.roughness=t.getNode(e.roughness)),e.metalness&&(this.metalness=t.getNode(e.metalness)),e.alpha&&(this.alpha=t.getNode(e.alpha)),e.reflectivity&&(this.reflectivity=t.getNode(e.reflectivity)),e.shadingAlpha&&(this.shadingAlpha=t.getNode(e.shadingAlpha)),e.shadingBlend&&(this.shadingBlend=t.getNode(e.shadingBlend)),e.afterColor&&(this.afterColor=t.getNode(e.afterColor)),this}};var im=class extends Ni{get color(){return this.fragment.color}set color(e){this.fragment.color=e}get afterColor(){return this.fragment.afterColor}set afterColor(e){this.fragment.afterColor=e}get alpha(){return this.fragment.alpha}set alpha(e){this.fragment.alpha=e}get shadingAlpha(){return this.fragment.shadingAlpha}set shadingAlpha(e){this.fragment.shadingAlpha=e}get shadingBlend(){return this.fragment.shadingBlend}set shadingBlend(e){this.fragment.shadingBlend=e}get position(){return this.fragment.position}set position(e){this.fragment.position=e}get roughness(){return this.fragment.roughness}set roughness(e){this.fragment.roughness=e}get metalness(){return this.fragment.metalness}set metalness(e){this.fragment.metalness=e}get reflectivity(){return this.fragment.reflectivity}set reflectivity(e){this.fragment.reflectivity=e}constructor(e=new Tc,t){super(e,e,t);this.type="StandardNodeMaterial",this.fragment=e}};var Ec=class extends im{constructor(e,t,n){super(t,e);this.userData.type="PhysicalMaterial",this.userData.category="Physical",this.userData.layers=n!=null?n:this._getLayerStack(e==null?void 0:e.map)}get layersList(){return this.userData.layers}set layersList(e){this.userData.layers=e}equals(e){return this.userData.type===e.userData.type&&this.userData.layers.uuid==e.userData.layers.uuid}copy(e){if(e.userData.layers!==void 0&&e.userData.layers instanceof Kn){let t=e.userData.layers,n=e.fragment;super.copy(e);let i=n.clone();this.fragment=i,this.vertex=i;let s=t.clone(this);this.userData.layers=s,i.shadingAlpha.value=n.shadingAlpha.value,i.shadingBlend.value=n.shadingBlend.value}else super.copy(e);return this}static fromJSON(e,t,n){let i=n.getNode(t.vertex),s=new Ec(void 0,i);return s.fromJSON(t,n),s}dispose(){super.dispose()}};var wx={BasicMaterial:oi,PhongMaterial:Ci,LambertMaterial:Mc,ToonMaterial:_c,PhysicalMaterial:Ec};var Sx=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,e){var o,a,l,c,u;let t=Object.assign({},(o=e==null?void 0:e.parameters)!=null?o:{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},r.parameters),n=t.width/2,i=(a=t.radiusTop)!=null?a:n,s=(l=t.radiusBottom)!=null?l:n;return i===s?(i=n,s=n):i>s?(i=n,s=s*n/i):(i=i*n/s,s=n),{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((c=t.height)!=null?c:t.width),depth:Math.abs((u=t.depth)!=null?u:t.width),radiusTop:i,radiusBottom:s})}}static build(r){let{width:e,depth:t,height:n,radialSegments:i,heightSegments:s,openEnded:o,thetaStart:a,thetaLength:l,radiusTop:c,radiusBottom:u,cornerRadius:h,cornerSegments:d,hollow:f}=r.parameters,p;return h||f?p=new Lh(c,u,n,i,s,o,a,l*Math.PI/180,h,h,d,f):p=new ds(c,u,n,i,s,o,a,l*Math.PI/180),p.scale(1,1,t/e),Object.assign(p,{userData:tt(Ue({},r),{type:"CylinderGeometry"})})}};function ys(r,e,t){t.x=r.x*e.x,t.y=r.y,t.z=r.x*e.y}function Mx(r){return new O(r.y,-r.x)}var Lh=class extends we{constructor(e,t,n,i,s,o,a,l,c,u,h,d,f=!1){super();this.type="RoundedCylinderBufferGeometry",e=e!==void 0?e:1,t=t!==void 0?t:1,n=n||1,i=Math.floor(i)||8,s=Math.floor(s)||1,o=o!==void 0?o:!1,a=a!==void 0?a:0,l=l!==void 0?l:Math.PI*2,o&&(c=0,u=0);let p=[],m=[],v=[],g=[],y=0,x=n/2,b=new M,w=new M;f&&e==0&&(e=c),f&&t==0&&(t=u);let _=new O(e,x),S=new O(t,-x),A=null,T=null,L=null,C=null,U=_.clone().sub(S),P=0,R=0,G=0;d>0&&(P=Math.min(e,t)*(1-d),R=e-P,G=t-P);let B=_.clone();B.x-=P;let j=Math.PI-U.angle(),ne=U.angle(),le=Math.tan(ne/2),W=Math.tan(j/2),z=le+W,D=d?z:W,K=d?z:le;if(c=Math.min(c,(e-R)/D,U.length()/z),u=Math.min(u,(t-G)/K,U.length()/z),c>0){let te=c/le;A=_.clone().sub(new O(te,c)),d&&(L=A.clone(),L.x-=P-z*c),_.sub(U.clone().setLength(te))}if(u>0){let te=u/W;T=S.clone().sub(new O(te,-u)),S.add(U.clone().setLength(te)),d&&(C=T.clone(),C.x-=P-z*u,B.sub(U.clone().setLength(te)))}U=_.clone().sub(S);let q=U.length()<.5,ee=[];for(let te=0;te<=i;te++){let X=[],se=te/i,$=se*l+a,H=new O(Math.sin($),Math.cos($));C&&T?(V(X,se,H,j,u,C,-1,!0),V(X,se,H,ne,u,T,-1,!1)):T?(de(X,H,T.x,0,-1),V(X,se,H,ne,u,T,-1,!1)):o||de(X,H,t,G,-1);let Q=Mx(U).normalize();if(ys(Q,H,b),!q)for(let ce=0;ce<=s;ce++){let ie=ce/s,N=U.clone().multiplyScalar(ie).add(S);ys(N,H,w),m.push(w.x,w.y,w.z),v.push(b.x,b.y,b.z),g.push(se,.5+w.y/n),X.push(y++)}if(L&&A?(V(X,se,H,j,c,A,1,!1),V(X,se,H,ne,c,L,1,!0)):A?(V(X,se,H,j,c,A,1,!1),de(X,H,A.x,0,1)):o||de(X,H,e,R,1),d&&!q){let ce=Mx(U).multiplyScalar(-1).normalize();ys(ce,H,b);for(let ie=0;ie<=s;ie++){let N=ie/s,E=U.clone().multiplyScalar(-N).add(B);ys(E,H,w),m.push(w.x,w.y,w.z),v.push(b.x,b.y,b.z),g.push(se,.5+w.y/n),X.push(y++)}}d&&!o&&X.push(X[0]),ee.push(X)}for(let te=0;tep.push(E,Y,re):(E,Y,re)=>p.push(E,re,Y),ie=new O((e+t+R+G)/4,0);ys(ie,$,Q),m.push(Q.x,Q.y,Q.z),v.push(H.x,0,H.y),g.push(.5,.5);let N=y++;for(let E of X){let Y=m.slice(E*3,E*3+3);m.push(...Y),v.push(H.x,0,H.y);let re=g.slice(E*2,E*2+2);g.push(...re),y++}for(let E=N+1;E0||u>0||l<360?d=new Lh(0,e/2,n,i,s,o,a,l*Math.PI/180,c,u,h,0,!0):d=new oo(e/2,n,i,s,o),d.scale(1,1,t/e),Object.assign(d,{userData:tt(Ue({},r),{type:"ConeGeometry"})})}};var _x=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,e){var n,i,s;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},r.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((i=t.height)!=null?i:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(r){let{width:e,height:t,depth:n,widthSegments:i,heightSegments:s,depthSegments:o,cornerRadius:a,cornerSegments:l}=r.parameters,c;return a==0?c=new jn(e,t,n,i,s,o):c=new Tx(e,t,n,i,s,o,a,l),Object.assign(c,{userData:tt(Ue({},r),{type:"CubeGeometry"})})}},rm=Math.PI/2,Tx=class extends we{constructor(e=1,t=1,n=1,i=1,s=1,o=1,a=0,l=4){super();this.type="BoxBufferGeometry";let c=this;i=Math.floor(i),s=Math.floor(s),o=Math.floor(o),l=Math.floor(l),a=Math.min(a,e/2,t/2,n/2);let u=[],h=[],d=[],f=[],p=0,m=0;v("z","y","x",-1,-1,n,t,e,o,s,0),v("z","y","x",1,-1,n,t,-e,o,s,1),v("x","z","y",1,1,e,n,t,i,o,2),v("x","z","y",1,-1,e,n,-t,i,o,3),v("x","y","z",1,-1,e,t,n,i,s,4),v("x","y","z",-1,-1,e,t,-n,i,s,5),a>0&&(g("z","y","x",-1,-1,1,n,t,e,o,0),g("z","y","x",1,-1,-1,n,t,e,o,1),g("z","y","x",-1,1,-1,n,t,e,o,1),g("z","y","x",1,1,1,n,t,e,o,0),g("x","y","z",-1,-1,-1,e,t,n,i,0),g("x","y","z",1,-1,1,e,t,n,i,1),g("x","y","z",-1,1,1,e,t,n,i,0),g("x","y","z",1,1,-1,e,t,n,i,1),g("y","x","z",-1,-1,1,t,e,n,s,0),g("y","x","z",1,-1,-1,t,e,n,s,1),g("y","x","z",1,1,1,t,e,n,s,1),g("y","x","z",-1,1,-1,t,e,n,s,0),y(1,1,1),y(-1,1,1),y(1,-1,1),y(-1,-1,1),y(1,1,-1),y(-1,1,-1),y(1,-1,-1),y(-1,-1,-1)),this.setIndex(u),this.setAttribute("position",new ge(h,3)),this.setAttribute("normal",new ge(d,3)),this.setAttribute("uv",new ge(f,2));function v(x,b,w,_,S,A,T,L,C,U,P){let R=(A-2*a)/C,G=(T-2*a)/U,B=A/2-a,j=T/2-a,ne=L/2,le=C+1,W=U+1,z=0,D=0,K=new M;for(let q=0;q0?1:-1,d.push(K.x,K.y,K.z),f.push(V/C),f.push(1-q/U),z+=1}}for(let q=0;q0?(C,U,P)=>u.push(C,U,P):(C,U,P)=>u.push(C,P,U);for(let C=0;C<=l;C++){let U=[],P=rm*(1-C/l),R=Math.cos(P),G=Math.sin(P),B=0;for(let j=0;j<=C;j++){let ne=Math.cos(B),le=Math.sin(B);_.x=R*ne,_.y=G,_.z=R*le;let W=S.clone().addScaledVector(_,a);h.push(x*W.x,b*W.y,w*W.z),d.push(x*_.x,b*_.y,w*_.z),f.push(0,0),U.push(p++),B+=rm/C}A.push(U)}let L=A.length-1;for(let C=0;Cb.subVectors(W,z).normalize(),_=(W,z)=>Array(W).fill(void 0).map(z),S=_(e.length/3,(W,z)=>new M().fromArray(e,z*3).setLength(i)),A=[],T=1e6;for(let W=0;WH[0]==q)}A.push(ae)}let L=[];{let W=0,z=0,D,K,q=f==3;for(let ee=0;ee<=o;ee++){D=ee*(ee+1)/2,K=(ee+1)*(ee+2)/2;for(let V=0;V_(f,()=>p.clone()));for(let W=0;Wae.add(te),ee).multiplyScalar(1/f);for(let ae=0;aese[H]);a.push(...$.map(H=>[H.x,H.y,H.z]).flat()),c.push(...$.map(H=>(w(H,C),[b.x,b.y,b.z])).flat())}}let ne=[];for(let W=0;WV%T==W),q=B[W][z],ee=B[D][K];for(let V=0;V{a.push(se[0].x,se[0].y,se[0].z),c.push(se[1].x,se[1].y,se[1].z)})}ne.push(q[0][0],ee[x][0],q[x][0],ee[0][0])}}for(;ne.length;){let W,z,D,K;[W,z]=ne.splice(0,2);let q=[W];for(;W!=z;)q.push(z),D=ne.indexOf(z),K=D%2,z=ne.splice(D-K,2)[1-K];b.subVectors(q[0],q[1]).cross(p.subVectors(q[0],q[2])).normalize();let ee=b.dot(q[0])<0;ee&&b.negate();for(let V=1;V<=q.length-2;V++)[q[V+ +ee],q[V+1-+ee],q[0]].forEach(de=>{a.push(de.x,de.y,de.z),c.push(b.x,b.y,b.z)})}}function h(){let d=new M;for(let S=0;S{L<0&&S.x===1&&(l[A]=S.x-1),T.x===0&&T.z===0&&(l[A]=L/2/Math.PI+.5)};for(let S=0,A=0;S.9&&U<.1&&(A<.2&&(l[S+0]+=1),T<.2&&(l[S+2]+=1),L<.2&&(l[S+4]+=1))}function w(S){return Math.atan2(S.z,-S.x)}function _(S){return Math.atan2(-S.y,Math.sqrt(S.x*S.x+S.z*S.z))}}}static fromJSON(e){return new Eo(e.vertices,e.indices,e.radius,e.corner,e.cornerSides)}};var Ex=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,e){var n,i,s;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,detail:0,corner:0,cornerSides:4},r.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((i=t.height)!=null?i:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(r){let{width:e,height:t,depth:n,detail:i,corner:s,cornerSides:o}=r.parameters,a=i===0&&s!==0?new Ih(e*.5,s,o):new ao(e*.5,i);return a.scale(1,t/e,n/e),Object.assign(a,{userData:tt(Ue({},r),{type:"DodecahedronGeometry"})})}},Ih=class extends Eo{constructor(e=1,t=.2,n=4){let i=(1+Math.sqrt(5))/2,s=1/i,o=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-s,-i,0,-s,i,0,s,-i,0,s,i,-s,-i,0,-s,i,0,s,-i,0,s,i,0,-i,0,-s,i,0,-s,-i,0,s,i,0,s],a=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],l="DodecahedronGeometry";super(o,a,l,e,t,n);this.type=l}static fromJSON(e){return new Ih(e.radius,e.corner,e.cornerSides)}};var Nc=1e-12,Cc=class{constructor(e){this.position=new O;this.startPosition=new O;this.uuid=Ee.generateUUID();this.position=e.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(e){this.position.copy(this.startPosition).add(e)}copy(e){return this.position.copy(e.position),this.startPosition.copy(e.startPosition),this}clone(){return new Cc(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Lc=class extends Cc{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new Lc(this.parent).copy(this)}},vs=class extends Cc{constructor(e,t){super(t);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new Lc(this),new Lc(this))}getOppositeControl(e){let t=this.controls.indexOf(e);return t===0?this.controls[1]:t===1?this.controls[0]:null}applyOffsetToControls(e,t=1){for(let n=0,i=this.controls.length;nr,Ic=new O,om=new O,NL=new O,CL=new O,LL=new O,IL=new O,Nx=new M,Cx=new M;function Lx(r){let e=new O;e.addVectors(r.v0,Ic.subVectors(r.v1,r.v0).multiplyScalar(2/3));let t=new O;return t.addVectors(r.v2,om.subVectors(r.v1,r.v2).multiplyScalar(2/3)),new ii(r.v0,e,t,r.v2)}function Pc(r,e,t=Number.EPSILON){return Math.abs(r-e)Math.PI&&(u*=-1),Pc(c,a)?h=(a+c)*(n/u-.5)*8/3/(o-l):h=(o+l)*(n/u-.5)*8/3/(c-a),i.set(e.x-h*a,e.y+h*o),s.set(t.x+h*c,t.y-h*l),[i,s]}function lm(r,e){return r.position.equals(r.controls[1].position)&&e.position.equals(e.controls[0].position)}function Rx(r,e,t,n,i=.5){let s=Ic.subVectors(e,r).multiplyScalar(i).add(r),o=om.subVectors(t,e).multiplyScalar(i).add(e),a=NL.subVectors(n,t).multiplyScalar(i).add(t),l=s,c=CL.subVectors(o,s).multiplyScalar(i).add(s),u=LL.subVectors(a,o).multiplyScalar(i).add(o),h=a,d=IL.subVectors(u,c).multiplyScalar(i).add(c);return[r.x,r.y,l.x,l.y,c.x,c.y,d.x,d.y,u.x,u.y,h.x,h.y,n.x,n.y]}function Bx(r,e,t=12,n=!0){let i=Cx.set(0,0,0),s,o=0,a=[];for(let l=0;l1&&!(r.getX(o-1)===r.getX(0)&&r.getY(o-1)===r.getY(0)&&r.getZ(o-1)===r.getZ(0))&&(r.setXYZ(o,r.getX(0),r.getY(0),r.getZ(0)),o++),r}function Ox(r,e,t,n=12,i=!0){let s=Cx.set(0,0,0),o=0,a=[];for(let l=0;l1&&!(r.getX(o-1)===r.getX(0)&&r.getY(o-1)===r.getY(0)&&r.getZ(o-1)===r.getZ(0))&&(r.setXYZ(o,r.getX(0),r.getY(0),r.getZ(0)),o++),a}function cm(r,e=12,t=!1){let n=[];for(let i=0,s=r.length;i0&&(n[i-1]+=l),a+=l}o.curveAfter!==void 0&&(a+=xs(o.curveAfter,e)),n.push(a)}return r.length>0&&t&&r[0].roundedCurveCorner!==void 0&&(n[r.length-1]+=xs(r[0].roundedCurveCorner,e)*.5),n}function xs(r,e=12){return r&&r instanceof lo?e*2:r&&(r instanceof ri||r instanceof dh)?1:r&&r instanceof Ea?e*r.points.length:e}function Fx(r,e,t=12,n=!0){let i,s=0;for(let o=0;o1&&!(Pc(r[s-1],r[1],Nc)&&Pc(r[s-2],r[0],Nc))&&(r.push(r[0],r[1]),s++),r}var um=new O,RL=new O,BL=new O,OL=new O,FL=new O,zL=new O,Lt=class extends yi{constructor(e=100,t=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new cn;this.plane=new ni(new M(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=Ee.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=t}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(e){if(this._roundness!==e){this._roundness=e;for(let t=0,n=this.points.length;t0)for(let t=0,n=this.shapeHoles.length;t=0)return t;if(t=this.points.length,this.shapeHoles.length>0)for(let n=0,i=this.shapeHoles.length;n=0)return t+o;t+=s.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(t=>t.points));return[...this.points,...e]}applySize(e,t){e===0&&(e=.001),t===0&&(t=.001),this.applyScale(e/this.width,t/this.height),this._width=e,this._height=t}applyScale(e,t){let n=um.set(e,t);for(let i=0,s=this.points.length;i=0&&this.points.splice(t,1),this.needsUpdate=!0}update(e=!0){for(let t=0,n=this.shapeHoles.length;ts+o,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=cm(this.points,e,!1),this.roundedCurveDivisions=cm(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,t,n=12){return Ox(e,this.curves,t,n,this.autoClose).reduce((s,o)=>s+o,0)*2}extractShapePointsToFlatArray(e,t=12){return this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t),Fx(e,this.roundedCurves,t,this.autoClose)}getCurveIndexFromVertexId(e,t=!1){let n=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=t?this.roundedCurveDivisions:this.curveDivisions,s=0;t&&this.points[0].roundedCurveCorner!==void 0&&(s=xs(this.points[0].roundedCurveCorner,this.subdivision)*.5);let o=e-s;o<0&&(o+=i.reduce((a,l)=>a+l,0));for(let a=0,l=i.length;a=this.points.length-1?0:e+1],o=this.curveDivisions,a=o[e];if(lm(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(um.set(n.x,n.y))/u}let l=0;for(let u=0;u2){let i=0;for(let s=0,o=this.points.length;s0){let c=a.curveBefore,u=a.curveAfter;if(c===void 0||u===void 0)continue;let h=a.roundedCurveBefore,d=a.roundedCurveAfter,f=c.getLength(),p=u.getLength(),m=Math.min(l,f*.499),v=Math.min(l,p*.499),g=Math.min(m,v),y=1-g/f,x=g/p,b=c.getPointAt(y,um),w=u.getPointAt(x,RL);this._subSplitCurve(c,h,y,b,void 0),this._subSplitCurve(u,d,x,void 0,w);let _;if(this.useCubicForRoundedCorners){let S=am(b,a.position,w)/2,A=Math.tan(S)*b.distanceTo(a.position),[T,L]=Ix(b,w,A,BL,OL),C=Px(T,L,a.position),[U,P]=Dx(C,b,w,A,FL,zL);_=new ii(b.clone(),U.clone(),P.clone(),w.clone())}else _=new Wi(b.clone(),a.position.clone(),w.clone());a.roundedCurveCorner=_,this.roundedCurves.splice(s+i,0,_),i++}}}e&&((n=this.eventDispatcher)==null||n.dispatchEvent({type:"update"}))}_subSplitCurve(e,t,n,i,s){if(e instanceof ri)i!==void 0&&t.v2.copy(i),s!==void 0&&t.v1.copy(s);else{let o=e,a=t,l=o.getUtoTmapping(n,0),c=Rx(o.v0,o.v1,o.v2,o.v3,l);return i!==void 0&&(a.v0.set(c[0],c[1]),a.v1.set(c[2],c[3]),a.v2.set(c[4],c[5]),a.v3.set(c[6],c[7])),s!==void 0&&(a.v0.set(c[6],c[7]),a.v1.set(c[8],c[9]),a.v2.set(c[10],c[11]),a.v3.set(c[12],c[13])),a}return t}clone(){let e=new Lt(this._width,this._height);return e.points=this.points.map(t=>t.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(t=>t.clone()),e}toJSON(){return{points:this.points.reduce((e,t)=>e.concat(t.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){var n;this.points=[],this.pointIDs=0;let t=e.points.length/7;for(let i=0;i{let s=new Lt;return s.fromJSON(i),s}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let t=(i,s)=>{s instanceof ii&&s.v3.equals(i.position)&&i.controls[0].position.copy(s.v2)},n=i=>{let s=[],o,a;for(o=0,a=i.length;o0?i[o-1]:null,d;u instanceof ii?(d=this.createPoint(u.v0),d.controls[1].position.copy(u.v1)):u instanceof ri&&(d=this.createPoint(u.v1)),d!==void 0&&(h!==null&&t(d,h),s.push(d))}let l=i[i.length-1],c=!1;return l instanceof ii?l.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(l.v2),c=!0):l instanceof ri&&l.v2.equals(s[0].position)&&(c=!0),this.isClosed=c,s};return this.points=n(e.curves),e instanceof yi&&(this.shapeHoles=e.holes.map(i=>{let s=new Lt;return s.fromShape(i),s})),this.update(),this}};var hm=Math.PI*2;function dm({x:r,y:e},t,n,i,s){return{x:r*t+i,y:e*n+s}}function GL(r,e){let t=e===1.5707963267948966?.551915024494:e===-1.5707963267948966?-.551915024494:4/3*Math.tan(e/4),n=Math.cos(r),i=Math.sin(r),s=Math.cos(r+e),o=Math.sin(r+e);return[{x:n-i*t,y:i+n*t},{x:s+o*t,y:o-s*t},{x:s,y:o}]}function zx(r,e,t,n){let i=r*n-e*t<0?-1:1,s=Math.min(1,Math.max(-1,r*t+e*n));return i*Math.acos(s)}function UL(r,e,t,n,i,s,o,a,l,c){let u=Math.pow(i,2),h=Math.pow(s,2),d=Math.pow(o,2),f=Math.pow(a,2),p=u*h-u*f-h*d;p<0&&(p=0),p/=u*f+h*d,p=Math.sqrt(p)*(l===c?-1:1);let m=p*i/s*a,v=p*-s/i*o,g=m+(r+t)/2,y=v+(e+n)/2,x=(o-m)/i,b=(a-v)/s,w=(-o-m)/i,_=(-a-v)/s,S=zx(1,0,x,b),A=zx(x,b,w,_);return!c&&A>0&&(A-=hm),c&&A<0&&(A+=hm),{centerx:g,centery:y,ang1:S,ang2:A}}function Gx({px:r,py:e,cx:t,cy:n,rx:i,ry:s,largeArcFlag:o,sweepFlag:a}){let l=[];if(i===0||s===0)return[];let c=(r-t)/2,u=(e-n)/2;if(c===0&&u===0)return[];i=Math.abs(i),s=Math.abs(s);let h=Math.pow(c,2)/Math.pow(i,2)+Math.pow(u,2)/Math.pow(s,2);h>1&&(i*=Math.sqrt(h),s*=Math.sqrt(h));let d=UL(r,e,t,n,i,s,c,u,o,a),{ang1:f,ang2:p}=d,{centerx:m,centery:v}=d,g=Math.abs(p)/(hm/4);Math.abs(1-g)<1e-7&&(g=1);let y=Math.max(Math.ceil(g),1);p/=y;for(let x=0;x{let{x:b,y:w}=dm(x[0],i,s,m,v),{x:_,y:S}=dm(x[1],i,s,m,v),{x:A,y:T}=dm(x[2],i,s,m,v);return{x1:b,y1:w,x2:_,y2:S,x:A,y:T}})}var Wt;(function(r){r[r.ODD=0]="ODD",r[r.NONZERO=1]="NONZERO",r[r.POSITIVE=2]="POSITIVE",r[r.NEGATIVE=3]="NEGATIVE",r[r.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Wt||(Wt={}));var gn;(function(r){r[r.POLYGONS=0]="POLYGONS",r[r.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",r[r.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(gn||(gn={}));function Xe(r,e){if(!r)throw e||"Assertion Failed!"}var We=function(){function r(){}return r.vertEq=function(e,t){return e.s===t.s&&e.t===t.t},r.vertLeq=function(e,t){return e.s0?i0?(t.t-n.t)*i+(t.t-e.t)*s:0},r.transEval=function(e,t,n){Xe(r.transLeq(e,t)&&r.transLeq(t,n));var i=t.t-e.t,s=n.t-t.t;return i+s>0?i0?(t.s-n.s)*i+(t.s-e.s)*s:0},r.vertCCW=function(e,t,n){return e.s*(t.t-n.t)+t.s*(n.t-e.t)+n.s*(e.t-t.t)>=0},r.interpolate=function(e,t,n,i){return e=e<0?0:e,n=n<0?0:n,e<=n?n===0?(t+i)/2:t+(i-t)*(e/(e+n)):i+(t-i)*(n/(e+n))},r.intersect=function(e,t,n,i,s){var o,a,l;r.vertLeq(e,t)||(l=e,e=t,t=l),r.vertLeq(n,i)||(l=n,n=i,i=l),r.vertLeq(e,n)||(l=e,e=n,n=l,l=t,t=i,i=l),r.vertLeq(n,t)?r.vertLeq(t,i)?(o=r.edgeEval(e,n,t),a=r.edgeEval(n,t,i),o+a<0&&(o=-o,a=-a),s.s=r.interpolate(o,n.s,a,t.s)):(o=r.edgeSign(e,n,t),a=-r.edgeSign(e,i,t),o+a<0&&(o=-o,a=-a),s.s=r.interpolate(o,n.s,a,i.s)):s.s=(n.s+t.s)/2,r.transLeq(e,t)||(l=e,e=t,t=l),r.transLeq(n,i)||(l=n,n=i,i=l),r.transLeq(e,n)||(l=e,e=n,n=l,l=t,t=i,i=l),r.transLeq(n,t)?r.transLeq(t,i)?(o=r.transEval(e,n,t),a=r.transEval(n,t,i),o+a<0&&(o=-o,a=-a),s.t=r.interpolate(o,n.t,a,t.t)):(o=r.transSign(e,n,t),a=-r.transSign(e,i,t),o+a<0&&(o=-o,a=-a),s.t=r.interpolate(o,n.t,a,i.t)):s.t=(n.t+t.t)/2},r}(),Dc=function(){function r(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return r}(),Ph=function(){function r(e){this.side=e,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(r.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(e){this.Sym.Lface=e},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(e){this.Sym.Org=e},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(e){this.Sym.Lnext=e},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(e){this.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(e){this.Lnext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(e){this.Sym.Onext=e},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(e){this.Sym.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(e){this.Sym.Lnext.Sym=e},enumerable:!0,configurable:!0}),r}(),Za=function(){function r(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}return r}(),Ux=function(){function r(){var e=new Za,t=new Dc,n=new Ph(0),i=new Ph(1);e.next=e.prev=e,e.anEdge=null,t.next=t.prev=t,n.next=n,n.Sym=i,i.next=i,i.Sym=n,this.vHead=e,this.fHead=t,this.eHead=n,this.eHeadSym=i}return r.prototype.makeEdge_=function(e){var t=new Ph(0),n=new Ph(1);e.Sym.sidethis.size||this.leq(n[i].key,n[s].key)){t[e].handle=i,n[i].node=e;break}t[e].handle=s,n[s].node=e,e=o}},r.prototype.floatUp_=function(e){var t=this.nodes,n=this.handles,i,s,o;for(i=t[e].handle;;){if(o=e>>1,s=t[o].handle,o===0||this.leq(n[s].key,n[i].key)){t[e].handle=i,n[i].node=e;break}t[e].handle=s,n[s].node=e,e=o}},r.prototype.init=function(){for(var e=this.size;e>=1;--e)this.floatDown_(e);this.initialized=!0},r.prototype.min=function(){return this.handles[this.nodes[1].handle].key},r.prototype.insert=function(e){var t,n;if(t=++this.size,t*2>this.max){this.max*=2;var i,s;for(s=this.nodes.length,this.nodes.length=this.max+1,i=s;i0&&(e[1].handle=e[this.size].handle,t[e[1].handle].node=1,t[n].key=null,t[n].node=this.freeList,this.freeList=n,--this.size,this.size>0&&this.floatDown_(1)),i},r.prototype.delete=function(e){var t=this.nodes,n=this.handles,i;Xe(e>=1&&e<=this.max&&n[e].key!==null),i=n[e].node,t[i].handle=t[this.size].handle,n[t[i].handle].node=i,--this.size,i<=this.size&&(i<=1||this.leq(n[t[i>>1].handle].key,n[t[i].handle].key)?this.floatDown_(i):this.floatUp_(i)),n[e].key=null,n[e].node=this.freeList,this.freeList=e},r}(),fm=function(){function r(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return r}(),Hx=function(){function r(){this.key=null,this.next=null,this.prev=null}return r}(),VL=function(){function r(e,t){this.frame=e,this.leq=t,this.head=new Hx,this.head.next=this.head,this.head.prev=this.head}return r.prototype.min=function(){return this.head.next},r.prototype.max=function(){return this.head.prev},r.prototype.insert=function(e){return this.insertBefore(this.head,e)},r.prototype.search=function(e){var t=this.head;do t=t.next;while(t.key!==null&&!this.leq(this.frame,e,t.key));return t},r.prototype.insertBefore=function(e,t){do e=e.prev;while(e.key!==null&&!this.leq(this.frame,e.key,t));var n=new Hx;return n.key=t,n.next=e.next,e.next.prev=n,n.prev=e,e.next=n,n},r.prototype.delete=function(e){e.next.prev=e.prev,e.prev.next=e.next},r}(),HL=function(){function r(){}return r.regionBelow=function(e){return e.nodeUp.prev.key},r.regionAbove=function(e){return e.nodeUp.next.key},r.debugEvent=function(e){},r.addWinding=function(e,t){e.winding+=t.winding,e.Sym.winding+=t.Sym.winding},r.edgeLeq=function(e,t,n){var i=e.event,s=t.eUp,o=n.eUp;if(s.Dst===i)return o.Dst===i?We.vertLeq(s.Org,o.Org)?We.edgeSign(o.Dst,s.Org,o.Org)<=0:We.edgeSign(s.Dst,o.Org,s.Org)>=0:We.edgeSign(o.Dst,i,o.Org)<=0;if(o.Dst===i)return We.edgeSign(s.Dst,i,s.Org)>=0;var a=We.edgeEval(s.Dst,i,s.Org),l=We.edgeEval(o.Dst,i,o.Org);return a>=l},r.deleteRegion=function(e,t){t.fixUpperEdge&&Xe(t.eUp.winding===0),t.eUp.activeRegion=null,e.dict.delete(t.nodeUp)},r.fixUpperEdge=function(e,t,n){Xe(t.fixUpperEdge),e.mesh.delete(t.eUp),t.fixUpperEdge=!1,t.eUp=n,n.activeRegion=t},r.topLeftRegion=function(e,t){var n=t.eUp.Org,i;do t=r.regionAbove(t);while(t.eUp.Org===n);if(t.fixUpperEdge){if(i=e.mesh.connect(r.regionBelow(t).eUp.Sym,t.eUp.Lnext),i===null)return null;r.fixUpperEdge(e,t,i),t=r.regionAbove(t)}return t},r.topRightRegion=function(e){var t=e.eUp.Dst;do e=r.regionAbove(e);while(e.eUp.Dst===t);return e},r.addRegionBelow=function(e,t,n){var i=new fm;return i.eUp=n,i.nodeUp=e.dict.insertBefore(t.nodeUp,i),i.fixUpperEdge=!1,i.sentinel=!1,i.dirty=!1,n.activeRegion=i,i},r.isWindingInside=function(e,t){switch(e.windingRule){case Wt.ODD:return(t&1)!=0;case Wt.NONZERO:return t!==0;case Wt.POSITIVE:return t>0;case Wt.NEGATIVE:return t<0;case Wt.ABS_GEQ_TWO:return t>=2||t<=-2}throw new Error("Invalid winding rulle")},r.computeWinding=function(e,t){t.windingNumber=r.regionAbove(t).windingNumber+t.eUp.winding,t.inside=r.isWindingInside(e,t.windingNumber)},r.finishRegion=function(e,t){var n=t.eUp,i=n.Lface;i.inside=t.inside,i.anEdge=n,r.deleteRegion(e,t)},r.finishLeftRegions=function(e,t,n){for(var i,s=null,o=t,a=t.eUp;o!==n;){if(o.fixUpperEdge=!1,s=r.regionBelow(o),i=s.eUp,i.Org!=a.Org){if(!s.fixUpperEdge){r.finishRegion(e,o);break}i=e.mesh.connect(a.Lprev,i.Sym),r.fixUpperEdge(e,s,i)}a.Onext!==i&&(e.mesh.splice(i.Oprev,i),e.mesh.splice(a,i)),r.finishRegion(e,o),a=s.eUp,o=s}return a},r.addRightEdges=function(e,t,n,i,s,o){var a,l,c,u,h=!0;c=n;do Xe(We.vertLeq(c.Org,c.Dst)),r.addRegionBelow(e,t,c.Sym),c=c.Onext;while(c!==i);for(s===null&&(s=r.regionBelow(t).eUp.Rprev),l=t,u=s;a=r.regionBelow(l),c=a.eUp.Sym,c.Org===u.Org;)c.Onext!==u&&(e.mesh.splice(c.Oprev,c),e.mesh.splice(u.Oprev,c)),a.windingNumber=l.windingNumber-c.winding,a.inside=r.isWindingInside(e,a.windingNumber),l.dirty=!0,!h&&r.checkForRightSplice(e,l)&&(r.addWinding(c,u),r.deleteRegion(e,l),e.mesh.delete(u)),h=!1,l=a,u=c;l.dirty=!0,Xe(l.windingNumber-c.winding===a.windingNumber),o&&r.walkDirtyRegions(e,l)},r.spliceMergeVertices=function(e,t,n){e.mesh.splice(t,n)},r.vertexWeights=function(e,t,n){var i=We.vertL1dist(t,e),s=We.vertL1dist(n,e),o=.5*s/(i+s),a=.5*i/(i+s);e.coords[0]+=o*t.coords[0]+a*n.coords[0],e.coords[1]+=o*t.coords[1]+a*n.coords[1],e.coords[2]+=o*t.coords[2]+a*n.coords[2]},r.getIntersectData=function(e,t,n,i,s,o){t.coords[0]=t.coords[1]=t.coords[2]=0,t.idx=-1,r.vertexWeights(t,n,i),r.vertexWeights(t,s,o)},r.checkForRightSplice=function(e,t){var n=r.regionBelow(t),i=t.eUp,s=n.eUp;if(We.vertLeq(i.Org,s.Org)){if(We.edgeSign(s.Dst,i.Org,s.Org)>0)return!1;We.vertEq(i.Org,s.Org)?i.Org!==s.Org&&(e.pq.delete(i.Org.pqHandle),r.spliceMergeVertices(e,s.Oprev,i)):(e.mesh.splitEdge(s.Sym),e.mesh.splice(i,s.Oprev),t.dirty=n.dirty=!0)}else{if(We.edgeSign(i.Dst,s.Org,i.Org)<0)return!1;r.regionAbove(t).dirty=t.dirty=!0,e.mesh.splitEdge(i.Sym),e.mesh.splice(s.Oprev,i)}return!0},r.checkForLeftSplice=function(e,t){var n=r.regionBelow(t),i=t.eUp,s=n.eUp,o;if(Xe(!We.vertEq(i.Dst,s.Dst)),We.vertLeq(i.Dst,s.Dst)){if(We.edgeSign(i.Dst,s.Dst,i.Org)<0)return!1;r.regionAbove(t).dirty=t.dirty=!0,o=e.mesh.splitEdge(i),e.mesh.splice(s.Sym,o),o.Lface.inside=t.inside}else{if(We.edgeSign(s.Dst,i.Dst,s.Org)>0)return!1;t.dirty=n.dirty=!0,o=e.mesh.splitEdge(s),e.mesh.splice(i.Lnext,s.Sym),o.Rface.inside=t.inside}return!0},r.checkForIntersect=function(e,t){var n=r.regionBelow(t),i=t.eUp,s=n.eUp,o=i.Org,a=s.Org,l=i.Dst,c=s.Dst,u,h,d=new Za,f,p;if(Xe(!We.vertEq(c,l)),Xe(We.edgeSign(l,e.event,o)<=0),Xe(We.edgeSign(c,e.event,a)>=0),Xe(o!==e.event&&a!==e.event),Xe(!t.fixUpperEdge&&!n.fixUpperEdge),o===a||(u=Math.min(o.t,l.t),h=Math.max(a.t,c.t),u>h))return!1;if(We.vertLeq(o,a)){if(We.edgeSign(c,o,a)>0)return!1}else if(We.edgeSign(l,a,o)<0)return!1;return r.debugEvent(e),We.intersect(l,o,c,a,d),Xe(Math.min(o.t,l.t)<=d.t),Xe(d.t<=Math.max(a.t,c.t)),Xe(Math.min(c.s,l.s)<=d.s),Xe(d.s<=Math.max(a.s,o.s)),We.vertLeq(d,e.event)&&(d.s=e.event.s,d.t=e.event.t),f=We.vertLeq(o,a)?o:a,We.vertLeq(f,d)&&(d.s=f.s,d.t=f.t),We.vertEq(d,o)||We.vertEq(d,a)?(r.checkForRightSplice(e,t),!1):!We.vertEq(l,e.event)&&We.edgeSign(l,e.event,d)>=0||!We.vertEq(c,e.event)&&We.edgeSign(c,e.event,d)<=0?c===e.event?(e.mesh.splitEdge(i.Sym),e.mesh.splice(s.Sym,i),t=r.topLeftRegion(e,t),i=r.regionBelow(t).eUp,r.finishLeftRegions(e,r.regionBelow(t),n),r.addRightEdges(e,t,i.Oprev,i,i,!0),!0):l===e.event?(e.mesh.splitEdge(s.Sym),e.mesh.splice(i.Lnext,s.Oprev),n=t,t=r.topRightRegion(t),p=r.regionBelow(t).eUp.Rprev,n.eUp=s.Oprev,s=r.finishLeftRegions(e,n,null),r.addRightEdges(e,t,s.Onext,i.Rprev,p,!0),!0):(We.edgeSign(l,e.event,d)>=0&&(r.regionAbove(t).dirty=t.dirty=!0,e.mesh.splitEdge(i.Sym),i.Org.s=e.event.s,i.Org.t=e.event.t),We.edgeSign(c,e.event,d)<=0&&(t.dirty=n.dirty=!0,e.mesh.splitEdge(s.Sym),s.Org.s=e.event.s,s.Org.t=e.event.t),!1):(e.mesh.splitEdge(i.Sym),e.mesh.splitEdge(s.Sym),e.mesh.splice(s.Oprev,i),i.Org.s=d.s,i.Org.t=d.t,i.Org.pqHandle=e.pq.insert(i.Org),r.getIntersectData(e,i.Org,o,l,a,c),r.regionAbove(t).dirty=t.dirty=n.dirty=!0,!1)},r.walkDirtyRegions=function(e,t){for(var n=r.regionBelow(t),i,s;;){for(;n.dirty;)t=n,n=r.regionBelow(n);if(!t.dirty&&(n=t,t=r.regionAbove(t),t===null||!t.dirty))return;if(t.dirty=!1,i=t.eUp,s=n.eUp,i.Dst!==s.Dst&&r.checkForLeftSplice(e,t)&&(n.fixUpperEdge?(r.deleteRegion(e,n),e.mesh.delete(s),n=r.regionBelow(t),s=n.eUp):t.fixUpperEdge&&(r.deleteRegion(e,t),e.mesh.delete(i),t=r.regionAbove(n),i=t.eUp)),i.Org!==s.Org)if(i.Dst!==s.Dst&&!t.fixUpperEdge&&!n.fixUpperEdge&&(i.Dst===e.event||s.Dst===e.event)){if(r.checkForIntersect(e,t))return}else r.checkForRightSplice(e,t);i.Org===s.Org&&i.Dst===s.Dst&&(r.addWinding(s,i),r.deleteRegion(e,t),e.mesh.delete(i),t=r.regionAbove(n))}},r.connectRightVertex=function(e,t,n){var i,s=n.Onext,o=r.regionBelow(t),a=t.eUp,l=o.eUp,c=!1;if(a.Dst!==l.Dst&&r.checkForIntersect(e,t),We.vertEq(a.Org,e.event)&&(e.mesh.splice(s.Oprev,a),t=r.topLeftRegion(e,t),s=r.regionBelow(t).eUp,r.finishLeftRegions(e,r.regionBelow(t),o),c=!0),We.vertEq(l.Org,e.event)&&(e.mesh.splice(n,l.Oprev),n=r.finishLeftRegions(e,o,null),c=!0),c){r.addRightEdges(e,t,n.Onext,s,s,!0);return}We.vertLeq(l.Org,a.Org)?i=l.Oprev:i=a,i=e.mesh.connect(n.Lprev,i),r.addRightEdges(e,t,i,i.Onext,i.Onext,!1),i.Sym.activeRegion.fixUpperEdge=!0,r.walkDirtyRegions(e,t)},r.connectLeftDegenerate=function(e,t,n){var i,s,o,a,l;if(i=t.eUp,We.vertEq(i.Org,n)){Xe(!1),r.spliceMergeVertices(e,i,n.anEdge);return}if(!We.vertEq(i.Dst,n)){e.mesh.splitEdge(i.Sym),t.fixUpperEdge&&(e.mesh.delete(i.Onext),t.fixUpperEdge=!1),e.mesh.splice(n.anEdge,i),r.sweepEvent(e,n);return}Xe(!1),t=r.topRightRegion(t),l=r.regionBelow(t),o=l.eUp.Sym,s=a=o.Onext,l.fixUpperEdge&&(Xe(s!==o),r.deleteRegion(e,l),e.mesh.delete(o),o=s.Oprev),e.mesh.splice(n.anEdge,o),We.edgeGoesLeft(s)||(s=null),r.addRightEdges(e,t,o.Onext,a,s,!0)},r.connectLeftVertex=function(e,t){var n,i,s,o,a,l,c=new fm;if(c.eUp=t.anEdge.Sym,n=e.dict.search(c).key,i=r.regionBelow(n),!!i){if(o=n.eUp,a=i.eUp,We.edgeSign(o.Dst,t,o.Org)===0){r.connectLeftDegenerate(e,n,t);return}if(s=We.vertLeq(a.Dst,o.Dst)?n:i,n.inside||s.fixUpperEdge){if(s===n)l=e.mesh.connect(t.anEdge.Sym,o.Lnext);else{var u=e.mesh.connect(a.Dnext,t.anEdge);l=u.Sym}s.fixUpperEdge?r.fixUpperEdge(e,s,l):r.computeWinding(e,r.addRegionBelow(e,n,l)),r.sweepEvent(e,t)}else r.addRightEdges(e,n,t.anEdge,t.anEdge,null,!0)}},r.sweepEvent=function(e,t){e.event=t,r.debugEvent(e);for(var n=t.anEdge;n.activeRegion===null;)if(n=n.Onext,n===t.anEdge){r.connectLeftVertex(e,t);return}var i=r.topLeftRegion(e,n.activeRegion);Xe(i!==null);var s=r.regionBelow(i),o=s.eUp,a=r.finishLeftRegions(e,s,null);a.Onext===o?r.connectRightVertex(e,i,a):r.addRightEdges(e,i,a.Onext,o,o,!0)},r.addSentinel=function(e,t,n,i){var s=new fm,o=e.mesh.makeEdge();o.Org.s=n,o.Org.t=i,o.Dst.s=t,o.Dst.t=i,e.event=o.Dst,s.eUp=o,s.windingNumber=0,s.inside=!1,s.fixUpperEdge=!1,s.sentinel=!0,s.dirty=!1,s.nodeUp=e.dict.insert(s)},r.initEdgeDict=function(e){e.dict=new VL(e,r.edgeLeq);var t=e.bmax[0]-e.bmin[0],n=e.bmax[1]-e.bmin[1],i=e.bmin[0]-t,s=e.bmax[0]+t,o=e.bmin[1]-n,a=e.bmax[1]+n;r.addSentinel(e,i,s,o),r.addSentinel(e,i,s,a)},r.doneEdgeDict=function(e){for(var t,n=0;(t=e.dict.min().key)!==null;)t.sentinel||(Xe(t.fixUpperEdge),Xe(++n==1)),Xe(t.windingNumber===0),r.deleteRegion(e,t)},r.removeDegenerateEdges=function(e){var t,n,i,s=e.mesh.eHead;for(t=s.next;t!==s;t=n)n=t.next,i=t.Lnext,We.vertEq(t.Org,t.Dst)&&t.Lnext.Lnext!==t&&(r.spliceMergeVertices(e,i,t),e.mesh.delete(t),t=i,i=t.Lnext),i.Lnext===t&&(i!==t&&((i===n||i===n.Sym)&&(n=n.next),e.mesh.delete(i)),(t===n||t===n.Sym)&&(n=n.next),e.mesh.delete(t))},r.initPriorityQ=function(e){var t,n,i,s=0;for(i=e.mesh.vHead,n=i.next;n!==i;n=n.next)s++;for(s+=8,t=e.pq=new kL(s,We.vertLeq),i=e.mesh.vHead,n=i.next;n!==i;n=n.next)n.pqHandle=t.insert(n);return n!==i?!1:(t.init(),!0)},r.donePriorityQ=function(e){e.pq=null},r.removeDegenerateFaces=function(e,t){var n,i,s;for(n=t.fHead.next;n!==t.fHead;n=i)i=n.next,s=n.anEdge,Xe(s.Lnext!==s),s.Lnext.Lnext===s&&(r.addWinding(s.Onext,s),e.mesh.delete(s));return!0},r.computeInterior=function(e,t){t===void 0&&(t=!0);var n,i;if(r.removeDegenerateEdges(e),!r.initPriorityQ(e))return!1;for(r.initEdgeDict(e);(n=e.pq.extractMin())!==null;){for(;i=e.pq.min(),!(i===null||!We.vertEq(i,n));)i=e.pq.extractMin(),r.spliceMergeVertices(e,n.anEdge,i.anEdge);r.sweepEvent(e,n)}return e.event=e.dict.min().key.eUp.Org,r.debugEvent(e),r.doneEdgeDict(e),r.donePriorityQ(e),r.removeDegenerateFaces(e,e.mesh)?(t&&e.mesh.check(),!0):!1},r}(),jL=function(){function r(){this.mesh=new Ux,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=Wt.ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}return r.prototype.dot_=function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]},r.prototype.normalize_=function(e){var t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2];if(!t)throw"Zero-size vector!";t=Math.sqrt(t),e[0]/=t,e[1]/=t,e[2]/=t},r.prototype.longAxis_=function(e){var t=0;return Math.abs(e[1])>Math.abs(e[0])&&(t=1),Math.abs(e[2])>Math.abs(e[t])&&(t=2),t},r.prototype.computeNormal_=function(e){var t,n,i,s,o,a,l=[0,0,0],c=[0,0,0],u=[0,0,0],h=[0,0,0],d=[0,0,0],f=[null,null,null],p=[null,null,null],m=this.mesh.vHead;t=m.next;for(var v=0;v<3;++v)s=t.coords[v],c[v]=s,p[v]=t,l[v]=s,f[v]=t;for(t=m.next;t!==m;t=t.next)for(var g=0;g<3;++g)s=t.coords[g],sl[g]&&(l[g]=s,f[g]=t);var y=0;if(l[1]-c[1]>l[0]-c[0]&&(y=1),l[2]-c[2]>l[y]-c[y]&&(y=2),c[y]>=l[y]){e[0]=0,e[1]=0,e[2]=1;return}for(a=0,n=p[y],i=f[y],u[0]=n.coords[0]-i.coords[0],u[1]=n.coords[1]-i.coords[1],u[2]=n.coords[2]-i.coords[2],t=m.next;t!==m;t=t.next)h[0]=t.coords[0]-i.coords[0],h[1]=t.coords[1]-i.coords[1],h[2]=t.coords[2]-i.coords[2],d[0]=u[1]*h[2]-u[2]*h[1],d[1]=u[2]*h[0]-u[0]*h[2],d[2]=u[0]*h[1]-u[1]*h[0],o=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],o>a&&(a=o,e[0]=d[0],e[1]=d[1],e[2]=d[2]);a<=0&&(e[0]=e[1]=e[2]=0,e[this.longAxis_(u)]=1)},r.prototype.checkOrientation_=function(){for(var e=this.mesh.fHead,t,n=this.mesh.vHead,i,s=0,o=e.next;o!==e;o=o.next)if(i=o.anEdge,!(i.winding<=0))do s+=(i.Org.s-i.Dst.s)*(i.Org.t+i.Dst.t),i=i.Lnext;while(i!==o.anEdge);if(s<0){for(t=n.next;t!==n;t=t.next)t.t=-t.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},r.prototype.projectPolygon_=function(){var e=this.mesh.vHead,t=[0,0,0],n,i,s=!1;t[0]=this.normal[0],t[1]=this.normal[1],t[2]=this.normal[2],!t[0]&&!t[1]&&!t[2]&&(this.computeNormal_(t),s=!0),n=this.sUnit,i=this.tUnit;var o=this.longAxis_(t);n[o]=0,n[(o+1)%3]=1,n[(o+2)%3]=0,i[o]=0,i[(o+1)%3]=0,i[(o+2)%3]=t[o]>0?1:-1;for(var a=e.next;a!==e;a=a.next)a.s=this.dot_(a.coords,n),a.t=this.dot_(a.coords,i);s&&this.checkOrientation_();for(var l=!0,c=e.next;c!==e;c=c.next)l?(this.bmin[0]=this.bmax[0]=c.s,this.bmin[1]=this.bmax[1]=c.t,l=!1):(c.sthis.bmax[0]&&(this.bmax[0]=c.s),c.tthis.bmax[1]&&(this.bmax[1]=c.t))},r.prototype.addWinding_=function(e,t){e.winding+=t.winding,e.Sym.winding+=t.Sym.winding},r.prototype.tessellateMonoRegion_=function(e,t){var n,i;if(n=t.anEdge,!(n.Lnext!==n&&n.Lnext.Lnext!==n))throw"Mono region invalid";for(;We.vertLeq(n.Dst,n.Org);n=n.Lprev);for(;We.vertLeq(n.Org,n.Dst);n=n.Lnext);i=n.Lprev;for(var s=void 0;n.Lnext!==i;)if(We.vertLeq(n.Dst,i.Org)){for(;i.Lnext!==n&&(We.edgeGoesLeft(i.Lnext)||We.edgeSign(i.Org,i.Dst,i.Lnext.Dst)<=0);)s=e.connect(i.Lnext,i),i=s.Sym;i=i.Lprev}else{for(;i.Lnext!==n&&(We.edgeGoesRight(n.Lprev)||We.edgeSign(n.Dst,n.Org,n.Lprev.Org)>=0);)s=e.connect(n,n.Lprev),n=s.Sym;n=n.Lnext}if(i.Lnext===n)throw"Mono region invalid";for(;i.Lnext.Lnext!==n;)s=e.connect(i.Lnext,i),i=s.Sym;return!0},r.prototype.tessellateInterior_=function(e){for(var t,n=e.fHead.next;n!==e.fHead;n=t)if(t=n.next,n.inside&&!this.tessellateMonoRegion_(e,n))return!1;return!0},r.prototype.discardExterior_=function(e){for(var t,n=e.fHead.next;n!==e.fHead;n=t)t=n.next,n.inside||e.zapFace(n)},r.prototype.setWindingNumber_=function(e,t,n){for(var i,s=e.eHead.next;s!==e.eHead;s=i)i=s.next,s.Rface.inside!==s.Lface.inside?s.winding=s.Lface.inside?t:-t:n?e.delete(s):s.winding=0},r.prototype.getNeighbourFace_=function(e){return!e.Rface||!e.Rface.inside?-1:e.Rface.n},r.prototype.outputPolymesh_=function(e,t,n,i){var s,o=0,a=0,l;n>3&&e.mergeConvexFaces(n);for(var c=e.vHead.next;c!==e.vHead;c=c.next)c.n=-1;for(var u=e.fHead.next;u!==e.fHead;u=u.next)if(u.n=-1,!!u.inside){s=u.anEdge,l=0;do{var c=s.Org;c.n===-1&&(c.n=a,a++),l++,s=s.Lnext}while(s!==u.anEdge);if(l>n)throw"Face vertex greater that support polygon";u.n=o,++o}this.elementCount=o,t===gn.CONNECTED_POLYGONS&&(o*=2),this.elements=[],this.elements.length=o*n,this.vertexCount=a,this.vertices=[],this.vertices.length=a*i,this.vertexIndices=[],this.vertexIndices.length=a;for(var c=e.vHead.next;c!==e.vHead;c=c.next)if(c.n!==-1){var h=c.n*i;this.vertices[h+0]=c.coords[0],this.vertices[h+1]=c.coords[1],i>2&&(this.vertices[h+2]=c.coords[2]),this.vertexIndices[c.n]=c.idx}for(var d=0,u=e.fHead.next;u!==e.fHead;u=u.next)if(!!u.inside){s=u.anEdge,l=0;do{var c=s.Org;this.elements[d++]=c.n,l++,s=s.Lnext}while(s!==u.anEdge);for(var f=l;f2&&(this.vertices[l++]=n.Org.coords[2]),this.vertexIndices[c++]=this.vertexIdCallback?this.vertexIdCallback(n):n.Org.idx,o++,n=n.Lnext;while(n!==i);this.elements[u++]=s,this.elements[u++]=o,s+=o}},r.prototype.addContour=function(e,t){this.mesh===null&&(this.mesh=new Ux),e<2&&(e=2),e>3&&(e=3);for(var n=null,i=0;i2?n.Org.coords[2]=t[i+2]:n.Org.coords[2]=0,n.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(n),n.winding=1,n.Sym.winding=-1},r.prototype.tesselate=function(e,t,n,i,s,o){if(e===void 0&&(e=Wt.ODD),t===void 0&&(t=gn.POLYGONS),o===void 0&&(o=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,s&&(this.normal[0]=s[0],this.normal[1]=s[1],this.normal[2]=s[2]),this.windingRule=e,i<2&&(i=2),i>3&&(i=3),!this.mesh)return!1;this.projectPolygon_(),HL.computeInterior(this,o);var a=this.mesh;return t===gn.BOUNDARY_CONTOURS?this.setWindingNumber_(a,1,!0):this.tessellateInterior_(a),o&&a.check(),t===gn.BOUNDARY_CONTOURS?this.outputContours_(a,i):this.outputPolymesh_(a,t,n,i),!0},r}();function No(r){var e=r.windingRule,t=e===void 0?Wt.ODD:e,n=r.elementType,i=n===void 0?gn.POLYGONS:n,s=r.polySize,o=s===void 0?3:s,a=r.vertexSize,l=a===void 0?2:a,c=r.normal,u=c===void 0?[0,0,1]:c,h=r.contours,d=h===void 0?[]:h,f=r.strict,p=f===void 0?!0:f,m=r.debug,v=m===void 0?!1:m;if(!d&&p)throw new Error("Contours can't be empty");if(!!d){var g=new jL;r.edgeCreateCallback&&(g.edgeCreateCallback=r.edgeCreateCallback),r.vertexIdCallback&&(g.vertexIdCallback=r.vertexIdCallback);for(var y=0;yl.extractShapePointsToFlatArray([],this._curveSegments)),n,i=!0,s=!0,o,a;for(let l=0,c=e.length/2;lc&&(c=g),yh&&(h=y)}let d=c-l,f=h-u;for(let p=0,m=n.vertexCount;pthis._maxDrawCount}};var Rh=class{constructor(e=256,t=!1){this.capacity=e,this.size=0,this.debug=t,this.debug&&console.log(`allocating with cap ${e}`);let n=e*Rh.eSize;this.buffer=new ArrayBuffer(n);let i=Float32Array.BYTES_PER_ELEMENT,s=0;this.positions=new Float32Array(this.buffer,s*i,3*e),s+=3*e,this.normals=new Float32Array(this.buffer,s*i,3*e),s+=3*e,this.uvs=new Float32Array(this.buffer,s*i,2*e)}realloc(e,t=!1){if(ethis.capacity){let i=this.capacity;for(;t>i;)i*=2;this.realloc(i)}let n=this.size;return this.size=t,n}reserve(e){let t=this.size+e;t>this.capacity&&this.realloc(t)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},Dh=Rh;Dh.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var pm=(r,e)=>([t,n])=>(n=t?r:r+e)<=n),mm=class extends we{constructor(e,t,n=0,i=12,s=3){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=t,n<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(n,t/2-1e-12),this._bevelSegments=Math.floor(s));let o=this._shape.extractShapePointsToFlatArray([],i),a=this._shape.shapeHoles.map(_=>{let S=_.extractShapePointsToFlatArray([],i),A=[];for(let T=S.length-1;T>=1;T-=2){let L=S[T-1],C=S[T-0];A.push(L,C)}return A}),l=No({windingRule:Wt.ODD,elementType:gn.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[o]}),c=No({windingRule:Wt.ODD,elementType:gn.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...a]});if(!l)throw new Error("error generating geometry");let u=l.elementCount;if(c){l.elementCount+=c.elementCount;for(let _=0;_d&&(d=T),Lp&&(p=L)}this._minX=h,this._minY=f,this._width=d-h,this._height=p-f;let m=l.vertexCount*2*(2+this._bevelSegments);this._buffer=new Dh(m);let v=[],g=[];for(let _=l.elementCount-1,S=l.elementCount;_>=0;_--){let A=_>=u,T=_*2,L=l.elements[T+0],C=l.elements[T+1],U=L+C,P={start:L,count:C,normals:[],continuous:[],concave:[]},R=L,G=U-1,B=L+1,j=this._shape.roundedCurves.length;do{let z=R-L,D=l.vertices[G*2+0],K=l.vertices[G*2+1],q=l.vertices[R*2+0],ee=l.vertices[R*2+1],V=l.vertices[B*2+0],de=l.vertices[B*2+1],ae=q-D,te=ee-K,X=Math.sqrt(ae*ae+te*te);ae/=X,te/=X;let se=q-V,$=ee-de,H=Math.sqrt(se*se+$*$);se/=H,$/=H,P.normals[z*2+0]=-$,P.normals[z*2+1]=se,P.concave[z]=ae*$-te*se>0;let Q=l.vertexIndices[R];if(Array.isArray(Q))P.continuous[z]=!1;else{let[ce,ie]=this._shape.getCurveIndexFromVertexId(Q-1,!0);if(ie>0&&ie<1)P.continuous[z]=!0;else{let N=ie===1?ce+1:ce-1;N=(N+j)%j;let E=ie===1?0:1,Y=this._shape.roundedCurves[ce].getTangent(ie),re=this._shape.roundedCurves[N].getTangent(E);P.continuous[z]=Y.dot(re)>.95}}A&&(P.normals[z*2+0]*=-1,P.normals[z*2+1]*=-1),[G,R,B]=[R,B,B+1],B>=U&&(B-=C)}while(B!==L+1);let ne=[];ne.push({bevelI:0,angle:0,size:0,boundary:{vertices:l.vertices.slice(L*2,U*2),vertexCount:C,vertexIndices:new Array(C).fill(!0).map((z,D)=>[D,D]),elements:[0,C],elementCount:1,mesh:null},reverseMap:[],insetPoints:l.vertices.slice(L*2,U*2)});for(let z=1;z<=this._bevelSegments;z++){let D=z/this._bevelSegments*Math.PI/2,K=(1-Math.cos(D))*this._bevelSize,q=[],ee=[],V=[],de=[],ae=0;for(let X=0;XY&&(re-=Math.PI*2);let ye=re-Y;if(P.continuous[X]||A){let pe=Y+ye/2,Ie=Math.cos(pe)*K,ve=Math.sin(pe)*K;q[2*ae+0]=H+Ie*(A?-1:1),q[2*ae+1]=Q+ve*(A?-1:1),de[ae]=X,ae++}else{let pe=Math.max(1,Math.floor(i/4*Math.abs(ye)/Math.PI));for(let Ie=0;Ie<=pe;Ie++){let ve=Y+ye*(Ie/pe),Fe=Math.cos(ve)*K,Ce=Math.sin(ve)*K;q[2*ae+0]=H+Fe,q[2*ae+1]=Q+Ce,de[ae]=X,ae++}}}else q[2*ae+0]=H+ce,q[2*ae+1]=Q+ie,de[ae]=X,ee[X]=ae,ae++,q[2*ae+0]=H,q[2*ae+1]=Q,de[ae]=X,ae++,q[2*ae+0]=H+N,q[2*ae+1]=Q+E,de[ae]=X,V[X]=ae,ae++}let te=No({windingRule:Wt.POSITIVE,elementType:gn.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[q],edgeCreateCallback:X=>{let $=X.Org.idx,H=de[$],Q=de[($+1)%de.length];X.idx=[H,Q],X.Sym.idx=[Q,H]},vertexIdCallback:X=>{let se=X.Lprev.idx;return[se?se[1]:0,X.idx[0]]}});if(!te)throw console.log("Error"),new Error(`error generating bevel geometry for ${z}'th loop`);if(!te.vertexCount)break;for(let X=0;X{let q=0,ee=z.boundary.vertexIndices.length;for(;qre){let pe=Y/re,Ie=0;for(let ve=1;ve(Ie+1)*pe&&(Ie++,N=this.buildBevelVert(P,K,(X+Ie)%ee,Ie/(re-1)),v.push(ce.topN,ie.topP,N.topP),v.push(ie.bottomP,ce.bottomN,N.bottomP),ce=N)}else{let pe=re/Y,Ie=0;for(let ve=1;ve(Ie+1)*pe&&(Ie++,ie=this.buildBevelVert(P,D,(te+Ie)%q,Ie/(Y-1)),v.push(Q.topN,ie.topP,ce.topN),v.push(ie.bottomP,Q.bottomN,ce.bottomN),Q=ie)}te=(te+Y)%q,X=(X+re)%ee,de=(de+1)%V}while(de!==se)}{let z=ne[0];for(let D=0,K=z.boundary.vertexCount;D=W+2;D-=3){let K=v[D-2],q=v[D-1],ee=v[D-0];z.push(ee,q,K)}v.splice(W,v.length-W,...z)}if(A){let z=[];for(let D=ne[ne.length-1].boundary.vertices.length-1;D>=1;D-=2){let K=ne[ne.length-1].boundary.vertices[D-1],q=ne[ne.length-1].boundary.vertices[D-0];z.push(K,q)}g.push(z)}if(!A){let z=ne[ne.length-1],D=No({windingRule:ne.length>1?Wt.POSITIVE:Wt.ODD,elementType:gn.POLYGONS,vertexSize:2,strict:!0,contours:[z.insetPoints,...g]});if(!D)throw new Error("Error generating geometry for surface");for(let K=0;K0,u=e.continuous[l]||h);let d=Math.cos(t.angle),f=Math.sin(t.angle),p=n*2,m=l*2,v=c*2,g=t.boundary.vertices[p+0],y=t.boundary.vertices[p+1],x=(1-f)*this._bevelSize,b=(g-this._minX)/this._width,w=(y-this._minY)/this._height,_=e.normals[m+0],S=e.normals[m+1],A=e.normals[v+0],T=e.normals[v+1];if(h){let R=A-_,G=T-S;_=_+R*(1-i),S=S+G*(1-i);let B=Math.sqrt(_*_+S*S);_/=B,S/=B}let L=this._buffer.get(u?2:4),C=L*3,U=L*2,P={i:n,fi:l,topP:L+0,topN:L+0,bottomP:L+1,bottomN:L+1};return this._buffer.positions[C+0]=g,this._buffer.positions[C+1]=y,this._buffer.positions[C+2]=this._depth-x,this._buffer.normals[C+0]=_*d,this._buffer.normals[C+1]=S*d,this._buffer.normals[C+2]=f,this._buffer.uvs[U+0]=b,this._buffer.uvs[U+1]=w,this._buffer.positions[C+3]=g,this._buffer.positions[C+4]=y,this._buffer.positions[C+5]=x,this._buffer.normals[C+3]=_*d,this._buffer.normals[C+4]=S*d,this._buffer.normals[C+5]=-f,this._buffer.uvs[U+2]=w,this._buffer.uvs[U+3]=b,u||(L+=2,C+=6,U+=4,P.topP=L+0,P.bottomP=L+1,this._buffer.positions[C+0]=g,this._buffer.positions[C+1]=y,this._buffer.positions[C+2]=this._depth-x,this._buffer.normals[C+0]=A*d,this._buffer.normals[C+1]=T*d,this._buffer.normals[C+2]=f,this._buffer.uvs[U+0]=b,this._buffer.uvs[U+1]=w,this._buffer.positions[C+3]=g,this._buffer.positions[C+4]=y,this._buffer.positions[C+5]=x,this._buffer.normals[C+3]=A*d,this._buffer.normals[C+4]=T*d,this._buffer.normals[C+5]=-f,this._buffer.uvs[U+2]=w,this._buffer.uvs[U+3]=b),this.vertexCache[s]=P,P}};var Pn=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,e){var c,u,h,d,f,p,m;let t=Object.assign({},(c=e==null?void 0:e.parameters)!=null?c:{width:100,subdivisions:40,roundness:0,extrudeDepth:0,surfaceMaxCount:100,extrudeBevelSize:0,extrudeBevelSegments:3},r.parameters),n=Math.abs(t.width),i=Math.abs((u=t.height)!=null?u:t.width),s=Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(h=t.depth)!=null?h:0),o=(d=r.shape)!=null?d:e==null?void 0:e.shape,a=(f=o==null?void 0:o.roundness)!=null?f:t.roundness;o!==void 0&&(o instanceof Lt?(o.width!==n||o.height!==i)&&o.applySize(n,i):o=new Lt(n,i).fromJSON(o),((p=r.parameters)==null?void 0:p.roundness)!==void 0&&((m=r.parameters)==null?void 0:m.roundness)>0&&o.update(!1));let l=o!=null?o:new Lt(n,i);return{parameters:Object.assign(t,{width:n,height:i,depth:s,extrudeDepth:s,roundness:a}),shape:l}}static build(r){let{extrudeDepth:e,extrudeBevelSize:t,extrudeBevelSegments:n,subdivisions:i,roundness:s,surfaceMaxCount:o}=r.parameters;r.shape.roundness=s;let a;return e<=0?a=new Rc(r.shape,i,o):a=new mm(r.shape,e,t,i,n),Object.assign(a,{userData:tt(Ue({},r),{type:"VectorGeometry"})})}};var jx=Math.PI*2,Wx=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,e){var i,s,o;let t=Object.assign({},(i=e==null?void 0:e.parameters)!=null?i:{width:100,depth:0,spikes:128,angle:360,innerRadius:0,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1,surfaceMaxCount:1e3},r.parameters);return{shape:r.shape&&r.shape instanceof Lt?r.shape:new Lt,parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((s=t.height)!=null?s:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(o=t.depth)!=null?o:0)})}}static build(r){let{width:e,height:t,spikes:n,angle:i,innerRadius:s,depth:o,extrudeBevelSize:a,extrudeBevelSegments:l,surfaceMaxCount:c}=r.parameters,u=r.shape,h=e*.5,d=t*.5,f=WL(u,h,d,i*Math.PI/180,n,s);u.isClosed=!0,u.update();let p=Pn.create({shape:u,parameters:{subdivisions:f,surfaceMaxCount:c,depth:o,extrudeBevelSize:a,extrudeBevelSegments:l}});return Object.assign(p,{userData:tt(Ue({},r),{type:"EllipseGeometry"})})}};function WL(r,e,t,n,i,s){if(n>=jx)return i>30||i%4==0?(XL(r,e,t,s),Math.round(i/4)):Jx(r,n,i,e,t,s);let o={x:0,y:t},a=n+Math.PI*.5,l={x:Math.cos(a)*e,y:Math.sin(a)*t},c=Gx({px:o.x,py:o.y,cx:l.x,cy:l.y,rx:e,ry:t,largeArcFlag:n>Math.PI,sweepFlag:!0});return i>30||i%c.length==0?JL(r,o.x,o.y,c,i,e,t,s):Jx(r,n,i,e,t,s)}function JL(r,e,t,n,i,s,o,a){let l=Math.round(i/n.length);r.addPoint($a(e,t));for(let c=0,u=n.length;c0?Xx(r,s,o,a):r.addPoint($a(0,0)),l}function Jx(r,e,t,n,i,s){let o=-e/t;for(let a=0;a<=t;a++){let l=o*a,c=Math.sin(l)*n,u=Math.cos(l)*i;r.addPoint($a(c,u))}return e0?Xx(r,n,i,s):r.addPoint($a(0,0)):(r.removePoint(r.points[r.points.length-1]),s>0&&qx(r,n,i,s)),1}function XL(r,e,t,n=0,i=0,s=0){let o=.5522847498,a=e*o,l=t*o;r.addPoint(Bh(i-e,s,i-e,s-l,i-e,s+l)),r.addPoint(Bh(i,s+t,i-a,s+t,i+a,s+t)),r.addPoint(Bh(i+e,s,i+e,s+l,i+e,s-l)),r.addPoint(Bh(i,s-t,i+a,s-t,i-a,s-t)),n>0&&qx(r,e,t,n)}function $a(r,e){return new vs(Ee.generateUUID(),new O(r,e))}function Bh(r,e,t,n,i,s){let o=$a(r,e);return o.controls[0].position.set(t,n),o.controls[1].position.set(i,s),o}function Xx(r,e,t,n){Yx(r,e,t,n).forEach(s=>r.addPoint(s))}function qx(r,e,t,n){let i=Yx(r,e,t,n),s=new Lt;i.forEach(o=>s.addPoint(o)),s.isClosed=!0,r.shapeHoles.push(s)}function Yx(r,e,t,n){let i=n*e/100,s=i*(Math.abs(t)/Math.abs(e)),o=new O(i/e,s/t),a=r.points.map(l=>l.clone()).reverse();return a.forEach(l=>{l.position.multiply(o);let c=l.controls[0].position.clone().multiply(o),u=l.controls[1].position.clone().multiply(o);l.controls[0].position.copy(u),l.controls[1].position.copy(c)}),a}var Kx=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,e){var a,l,c;let t=Object.assign({},(a=e==null?void 0:e.parameters)!=null?a:{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},r.parameters),n=Math.abs(t.width),i=Math.abs((l=t.height)!=null?l:n),s=Math.abs((c=t.depth)!=null?c:n),o=Math.abs(Math.min(n,s))/2;return{parameters:Object.assign(t,{width:n,height:i,depth:s,radius:o,segments:Math.round(t.segments),pathSegments:Math.round(t.pathSegments),cornerSegments:Math.round(t.cornerSegments)})}}static build(r){let{width:e,height:t,depth:n,radius:i,revolutions:s,segments:o,pathRadius:a,pathType:l,pathSegments:c,cornerRadius:u,cornerSegments:h}=r.parameters,d=new Oh(!1,e,t,n,i,s,o,a,l,c,u,h);return Object.assign(d,{userData:tt(Ue({},r),{type:"HelixGeometry"})})}},Oh=class extends we{constructor(e,t,n,i,s,o,a,l,c,u,h,d){super();let f=e&&o===1;f&&(d=0),h>100&&(h=100);let p=()=>new M,m=new M,v=p(),g=p(),y=p(),x,b,w,_,S,A,T,L,C=p(),U=p(),P=p(),R=p(),G=p(),B=p(),j=p(),ne=p(),le=n-2*l+.001,W=le/o,z=Math.ceil(a*o),D=z+1,K=le/z,q=-le/2,ee=u+1,V=2*Math.PI/u,de=Math.PI/2/d,ae=.01,te=Math.min((1-h/100)*l,l-ae),X=l-te,se=0,$=2,H=d*$+$,Q=ee*H/$,ce=Q+ee*D,ie=ee*(D+H),[N,E,Y]=[3,3,2].map(ke=>Array(ie*ke).fill(0)),re=[],ye=s-l;function pe(ke,ht){let ft=Math.PI/2;A=ht*K,L=2*Math.PI*(A%W)/W+ft,A+=q,T=Math.sin(L)*ye,S=Math.cos(L)*ye,e?ke.set(S,T,A):ke.set(S,A,T)}pe(m,-1e-10),pe(v,0),C.copy(m),pe(m,1);let Ie=m.distanceTo(v),ve=X+te,Fe=Ie*z+2*ve,Ce=te,J=Fe-ve;for(let ke=0;ke<=z;ke++){pe(g,ke),ne.subVectors(g,C).normalize(),C.copy(g),B.copy(g).setComponent(+e+1,0).normalize(),j.crossVectors(ne,B).normalize();let ht=ke===0,ft=ke===z,Bn=ht?3*Math.PI/2:de,Mt=ht?Ce:J,Tn=ht?ee:ce,En=ht?0:ie-ee,Di=ne.clone().multiplyScalar(ht?-X:X).add(g),_r=ne.clone().multiplyScalar(ht?-1:1).normalize();for(let xn=0;xn{N[se*3+Pe]=Di.getComponent(Pe),E[se*3+Pe]=_r.getComponent(Pe)}),Y[se*2]=+ft,Y[se*2+1]=xn/u),v.copy(P).multiplyScalar(te),y.addVectors(g,v);for(let Pe=0;Pe{N[se*3+Nn]=v.getComponent(Nn),E[se*3+Nn]=G.getComponent(Nn)});let Ft=+ht+Math.sin(et);Y[se*2]=(Mt+X*Ft)/Fe,Y[se*2+1]=xn/u}}v.addVectors(g,U),se=Q+ke*ee+xn,[0,1,2].forEach(Pe=>{N[se*3+Pe]=v.getComponent(Pe),E[se*3+Pe]=P.getComponent(Pe)}),Y[se*2]=(ve+ke*Ie)/Fe,Y[se*2+1]=xn/u}}let xe=D+2*d+$,he=1,[Ne,Be]=f?[he,he+D-1]:[0,xe-1];for(let ke=Ne;ke<=Be-1;ke++){let ht=f&&ke===Be-1;for(let ft=0;ft{Array.isArray(l)&&(l.x=l[0],l.y=l[1])});let t=Object.assign({},(s=e==null?void 0:e.parameters)!=null?s:{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},r.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((o=t.height)!=null?o:t.width),depth:Math.abs((a=t.depth)!=null?a:t.width)})}}static build(r){let{points:e,segments:t,verticalSegments:n}=r.parameters,i=new yi;i.moveTo(e[0].x,e[0].y),i.bezierCurveTo(e[1].x,e[1].y,e[2].x,e[2].y,e[3].x,e[3].y);let s=new uo(i.extractPoints(n).shape,t);return s.rotateZ(Math.PI),Object.assign(s,{userData:tt(Ue({},r),{type:"LatheGeometry"})})}};var fr=new me,gm=new Ke,zh=new M,Co=class extends cn{constructor(){super();this.uuid=Ee.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(e){let t=new Dt().getNormalMatrix(e);for(let n=0,i=this.vertices.length;n0)for(let d=0;d0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let e=0,t=this.faces.length;e0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let t=0,n=this.faces.length;t=0;l--){let c=o[l];this.faces.splice(c,1);for(let u=0,h=this.faceVertexUvs.length;u0,b=m.vertexNormals.length>0,w=m.color.r!==1||m.color.g!==1||m.color.b!==1,_=m.vertexColors.length>0,S=0;if(S=u(S,0,0),S=u(S,1,v),S=u(S,2,g),S=u(S,3,y),S=u(S,4,x),S=u(S,5,b),S=u(S,6,w),S=u(S,7,_),n.push(S),n.push(m.a,m.b,m.c),n.push(m.materialIndex),y){let A=this.faceVertexUvs[0][p];n.push(f(A[0]),f(A[1]),f(A[2]))}if(x&&n.push(h(m.normal)),b){let A=m.vertexNormals;n.push(h(A[0]),h(A[1]),h(A[2]))}if(w&&n.push(d(m.color)),_){let A=m.vertexColors;n.push(d(A[0]),d(A[1]),d(A[2]))}}function u(p,m,v){return v?p|1<0&&(e.data.colors=o),l.length>0&&(e.data.uvs=[l]),e.data.faces=n,e}clone(){return new Co().copy(this)}copy(e){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=e.name;let t=e.vertices;for(let d=0,f=t.length;d0){let i=new Float32Array(e.normals.length*3);t.setAttribute("normal",new Re(i,3).copyVector3sArray(e.normals))}if(e.colors.length>0){let i=new Float32Array(e.colors.length*3);t.setAttribute("color",new Re(i,3).copyColorsArray(e.colors))}if(e.uvs.length>0){let i=new Float32Array(e.uvs.length*2);t.setAttribute("uv",new Re(i,2).copyVector2sArray(e.uvs))}if(e.uvs2.length>0){let i=new Float32Array(e.uvs2.length*2);t.setAttribute("uv2",new Re(i,2).copyVector2sArray(e.uvs2))}t.groups=e.groups;for(let i in e.morphTargets){let s=[],o=e.morphTargets[i];for(let a=0,l=o.length;a0){let i=new ge(e.skinIndices.length*4,4);t.setAttribute("skinIndex",i.copyVector4sArray(e.skinIndices))}if(e.skinWeights.length>0){let i=new ge(e.skinWeights.length*4,4);t.setAttribute("skinWeight",i.copyVector4sArray(e.skinWeights))}return e.boundingSphere!==null&&(t.boundingSphere=e.boundingSphere.clone()),e.boundingBox!==null&&(t.boundingBox=e.boundingBox.clone()),t}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(e){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(e)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(e){let t=new we,n=e.geometry;if(e.isPoints||e.isLine){let i=new ge(n.vertices.length*3,3),s=new ge(n.colors.length*3,3);if(t.setAttribute("position",i.copyVector3sArray(n.vertices)),t.setAttribute("color",s.copyColorsArray(n.colors)),n.lineDistances&&n.lineDistances.length===n.vertices.length){let o=new ge(n.lineDistances.length,1);t.setAttribute("lineDistance",o.copyArray(n.lineDistances))}n.boundingSphere!==null&&(t.boundingSphere=n.boundingSphere.clone()),n.boundingBox!==null&&(t.boundingBox=n.boundingBox.clone())}else e.isMesh&&(t=n.toBufferGeometry());return t}};Co.prototype.isGeometry=!0;var $x=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(e){let t=[],n,i,s,o=e.faces;for(i=0;i0,o=i[1]&&i[1].length>0,a=e.morphTargets,l=a.length,c;if(l>0){c=[];for(let g=0;g0){d=[];for(let g=0;g0&&t.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let g=0;g0;)this._smooth(e);return e.computeFaceNormals(),e.computeVertexNormals(),e}_smooth(e){let t=new M,n,i,s,o,a,l=e.vertices,c=e.faces,u=e.faceVertexUvs[0],h=u!==void 0&&u.length>0,d=[],f=new Map;KL(l,c,d,f);let p=[],m,v,g,y,x,b,w;for(let ae of Array.from(f.keys())){for(v=f.get(ae),g=new M,x=3/8,b=1/8,w=v.faces.length,w!=2&&(x=.5,b=0,w!=1),g.addVectors(v.a,v.b).multiplyScalar(x),t.set(0,0,0),o=0;o3&&(_=3/(8*n)),S=1-n*Number(_),A=_,n<=2&&(n==2?(S=3/4,A=1/8):n==1||n==0),U=C.clone().multiplyScalar(S),t.set(0,0,0),o=0;o0?(a===void 0||(o==null?void 0:o.subdivisions)>i)&&(a===void 0&&(a=s),s=new xm(i).modify(a).toBufferGeometry()):(a!==void 0&&(s=a),a=void 0),a!==void 0&&Object.assign(s,{originalGeometry:a}),delete r.geometry,Object.assign(s,{userData:tt(Ue({},r),{type:"NonParametricGeometry"})})}static loadFromUrl(r,e,t){new Ia(t).load(r,i=>{let s=this.normalizeInputs({geometry:i});i.boundingBox.getSize(yn);let o=100/yn.x;Object.assign(s.parameters,{width:100,height:yn.y*o,depth:yn.z*o}),e(this.build(s))})}};var e0=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,e){var i,s,o,a;let t=Object.assign({},(i=e==null?void 0:e.parameters)!=null?i:{width:100,depth:0,spikes:5,cornerRadius:0,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:3},r.parameters);return{shape:r.shape&&r.shape instanceof Lt?r.shape:new Lt,parameters:Object.assign(t,{surfaceMaxCount:((s=t.surfaceMaxCount)!=null?s:t.cornerRadius>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((o=t.height)!=null?o:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(a=t.depth)!=null?a:0)})}}static build(r){let{width:e,height:t,spikes:n,cornerRadius:i,depth:s,extrudeBevelSize:o,extrudeBevelSegments:a,surfaceMaxCount:l}=r.parameters,c=r.shape,u=e*.5,h=t*.5,d=0,f=0,p=2*Math.PI/n;for(let v=0;v0){{let E=z.clone().add(D).multiplyScalar(.5),Y=b.clone().sub(E).normalize(),ye=x.clone().sub(E).normalize().add(Y).normalize().multiplyScalar(-1),pe=ee.clone().sub(q);ne(E,pe,ye,S.angle())}let ie,N;{let E=new M;Oc(L,$,E);let Y=ee.clone().add(K).multiplyScalar(.5);Y=QL(Y,D,b);let re=ee.clone().sub(K);[ie,N]=ne(Y,re,E,P,K.y)}{let E=ie,Y=E.clone().setY(0).normalize(),re=new M(0,-1,0),ye=Y.clone().cross(re);le(E,Y,re,ye)}j.concat(N);{let E=S.angle(),Y=Math.PI-E,re=b.clone();re.y-=o/Math.sin(E-Math.PI/2);let ye=new M,pe=[];for(let ve=0;veh+d,0);return{shape:r.shape&&r.shape instanceof Lt?r.shape:new Lt,parameters:Object.assign(t,{surfaceMaxCount:((l=t.surfaceMaxCount)!=null?l:i>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((c=t.height)!=null?c:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(u=t.depth)!=null?u:0)}),ui:n}}static build(r){let e=r.shape,{width:t,height:n,cornerRadius:i,cornerType:s,depth:o,extrudeBevelSize:a,extrudeBevelSegments:l,surfaceMaxCount:c}=r.parameters,u={x:t*.5,y:n*.5},h={x:-u.x,y:-u.y},d={x:u.x,y:u.y};function f(w,_,S){return _>t&&S>n?Math.min(w*t/_,w*n/S):_>t?w*t/_:S>n?w*n/S:w}let p=[];p[0]=i[0]===0?0:f(i[0],i[0]+i[3],i[0]+i[1]),p[1]=i[1]===0?0:f(i[1],i[1]+i[2],i[1]+i[0]),p[2]=i[2]===0?0:f(i[2],i[2]+i[1],i[2]+i[3]),p[3]=i[3]===0?0:f(i[3],i[3]+i[0],i[3]+i[2]);let m=h.x,v=d.x,g=d.y,y=h.y;e.addPoint(e.createPoint(m,g)),e.addPoint(e.createPoint(v,g)),e.addPoint(e.createPoint(v,y)),e.addPoint(e.createPoint(m,y)),e.isClosed=!0;let x=!0;for(let w=0,_=e.points.length;w<_;w++)e.points[w].roundness=p[w],w>0&&p[w]!==p[w-1]&&(x=!1);x&&(e.roundness=p[0]),e.useCubicForRoundedCorners=s!==1,e.update();let b=Pn.create({shape:e,parameters:{surfaceMaxCount:c,depth:o,extrudeBevelSize:a,extrudeBevelSegments:l}});return Object.assign(b,{userData:tt(Ue({},r),{type:"RectangleGeometry"})})}};var i0=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,e){var n,i,s;let t=Object.assign({},(n=e==null?void 0:e.parameters)!=null?n:{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},r.parameters);return{parameters:Object.assign(t,{width:Math.abs(t.width),height:Math.abs((i=t.height)!=null?i:t.width),depth:Math.abs((s=t.depth)!=null?s:t.width)})}}static build(r){let{width:e=100,height:t=e,depth:n=e,widthSegments:i=64,heightSegments:s=64,phiStart:o,phiLength:a,thetaStart:l,thetaLength:c}=r.parameters,u=new Ji(.5*e,i,s,o,a,l,c);return u.scale(1,t/e,n/e),Object.assign(u,{userData:tt(Ue({},r),{type:"SphereGeometry"})})}};var r0=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,e){var i,s,o,a;let t=Object.assign({},(i=e==null?void 0:e.parameters)!=null?i:{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeDepth:0,extrudeBevelSize:0,extrudeBevelSegments:1},r.parameters);return{shape:r.shape&&r.shape instanceof Lt?r.shape:new Lt,parameters:Object.assign(t,{surfaceMaxCount:((s=t.surfaceMaxCount)!=null?s:t.cornerRadius>0)?1e3:100,width:Math.abs(t.width),height:Math.abs((o=t.height)!=null?o:t.width),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(a=t.depth)!=null?a:0)})}}static build(r){let{width:e,height:t,innerRadiusPercent:n,spikes:i,cornerRadius:s,angle:o,depth:a,extrudeBevelSize:l,extrudeBevelSegments:c,surfaceMaxCount:u}=r.parameters,h=r.shape,d=e*.5,f=t*.5,p=0,m=0,v=o*Math.PI/360/i,g=Math.PI/2*3*-1,y=d*n/100,x=f*n/100;if(i==3&&n==50){v=2*Math.PI/i;for(let w=0;w0)?1e3:100,width:Math.abs(t.width),height:Math.abs((o=t.height)!=null?o:t.width*(t.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(t.depth!==void 0&&t.depth===0&&t.extrudeDepth>0?t.extrudeDepth:(a=t.depth)!=null?a:0)})}}static build(r){let{width:e=100,height:t,cornerRadius:n,depth:i,extrudeBevelSize:s,extrudeBevelSegments:o,isRect:a,surfaceMaxCount:l}=r.parameters,c=r.shape,u=e*.5,h=t*.5;a?(c.addPoint(c.createPoint(-u,h)),c.addPoint(c.createPoint(u,-h)),c.addPoint(c.createPoint(-u,-h))):(c.addPoint(c.createPoint(0,h)),c.addPoint(c.createPoint(u,-h)),c.addPoint(c.createPoint(-u,-h))),c.isClosed=!0;for(let f=0,p=c.points.length;f[]))}let f=Math.log10(1/t),p=Math.pow(10,f);for(let v=0;v{$L=r});var ot;c0.then(r=>{ot=r});var Fc=new M,pr=new M,zc=new me;function u0(r,...e){let t=0;for(let s of e)t+=s.length;let n=new r(t),i=0;for(let s of e)n.set(s,i),i+=s.length;return n}var nl,Qn=(nl=class{static create(r){return this.build(this.normalizeInputs(r))}static normalizeInputs(r,e){var a,l;let t=(a=r.geometry)!=null?a:e==null?void 0:e.geometry,{width:n,height:i,depth:s}=t.userData.parameters,o=Ue(Ue({},(l=e==null?void 0:e.parameters)!=null?l:{width:n,height:i,depth:s,subdivisions:1}),r.parameters);return{parameters:tt(Ue({},o),{width:Math.abs(o.width),height:Math.abs(o.height),depth:Math.abs(o.depth)}),geometry:t,subdivPointer:e==null?void 0:e.subdivPointer,smoothShading:e==null?void 0:e.smoothShading}}static build(r){let e=r.geometry,t=r.geometry.originalGeometry,{width:n,height:i,depth:s,subdivisions:o}=r.parameters,a=e.userData.parameters;Fc.set(a.width,a.height,a.depth),(n!==Fc.x||i!==Fc.y||s!==Fc.z)&&(pr.set(n,i,s).divide(Fc),zc.makeScale(isNaN(pr.x)||pr.x===0?1:pr.x,isNaN(pr.y)||pr.y===0?1:pr.y,isNaN(pr.z)||pr.z===0?1:pr.z),e.applyMatrix4(zc),t?(t.applyMatrix4(zc),t.getAttribute("positionWASM").applyMatrix4(zc)):e.getAttribute("positionWASM").applyMatrix4(zc));let l,c;return t!==void 0?(c=e,l=t):l=e,r.subdivPointer===void 0&&(this.allocate(l),l==null||l.dispose(),l=this.buildLevel(!0,r.smoothShading),l.computeBoundingSphere(),r.subdivPointer=this.activeSubdivPtr,this.getTopologicalMesh(l)),o>0?((o!==(a==null?void 0:a.subdivisions)||t===void 0)&&(r.subdivPointer!==this.activeSubdivPtr&&(this.activeSubdivPtr=r.subdivPointer),c==null||c.dispose(),ot.set_destination_refinement_level(r.subdivPointer,o),c=this.buildLevel(!1,r.smoothShading),c.boundingSphere=l.boundingSphere),e=c,t=l,delete t.userData.parameters):(e=l,c==null||c.dispose(),t=void 0),Object.assign(e,{originalGeometry:t,subdivPointer:this.activeSubdivPtr,userData:{parameters:r.parameters,type:"SubdivGeometry"}})}static allocate(r){var x;let e,t,n,i=[],s=[];if(r.userData.type!=="SubdivGeometry"){let b=tl.mergeVertices(r,(x=this.mergeVerticesToleranceExceptions[r.userData.type])!=null?x:1.1);e=b.attributes.position.array;let w=b.getIndex().array,_=w.length;switch(r.userData.type){case"TorusGeometry":case"TorusKnotGeometry":case"CubeGeometry":t=new Uint32Array(_/3*2),n=new Uint8Array(_/6).fill(4);for(let U=0,P=0;U<_;U+=6)t[P++]=w[U],t[P++]=w[U+1],t[P++]=w[U+4],t[P++]=w[U+5];break;case"SphereGeometry":case"HelixGeometry":case"CylinderGeometry":case"ConeGeometry":let S,A;if(r.userData.type==="SphereGeometry")A=r.parameters.heightSegments,S=r.parameters.widthSegments;else if(r.userData.type==="CylinderGeometry")A=r.parameters.heightSegments+2,S=r.parameters.radialSegments;else if(r.userData.type==="ConeGeometry")A=r.parameters.heightSegments+1,S=r.parameters.radialSegments;else{let{pathSegments:U,segments:P,revolutions:R}=r.userData.parameters;A=Math.ceil(P*R)+2,S=U}t=new Uint32Array(2*S*3+(A-2)*S*4),n=new Uint8Array(2*S+(A-2)*S);let T=0,L=0,C=0;if(r.userData.type==="SphereGeometry"||r.userData.type==="HelixGeometry"){for(;L<3*S;)t[L++]=w[T++],t[L++]=w[T++],t[L++]=w[T++],n[C++]=3;for(;L<3*S+4*(A-2)*S;T+=6)t[L++]=w[T],t[L++]=w[T+1],t[L++]=w[T+4],t[L++]=w[T+5],n[C++]=4}else for(;L<4*(A-2)*S;T+=6)t[L++]=w[T],t[L++]=w[T+1],t[L++]=w[T+4],t[L++]=w[T+5],n[C++]=4;for(;L>2,(n>>2)+i),o=s.subarray(4,4+4),a=0,l=ot.HEAPU32[s[a]>>2],c=ot.HEAPF32.subarray(l>>2,(l>>2)+o[a]);a++;let u=ot.HEAPU32[s[a]>>2],h=ot.HEAPF32.subarray(u>>2,(u>>2)+o[a]);a++;let d=ot.HEAPU32[s[a]>>2],f=ot.HEAPU32.subarray(d>>2,(d>>2)+o[a]);a++;let p=ot.HEAPU32[s[a]>>2],m=ot.HEAPU32.subarray(p>>2,(p>>2)+o[a]);if(a++,t===void 0){let v=new we;if(v.setIndex(new is(m,1)),v.setAttribute("position",new ge(c,3)),v.setAttribute("normal",new ge(h,3)),r){v.setAttribute("faceMap",new is(f,1));let g=new Float32Array(h.length/3*4).fill(0);v.setAttribute("color",new Re(g,4))}return ot.free_mesh_data(n),v.userData.type="SubdivGeometry",v}t.getAttribute("position").copyArray(c),t.getAttribute("normal").copyArray(h),t.attributes.position.needsUpdate=!0,t.attributes.normal.needsUpdate=!0,ot.free_mesh_data(n)}static buildControlCageWireframe(r,e){let t=ot.get_wireframe_data_for_base_level(this.activeSubdivPtr),n=4,i=ot.HEAPU32.subarray(t>>2,(t>>2)+n),s=i.subarray(2,2+2),o=0,a=ot.HEAPU32[i[o]>>2],l=ot.HEAPF32.subarray(a>>2,(a>>2)+s[o]);o++;let c=ot.HEAPU32[i[o]>>2],u=ot.HEAPU32.subarray(c>>2,(c>>2)+s[o]);if(r===void 0){let h=new we;h.setAttribute("position",new ge(l,3));let d=new Float32Array(l.length);for(let f=0,p=l.length;f0?(o=this.buildLevel(!1,t),i=o,s=n,delete s.userData.parameters):(i=n,s=void 0),Object.assign(i,{originalGeometry:s,userData:{parameters:r,type:"SubdivGeometry"}})}static getTopologicalMesh(r){let e=ot.get_topological_data(this.activeSubdivPtr),t=6,n=ot.HEAPU32.subarray(e>>2,(e>>2)+t),i=n.subarray(3,3+3),s=0,o=ot.HEAPU32[n[s]>>2],a=ot.HEAPF32.subarray(o>>2,(o>>2)+i[s]);s++;let l=ot.HEAPU32[n[s]>>2],c=ot.HEAPU32.subarray(l>>2,(l>>2)+i[s]);s++;let u=ot.HEAPU32[n[s]>>2],h=ot.HEAPU32.subarray(u>>2,(u>>2)+i[s]);r.setAttribute("positionWASM",new ge(a,3)),r.setAttribute("indexWASM",new is(c,1)),r.setAttribute("verticesPerFaceWASM",new Sf(h,1)),ot.free_topological_data(e)}},nl.checkpoints=[],nl.checkpointCurrentIndex=-1,nl.maxCheckpoints=30,nl.mergeVerticesToleranceExceptions={DodecahedronGeometry:2},nl);var Gc={};fA(Gc,{addBarycentricAttribute:()=>n2,fixUvs:()=>r2,loadFromUrl:()=>i2,resizeGeometry:()=>t2,roundShapePolygon:()=>e2});var h0=function(r,e){let t=e.x-r.x,n=e.y-r.y,i=Math.sqrt(t*t+n*n),s=t/i,o=n/i,a=Math.atan2(o,s);return{x:t,y:n,len:i,nx:s,ny:o,ang:a}},e2=(r,e,t)=>{let n,i,s,o,a,l,c,u,h,d,f,p,m,v,g=e.length;for(o=e[g-2],r.curves=[],n=1;n0&&(h=-1,d=!0),p=f/2,v=Math.abs(Math.cos(p)*t/Math.sin(p)),v>Math.min(y.len/2,x.len/2)?(v=Math.min(y.len/2,x.len/2),m=Math.abs(v*Math.sin(p)/Math.cos(p))):m=t,i=a.x+x.nx*v,s=a.y+x.ny*v,i+=-x.ny*m*h,s+=x.nx*m*h,r.absarc(i,s,m,y.ang+Math.PI/2*h,x.ang-Math.PI/2*h,d),o=a,a=l}r.closePath()},t2=(r,{width:e,height:t,depth:n})=>{e=Math.abs(e),t=Math.abs(t),n=Math.abs(n);let i=r.userData.parameters,s,o,a;e===0?(e=i.width,s=1):s=e/i.width,t===0?(t=i.height,o=1):o=t/i.height,n===0?(n=i.depth,a=1):a=n/i.depth,r.scale(s,o,a),i.width=e,i.height=t,i.depth=n},n2=(r,e)=>{let t=[new M(1,0,0),new M(0,1,0),new M(0,0,1)],n=r.attributes.position,i=new Float32Array(n.count*3);for(let s=0,o=n.count;snew Promise(e=>{new Ia().load(r,n=>e(n))}),r2=(r,e,t)=>{let n=r.getAttribute("uv");if(n)for(let i=0;iUc[r.type].create(r);var Vh=r=>"isEntity"in r,ai=r=>"isAbstractMesh"in r;var Hh=r=>"objectHelper"in r;var il=new tn,Dn=new M,Je=new M,vn=new me;function s2(r,e,t=0,n=e.count){let i=1/0,s=1/0,o=1/0,a=-1/0,l=-1/0,c=-1/0;for(let u=t;ua&&(a=h),d>l&&(l=d),f>c&&(c=f)}return r.min.set(i,s,o),r.max.set(a,l,c),r}var d0=(r,e,t,n)=>{var i,s;if(ai(r)){let o=r.geometry.userData.parameters,a=r.geometry.getAttribute("position");r.geometry.userData.type==="SubdivGeometry"?Dn.copy(((i=r.geometry.originalGeometry)!=null?i:r.geometry).boundingSphere.center):(s2(il,a,r.geometry.drawRange.start,r.geometry.drawRange.count<1/0?r.geometry.drawRange.count:a.count),il.getCenter(Dn)),r.forceComputeSize?il.getSize(Je).multiplyScalar(.5):Je.set(o.width,o.height,(s=o.depth)!=null?s:0).multiplyScalar(.5)}else if(Hh(r)&&n===!0){let o=r.geometryHelper.getAttribute("position");il.setFromArray(o.array),il.getCenter(Dn),il.getSize(Je).multiplyScalar(.5)}else Dn.setScalar(0),Je.setScalar(0);vn.copy(e).multiply(r.matrixWorld),Je.x===0&&Je.y===0&&Je.z===0?t.push(new M(Dn.x,Dn.y,Dn.z).applyMatrix4(vn)):t.push(new M(-Je.x,Je.y,Je.z).add(Dn).applyMatrix4(vn),new M(-Je.x,-Je.y,Je.z).add(Dn).applyMatrix4(vn),new M(Je.x,-Je.y,Je.z).add(Dn).applyMatrix4(vn),new M(Je.x,Je.y,Je.z).add(Dn).applyMatrix4(vn),new M(-Je.x,Je.y,-Je.z).add(Dn).applyMatrix4(vn),new M(-Je.x,-Je.y,-Je.z).add(Dn).applyMatrix4(vn),new M(Je.x,-Je.y,-Je.z).add(Dn).applyMatrix4(vn),new M(Je.x,Je.y,-Je.z).add(Dn).applyMatrix4(vn))},jh=class extends tn{constructor(e,t){super(e,t);this.transform=new me;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}setFromObjectSize(e,t=!1){e.updateWorldMatrix(!1,!1),this.makeEmpty(),this.transform=e.matrixWorld;let n=new me().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,n,t)}expandByObjectSize(e,t,n=!1){let i=[];return n===!0?e.traverseEntity(s=>d0(s,t,i,"enableHelper"in e&&e.enableHelper)):d0(e,t,i,"enableHelper"in e&&e.enableHelper),this.setFromPoints(i)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.transform),e}getPositionToCenter(e){return e=super.getCenter(e),e}computeVertices(){this.getSize(Je).multiplyScalar(.5),this.getCenter(Dn),vn.copy(this.transform).setPosition(Dn),this.vertices=[new M(-Je.x,Je.y,Je.z).applyMatrix4(vn),new M(-Je.x,-Je.y,Je.z).applyMatrix4(vn),new M(Je.x,-Je.y,Je.z).applyMatrix4(vn),new M(Je.x,Je.y,Je.z).applyMatrix4(vn),new M(-Je.x,Je.y,-Je.z).applyMatrix4(vn),new M(-Je.x,-Je.y,-Je.z).applyMatrix4(vn),new M(Je.x,-Je.y,-Je.z).applyMatrix4(vn),new M(Je.x,Je.y,-Je.z).applyMatrix4(vn)]}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=[new qn(this.vertices[0],this.vertices[3]),new qn(this.vertices[1],this.vertices[2]),new qn(this.vertices[5],this.vertices[6]),new qn(this.vertices[4],this.vertices[7]),new qn(this.vertices[0],this.vertices[1]),new qn(this.vertices[3],this.vertices[2]),new qn(this.vertices[7],this.vertices[6]),new qn(this.vertices[4],this.vertices[5]),new qn(this.vertices[0],this.vertices[4]),new qn(this.vertices[1],this.vertices[5]),new qn(this.vertices[2],this.vertices[6]),new qn(this.vertices[3],this.vertices[7])],this.centerEdges=this.edges.map(e=>e.getCenter(new M))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=[new M().copy(this.vertices[0]).sub(this.vertices[2]).multiplyScalar(.5).add(this.vertices[2]),new M().copy(this.vertices[7]).sub(this.vertices[5]).multiplyScalar(.5).add(this.vertices[5]),new M().copy(this.vertices[4]).sub(this.vertices[1]).multiplyScalar(.5).add(this.vertices[1]),new M().copy(this.vertices[3]).sub(this.vertices[6]).multiplyScalar(.5).add(this.vertices[6]),new M().copy(this.vertices[4]).sub(this.vertices[3]).multiplyScalar(.5).add(this.vertices[3]),new M().copy(this.vertices[1]).sub(this.vertices[6]).multiplyScalar(.5).add(this.vertices[6])]}};function wm(r,e,t,n){if(n===0)return t.copy(r);if(n===1)return t.copy(e);let i=r.w*e.w+r.x*e.x+r.y*e.y+r.z*e.z;if(i>=1)return t.copy(r);let s=1-i*i;if(s<=Number.EPSILON){let u=1-n;return t.w=u*r.w+n*e.w,t.x=u*r.x+n*e.x,t.y=u*r.y+n*e.y,t.z=u*r.z+n*e.z,t.normalize(),t}let o=Math.sqrt(s),a=Math.atan2(o,i),l=Math.sin((1-n)*a)/o,c=Math.sin(n*a)/o;return t.w=r.w*l+e.w*c,t.x=r.x*l+e.x*c,t.y=r.y*l+e.y*c,t.z=r.z*l+e.z*c,t}function o2(r,e,t){let n=r.clone().sub(e),i=t.clone().sub(e);return n.dot(i)/e.distanceTo(t)}function a2(r,e){return r.clone().dot(e)/e.length()}function l2(r,e,t,n,i=!1){let s=t-r,o=n-e,a=Math.atan2(o,s)*(180/Math.PI);return i&&a<0&&(a=360+a),a}function c2(r,e,t){let n=r.clone().sub(e),i=t.clone().sub(e),s=e.distanceTo(r),o=e.distanceTo(t),a=n.dot(i)/(s*o);return Math.acos(a)}function u2(r,e){let t=(r+"e").split("e");return t=(Math.round(Number(t[0]+"e"+(+t[1]+e)))+"e").split("e"),+(t[0]+"e"+(+t[1]-e))}function h2(r,e,t){let n=r[e];r[e]=r[t],r[t]=n}var d2=str=>eval(str.replace(/[^0-9()+\-*/.]/g,"")),C5={slerp:wm,getProjection:o2,projectOnVector:a2,angle2D:l2,angle3D:c2,round:u2,swapArrayValues:h2,evaluate:d2};var Io=new Set;var $i;(function(a){a[a.LINEAR=0]="LINEAR",a[a.EASE=1]="EASE",a[a.EASE_IN=2]="EASE_IN",a[a.EASE_OUT=3]="EASE_OUT",a[a.EASE_IN_OUT=4]="EASE_IN_OUT",a[a.CUBIC=5]="CUBIC",a[a.SPRING=6]="SPRING"})($i||($i={}));var rl=class{constructor(){this.easing=4;this.duration=1e3;this.delay=0;this.cubicControls=[.5,.05,.1,.3];this.springParameters={mass:1,stiffness:80,damping:10,velocity:0};this.repeat=!1;this.cycle=!1;this.rewind=!1}get sp_mass(){return this.springParameters.mass}set sp_mass(e){this.springParameters.mass=e}get sp_stiffness(){return this.springParameters.stiffness}set sp_stiffness(e){this.springParameters.stiffness=e}get sp_damping(){return this.springParameters.damping}set sp_damping(e){this.springParameters.damping=e}get sp_velocity(){return this.springParameters.velocity}set sp_velocity(e){this.springParameters.velocity=e}copy(e){return this.easing=e.easing,this.duration=e.duration,this.delay=e.delay,this.cubicControls=[...e.cubicControls],this.springParameters=Ue({},e.springParameters),this.repeat=e.repeat,this.cycle=e.cycle,this.rewind=e.rewind,this}clone(){return new rl().copy(this)}toJSON(){let e={easing:this.easing,duration:this.duration,delay:this.delay,cubicControls:this.cubicControls,springParameters:Ue({},this.springParameters)};return this.repeat===!0&&(e.repeat=!0),this.cycle===!0&&(e.cycle=!0),this.rewind===!0&&(e.rewind=!0),this.object!==void 0&&(e.object=this.object.uuid),this.state!==void 0&&(e.state=this.state.uuid),e}fromJSON(e,t,n){return this.easing=e.easing,this.duration=e.duration,this.delay=e.delay,this.cubicControls=[...e.cubicControls],this.springParameters.mass=e.springParameters.mass,this.springParameters.stiffness=e.springParameters.stiffness,this.springParameters.damping=e.springParameters.damping,this.springParameters.velocity=e.springParameters.velocity,e.repeat!==void 0&&(this.repeat=e.repeat),e.cycle!==void 0&&(this.cycle=e.cycle),e.rewind!==void 0&&(this.rewind=e.rewind),e.object!==void 0&&(this.object=t[e.object]),e.state!==void 0&&(this.state=n[e.state]),this}};function f2(){return["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}var Ze;(function(h){h[h.MOUSE_DOWN=0]="MOUSE_DOWN",h[h.MOUSE_UP=1]="MOUSE_UP",h[h.MOUSE_HOVER=2]="MOUSE_HOVER",h[h.MOUSE_ENTER=3]="MOUSE_ENTER",h[h.MOUSE_LEAVE=4]="MOUSE_LEAVE",h[h.KEY_DOWN=5]="KEY_DOWN",h[h.KEY_UP=6]="KEY_UP",h[h.START=7]="START",h[h.OPEN_LINK=8]="OPEN_LINK",h[h.LOOK_AT=9]="LOOK_AT",h[h.FOLLOW=10]="FOLLOW"})(Ze||(Ze={}));var sl=class{constructor(e,t){this.targets=[];this.ui={isCollapsed:!1};this._type=e,this.key=t}get type(){return this._type}set type(e){this._type=e,e===9?this.distance=1e3:this.distance=void 0,e!==5&&e!==6&&(this.key=void 0)}newTarget(e){let t=new rl;if(t.object=e,e!==void 0){let n=e.interaction.states;n.length>0&&(t.state=n[n.length-1])}return this.targets.push(t),Io.add(t),t}addTarget(e,t=0){this.targets.splice(t,0,e),Io.add(e)}removeTarget(e){Io.delete(this.targets[e]),this.targets.splice(e,1)}dispatchReverse(){for(let e=0,t=this.targets.length;e0){e.targets=[];for(let t=0,n=this.targets.length;ti.clone())})}else this.material={layersList:e.material.layersList.map(t=>t.clone())};return e.camera!==void 0&&(this.camera={zoomPersp:e.camera.zoomPersp,zoomOrtho:e.camera.zoomOrtho,targetOffset:e.camera.targetOffset}),this}clone(){return new bs().copy(this)}toJSON(e){let t={uuid:this.uuid,name:this.name,position:this.position.toArray(),rotation:this.rotation.toArray(),scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};if(this.geometry!==void 0&&(t.geometry={width:this.geometry.width,height:this.geometry.height,depth:this.geometry.depth}),this.material!==void 0)if(this.material instanceof Array){t.material=[];for(let n=0,i=this.material.length;ns.toJSON(e))})}else t.material={layersList:this.material.layersList.map(n=>n.toJSON(e))};return this.camera!==void 0&&(t.camera={zoomPersp:this.camera.zoomPersp,zoomOrtho:this.camera.zoomOrtho,targetOffset:this.camera.targetOffset}),t}fromJSON(e,t){var n;if(this.uuid=e.uuid,this.name=e.name,this.position.fromArray(e.position),this.rotation.fromArray(e.rotation),this.scale.fromArray(e.scale),this.hiddenMatrix.fromArray(e.hiddenMatrix),e.geometry!==void 0&&(this.geometry={width:e.geometry.width,height:e.geometry.height,depth:e.geometry.depth}),e.material!==void 0)if(e.material instanceof Array){this.material=[];for(let i=0,s=e.material.length;ikp(o,t))})}else this.material={layersList:e.material.layersList.map(i=>kp(i,t))};return e.camera!==void 0&&(this.camera={zoomPersp:e.camera.zoomPersp,zoomOrtho:e.camera.zoomOrtho,targetOffset:(n=e.camera.targetOffset)!=null?n:-1}),this}};"use strict";var f0={update:null,begin:null,loopBegin:null,changeBegin:null,change:null,changeComplete:null,loopComplete:null,complete:null,loop:1,direction:"normal",autoplay:!0,timelineOffset:0,rewind:!0},Sm={duration:1e3,delay:0,endDelay:0,easing:"easeOutElastic(1, .5)",round:0},p2=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","perspective","matrix","matrix3d"],Wh={CSS:{},springs:{}};function mr(r,e,t){return Math.min(Math.max(r,e),t)}function Vc(r,e){return r.indexOf(e)>-1}function Mm(r,e){return r.apply(null,e)}var qe={arr:function(r){return Array.isArray(r)},obj:function(r){return Vc(Object.prototype.toString.call(r),"Object")},pth:function(r){return qe.obj(r)&&r.hasOwnProperty("totalLength")},svg:function(r){return r instanceof SVGElement},inp:function(r){return r instanceof HTMLInputElement},dom:function(r){return!("isNode"in r)&&(r.nodeType||qe.svg(r))},str:function(r){return typeof r=="string"},fnc:function(r){return typeof r=="function"},und:function(r){return typeof r=="undefined"},hex:function(r){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(r)},rgb:function(r){return/^rgb/.test(r)},hsl:function(r){return/^hsl/.test(r)},col:function(r){return qe.hex(r)||qe.rgb(r)||qe.hsl(r)},key:function(r){return!f0.hasOwnProperty(r)&&!Sm.hasOwnProperty(r)&&r!=="targets"&&r!=="keyframes"}};function p0(r){var e=/\(([^)]+)\)/.exec(r);return e?e[1].split(",").map(function(t){return parseFloat(t)}):[]}function m0(r,e){var t=p0(r),n=mr(qe.und(t[0])?1:t[0],.1,100),i=mr(qe.und(t[1])?100:t[1],.1,100),s=mr(qe.und(t[2])?10:t[2],.1,100),o=mr(qe.und(t[3])?0:t[3],.1,100),a=Math.sqrt(i/n),l=s/(2*Math.sqrt(i*n)),c=l<1?a*Math.sqrt(1-l*l):0,u=1,h=l<1?(l*a+-o)/c:-o+a;function d(p){var m=e?e*p/1e3:p;return l<1?m=Math.exp(-m*l*a)*(u*Math.cos(c*m)+h*Math.sin(c*m)):m=(u+h*m)*Math.exp(-m*a),p===0||p===1?p:1-m}function f(){var p=Wh.springs[r];if(p)return p;for(var m=1/6,v=0,g=0;;)if(v+=m,d(v)===1){if(g++,g>=16)break}else g=0;var y=v*m*1e3;return Wh.springs[r]=y,y}return e?d:f}function m2(r){return r===void 0&&(r=10),function(e){return Math.ceil(mr(e,1e-6,1)*r)*(1/r)}}var g2=function(){var r=11,e=1/(r-1);function t(u,h){return 1-3*h+3*u}function n(u,h){return 3*h-6*u}function i(u){return 3*u}function s(u,h,d){return((t(h,d)*u+n(h,d))*u+i(h))*u}function o(u,h,d){return 3*t(h,d)*u*u+2*n(h,d)*u+i(h)}function a(u,h,d,f,p){var m,v,g=0;do v=h+(d-h)/2,m=s(v,f,p)-u,m>0?d=v:h=v;while(Math.abs(m)>1e-7&&++g<10);return v}function l(u,h,d,f){for(var p=0;p<4;++p){var m=o(h,d,f);if(m===0)return h;var v=s(h,d,f)-u;h-=v/m}return h}function c(u,h,d,f){if(!(0<=u&&u<=1&&0<=d&&d<=1))return;var p=new Float32Array(r);if(u!==h||d!==f)for(var m=0;m=.001?l(g,_,u,d):S===0?_:a(g,y,y+e,u,d)}return function(g){return u===h&&d===f||g===0||g===1?g:s(v(g),h,f)}}return c}(),g0=function(){var r={linear:function(){return function(n){return n}}},e={Sine:function(){return function(n){return 1-Math.cos(n*Math.PI/2)}},Circ:function(){return function(n){return 1-Math.sqrt(1-n*n)}},Back:function(){return function(n){return n*n*(3*n-2)}},Bounce:function(){return function(n){for(var i,s=4;n<((i=Math.pow(2,--s))-1)/11;);return 1/Math.pow(4,3-s)-7.5625*Math.pow((i*3-2)/22-n,2)}},Elastic:function(n,i){n===void 0&&(n=1),i===void 0&&(i=.5);var s=mr(n,1,10),o=mr(i,.1,2);return function(a){return a===0||a===1?a:-s*Math.pow(2,10*(a-1))*Math.sin((a-1-o/(Math.PI*2)*Math.asin(1/s))*(Math.PI*2)/o)}}},t=["Quad","Cubic","Quart","Quint","Expo"];return t.forEach(function(n,i){e[n]=function(){return function(s){return Math.pow(s,i+2)}}}),Object.keys(e).forEach(function(n){var i=e[n];r["easeIn"+n]=i,r["easeOut"+n]=function(s,o){return function(a){return 1-i(s,o)(1-a)}},r["easeInOut"+n]=function(s,o){return function(a){return a<.5?i(s,o)(a*2)/2:1-i(s,o)(a*-2+2)/2}}}),r}();function Am(r,e){if(qe.fnc(r))return r;var t=r.split("(")[0],n=g0[t],i=p0(r);switch(t){case"spring":return m0(r,e);case"cubicBezier":return Mm(g2,i);case"steps":return Mm(m2,i);default:return Mm(n,i)}}function y0(r){try{var e=document.querySelectorAll(r);return e}catch(t){return}}function Jh(r,e){for(var t=r.length,n=arguments.length>=2?arguments[1]:void 0,i=[],s=0;s1&&(p-=1),p<1/6?d+(f-d)*6*p:p<1/2?f:p<2/3?d+(f-d)*(2/3-p)*6:d}var a,l,c;if(n==0)a=l=c=i;else{var u=i<.5?i*(1+n):i+n-i*n,h=2*i-u;a=o(h,u,t+1/3),l=o(h,u,t),c=o(h,u,t-1/3)}return"rgba("+a*255+","+l*255+","+c*255+","+s+")"}function b2(r){if(qe.rgb(r))return y2(r);if(qe.hex(r))return v2(r);if(qe.hsl(r))return x2(r)}function Gr(r){var e=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(r);if(e)return e[1]}function w2(r){if(Vc(r,"translate")||r==="perspective")return"px";if(Vc(r,"rotate")||Vc(r,"skew"))return"deg"}function Nm(r,e){return qe.fnc(r)?r(e.target,e.id,e.total):r}function gr(r,e){return r.getAttribute(e)}function Cm(r,e,t){var n=Gr(e);if(_m([t,"deg","rad","turn"],n))return e;var i=Wh.CSS[e+t];if(!qe.und(i))return i;var s=100,o=document.createElement(r.tagName),a=r.parentNode&&r.parentNode!==document?r.parentNode:document.body;a.appendChild(o),o.style.position="absolute",o.style.width=s+t;var l=s/o.offsetWidth;a.removeChild(o);var c=l*parseFloat(e);return Wh.CSS[e+t]=c,c}function x0(r,e,t){if(e in r.style){var n=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),i=r.style[e]||getComputedStyle(r).getPropertyValue(n)||"0";return t?Cm(r,i,t):i}}function Lm(r,e){if(qe.dom(r)&&!qe.inp(r)&&(gr(r,e)||qe.svg(r)&&r[e]))return"attribute";if(qe.dom(r)&&_m(p2,e))return"transform";if(qe.dom(r)&&e!=="transform"&&x0(r,e))return"css";if(r[e]!=null)return"object"}function b0(r){if(!!qe.dom(r)){for(var e=r.style.transform||"",t=/(\w+)\(([^)]*)\)/g,n=new Map,i;i=t.exec(e);)n.set(i[1],i[2]);return n}}function S2(r,e,t,n){var i=Vc(e,"scale")?1:0+w2(e),s=b0(r).get(e)||i;return t&&(t.transforms.list.set(e,s),t.transforms.last=e),n?Cm(r,s,n):s}function Im(r,e,t,n){switch(Lm(r,e)){case"transform":return S2(r,e,n,t);case"css":return x0(r,e,t);case"attribute":return gr(r,e);default:return r[e]||0}}function Pm(r,e){var t=/^(\*=|\+=|-=)/.exec(r);if(!t)return r;var n=Gr(r)||0,i=parseFloat(e),s=parseFloat(r.replace(t[0],""));switch(t[0][0]){case"+":return i+s+n;case"-":return i-s+n;case"*":return i*s+n}}function w0(r,e){if(qe.col(r))return b2(r);if(/\s/g.test(r))return r;var t=Gr(r),n=t?r.substr(0,r.length-t.length):r;return e?n+e:n}function Dm(r,e){return Math.sqrt(Math.pow(e.x-r.x,2)+Math.pow(e.y-r.y,2))}function M2(r){return Math.PI*2*gr(r,"r")}function A2(r){return gr(r,"width")*2+gr(r,"height")*2}function _2(r){return Dm({x:gr(r,"x1"),y:gr(r,"y1")},{x:gr(r,"x2"),y:gr(r,"y2")})}function S0(r){for(var e=r.points,t=0,n,i=0;i0&&(t+=Dm(n,s)),n=s}return t}function T2(r){var e=r.points;return S0(r)+Dm(e.getItem(e.numberOfItems-1),e.getItem(0))}function M0(r){if(r.getTotalLength)return r.getTotalLength();switch(r.tagName.toLowerCase()){case"circle":return M2(r);case"rect":return A2(r);case"line":return _2(r);case"polyline":return S0(r);case"polygon":return T2(r)}}function E2(r){var e=M0(r);return r.setAttribute("stroke-dasharray",e),e}function N2(r){for(var e=r.parentNode;qe.svg(e)&&qe.svg(e.parentNode);)e=e.parentNode;return e}function A0(r,e){var t=e||{},n=t.el||N2(r),i=n.getBoundingClientRect(),s=gr(n,"viewBox"),o=i.width,a=i.height,l=t.viewBox||(s?s.split(" "):[0,0,o,a]);return{el:n,viewBox:l,x:l[0]/1,y:l[1]/1,w:o/l[2],h:a/l[3]}}function C2(r,e){var t=qe.str(r)?y0(r)[0]:r,n=e||100;return function(i){return{property:i,el:t,svg:A0(t),totalLength:M0(t)*(n/100)}}}function L2(r,e){function t(a){a===void 0&&(a=0);var l=e+a>=1?e+a:0;return r.el.getPointAtLength(l)}var n=A0(r.el,r.svg),i=t(),s=t(-1),o=t(1);switch(r.property){case"x":return(i.x-n.x)*n.w;case"y":return(i.y-n.y)*n.h;case"angle":return Math.atan2(o.y-s.y,o.x-s.x)*180/Math.PI}}function _0(r,e){var t=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g,n=w0(qe.pth(r)?r.totalLength:r,e)+"";return{original:n,numbers:n.match(t)?n.match(t).map(Number):[0],strings:qe.str(r)||e?n.split(t):[]}}function T0(r){var e=r?Xh(qe.arr(r)?r.map(v0):v0(r)):[];return Jh(e,function(t,n,i){return i.indexOf(t)===n})}function E0(r){var e=T0(r);return e.map(function(t,n){return{target:t,id:n,total:e.length,transforms:{list:b0(t)}}})}function I2(r,e){var t=Tm(e);if(/^spring/.test(t.easing)&&(t.duration=m0(t.easing)),qe.arr(r)){var n=r.length,i=n===2&&!qe.obj(r[0]);i?r={value:r}:qe.fnc(e.duration)||(t.duration=e.duration/n)}var s=qe.arr(r)?r:[r];return s.map(function(o,a){var l=qe.obj(o)&&!qe.pth(o)?o:{value:o};return qe.und(l.delay)&&(l.delay=a?0:e.delay),qe.und(l.endDelay)&&(l.endDelay=a===s.length-1?e.endDelay:0),l}).map(function(o){return qh(o,t)})}function P2(r){for(var e=Jh(Xh(r.map(function(s){return Object.keys(s)})),function(s){return qe.key(s)}).reduce(function(s,o){return s.indexOf(o)<0&&s.push(o),s},[]),t={},n=function(s){var o=e[s];t[o]=r.map(function(a){var l={};for(var c in a)qe.key(c)?c==o&&(l.value=a[c]):l[c]=a[c];return l})},i=0;i-1&&(li.splice(o,1),n=li.length)}i++}r()}else Yh=cancelAnimationFrame(Yh)}return r}();function U2(){document.hidden?(li.forEach(function(r){return r.pause()}),P0=li.slice(0),un.running=li=[]):P0.forEach(function(r){return r.play()})}typeof document!="undefined"&&document.addEventListener("visibilitychange",U2);function un(r){r===void 0&&(r={});var e=0,t=0,n=0,i,s=0,o=null;function a(x){var b=window.Promise&&new Promise(function(w){return o=w});return x.finished=b,b}var l=z2(r),c=a(l);function u(){var x=l.direction;x!=="alternate"&&(l.direction=x!=="normal"?"normal":"reverse"),l.reversed=!l.reversed,i.forEach(function(b){return b.reversed=l.reversed})}function h(x){return l.reversed?l.duration-x:x}function d(){e=0,t=h(l.currentTime)*(1/un.speed)}function f(x,b){b&&b.seek(x-b.timelineOffset)}function p(x){if(l.reversePlayback)for(var w=s;w--;)f(x,i[w]);else for(var b=0;b2||(W=Math.round(W*G)/G)),B.push(W)}var K=R.length;if(!K)ne=B[0];else{ne=R[0];for(var q=0;q0&&(l.began=!0,v("begin")),!l.loopBegan&&l.currentTime>0&&(l.loopBegan=!0,v("loopBegin")),S<=w&&l.currentTime!==0&&m(0),(S>=_&&l.currentTime!==b||!b)&&m(b),S>w&&S<_?(l.changeBegan||(l.changeBegan=!0,l.changeCompleted=!1,v("changeBegin")),v("change"),m(S)):l.changeBegan&&(l.changeCompleted=!0,l.changeBegan=!1,v("changeComplete")),l.currentTime=mr(S,0,b),l.began&&v("update"),x>=b&&(t=0,g(),l.remaining?(e=n,v("loopComplete"),l.loopBegan=!1,l.direction==="alternate"&&u()):(l.paused=!0,l.completed||(l.completed=!0,v("loopComplete"),v("complete"),!l.passThrough&&"Promise"in window&&(o(),c=a(l)))))}return l.reset=function(){var x=l.direction;l.passThrough=!1,l.currentTime=0,l.progress=0,l.paused=!0,l.began=!1,l.loopBegan=!1,l.changeBegan=!1,l.completed=!1,l.changeCompleted=!1,l.reversePlayback=!1,l.reversed=x==="reverse",l.remaining=l.loop,i=l.children,s=i.length;for(var b=s;b--;)l.children[b].reset();(l.reversed&&l.loop!==!0||x==="alternate"&&l.loop===1)&&l.remaining++,m(l.reversed?l.duration:0)},l.set=function(x,b){return C0(x,b),l},l.tick=function(x){n=x,e||(e=n),y((n+(t-e))*un.speed)},l.seek=function(x){y(h(x))},l.pause=function(){l.paused=!0,d()},l.play=function(){!l.paused||(l.completed&&l.reset(),l.paused=!1,li.push(l),d(),Yh||G2())},l.reverse=function(){u(),l.completed=!l.reversed,d()},l.restart=function(){l.reset(),l.play()},l.reset(),l.autoplay&&l.play(),l}function D0(r,e){for(var t=e.length;t--;)_m(r,e[t].animatable.target)&&e.splice(t,1)}function k2(r){for(var e=T0(r),t=li.length;t--;){var n=li[t],i=n.animations,s=n.children;D0(e,i);for(var o=s.length;o--;){var a=s[o],l=a.animations;D0(e,l),!l.length&&!a.children.length&&s.splice(o,1)}!i.length&&!s.length&&n.pause()}}function V2(r,e){e===void 0&&(e={});var t=e.direction||"normal",n=e.easing?Am(e.easing):null,i=e.grid,s=e.axis,o=e.from||0,a=o==="first",l=o==="center",c=o==="last",u=qe.arr(r),h=parseFloat(u?r[0]:r),d=u?parseFloat(r[1]):0,f=Gr(u?r[1]:r)||0,p=e.start||0+(u?h:0),m=[],v=0;return function(g,y,x){if(a&&(o=0),l&&(o=(x-1)/2),c&&(o=x-1),!m.length){for(var b=0;b-1&&li.splice(i,1);function o(d){d.passThrough=!0}for(var a=0;aa.id===e.id);o==null||o.copy(e)}pushMaterialLayer(e){if(this.i.states.length===0||ai(this.i.object)===!1)return;let t=this.i.object;if(t.material instanceof Array){let n=t.selectedMaterial;if(n!==void 0)for(let i=0,s=this.i.states.length;i{let l=a.count,c=new we,u=new Float32Array(l*3),h=new Float32Array(l*3),d=new Float32Array(l*2);for(let f=0;f255?32:i}return e.buffer}function Y2(r){return Wc(r.elements,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}function K2(r,e,t){let n={min:new Array(r.itemSize).fill(Number.POSITIVE_INFINITY),max:new Array(r.itemSize).fill(Number.NEGATIVE_INFINITY)};for(let i=e;i4?o=r.array[i*r.itemSize+s]:s===0?o=r.getX(i):s===1?o=r.getY(i):s===2?o=r.getZ(i):s===3&&(o=r.getW(i)),n.min[s]=Math.min(n.min[s],o),n.max[s]=Math.max(n.max[s],o)}return n}function z0(r){return Math.ceil(r/4)*4}function Bm(r,e=0){let t=z0(r.byteLength);if(t!==r.byteLength){let n=new Uint8Array(t);if(n.set(new Uint8Array(r)),e!==0)for(let i=r.byteLength;i0&&(this.options.trs=!0),this.processInput(e);let i=this;Promise.all(this.pending).then(function(){let s=i.buffers,o=i.json,a=i.options,l=i.extensionsUsed,c=new Blob(s,{type:"application/octet-stream"}),u=Object.keys(l);if(u.length>0&&(o.extensionsUsed=u),o.buffers&&o.buffers.length>0&&(o.buffers[0].byteLength=c.size),a.binary===!0){let h=new window.FileReader;h.readAsArrayBuffer(c),h.onloadend=function(){let d=Bm(h.result),f=new DataView(new ArrayBuffer(F0));f.setUint32(0,d.byteLength,!0),f.setUint32(4,X2,!0);let p=Bm(q2(JSON.stringify(o)),32),m=new DataView(new ArrayBuffer(F0));m.setUint32(0,p.byteLength,!0),m.setUint32(4,J2,!0);let v=new ArrayBuffer(O0),g=new DataView(v);g.setUint32(0,j2,!0),g.setUint32(4,W2,!0);let y=O0+m.byteLength+p.byteLength+f.byteLength+d.byteLength;g.setUint32(8,y,!0);let x=new Blob([v,m,p,f,d],{type:"application/octet-stream"}),b=new window.FileReader;b.readAsArrayBuffer(x),b.onloadend=function(){t(b.result)}}}else if(o.buffers&&o.buffers.length>0){let h=new window.FileReader;h.readAsDataURL(c),h.onloadend=function(){let d=h.result;o.buffers[0].uri=d,t(o)}}else t(o)})}serializeUserData(e,t){if(Object.keys(e.userData).length===0)return;let n=this.options,i=this.extensionsUsed;try{let s=JSON.parse(JSON.stringify(e.userData));if(n.includeCustomExtensions&&s.gltfExtensions){t.extensions===void 0&&(t.extensions={});for(let o in s.gltfExtensions)t.extensions[o]=s.gltfExtensions[o],i[o]=!0;delete s.gltfExtensions}Object.keys(s).length>0&&(t.extras=s)}catch(s){console.warn("THREE.GLTFExporter: userData of '"+e.name+"' won't be serialized because of JSON.stringify error - "+s.message)}}getUID(e){return this.uids.has(e)||this.uids.set(e,this.uid++),this.uids.get(e)}isNormalizedNormalAttribute(e){if(this.cache.attributesNormalized.has(e))return!1;let n=new M;for(let i=0,s=e.count;i5e-4)return!1;return!0}createNormalizedNormalAttribute(e){let t=this.cache;if(t.attributesNormalized.has(e))return t.attributesNormalized.get(e);let n=e.clone(),i=new M;for(let s=0,o=n.count;s4?m=e.array[f*e.itemSize+p]:p===0?m=e.getX(f):p===1?m=e.getY(f):p===2?m=e.getZ(f):p===3&&(m=e.getW(f)),t===Et.FLOAT?c.setFloat32(u,m,!0):t===Et.UNSIGNED_INT?c.setUint32(u,m,!0):t===Et.UNSIGNED_SHORT?c.setUint16(u,m,!0):t===Et.UNSIGNED_BYTE&&c.setUint8(u,m),u+=a}let h={buffer:this.processBuffer(c.buffer),byteOffset:this.byteOffset,byteLength:l};return s!==void 0&&(h.target=s),s===Et.ARRAY_BUFFER&&(h.byteStride=e.itemSize*a),this.byteOffset+=l,o.bufferViews.push(h),{id:o.bufferViews.length-1,byteLength:0}}processBufferViewImage(e){let t=this,n=t.json;return n.bufferViews||(n.bufferViews=[]),new Promise(function(i){let s=new window.FileReader;s.readAsArrayBuffer(e),s.onloadend=function(){let o=Bm(s.result),a={buffer:t.processBuffer(o),byteOffset:t.byteOffset,byteLength:o.byteLength};t.byteOffset+=o.byteLength,i(n.bufferViews.push(a)-1)}})}processAccessor(e,t,n,i){let s=this.options,o=this.json,a={1:"SCALAR",2:"VEC2",3:"VEC3",4:"VEC4",16:"MAT4"},l;if(e.array.constructor===Float32Array)l=Et.FLOAT;else if(e.array.constructor===Uint32Array)l=Et.UNSIGNED_INT;else if(e.array.constructor===Uint16Array)l=Et.UNSIGNED_SHORT;else if(e.array.constructor===Uint8Array)l=Et.UNSIGNED_BYTE;else throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type.");if(n===void 0&&(n=0),i===void 0&&(i=e.count),s.truncateDrawRange&&t!==void 0&&t.index===null){let f=n+i,p=t.drawRange.count===1/0?e.count:t.drawRange.start+t.drawRange.count;n=Math.max(n,t.drawRange.start),i=Math.min(f,p)-n,i<0&&(i=0)}if(i===0)return null;let c=K2(e,n,i),u;t!==void 0&&(u=e===t.index?Et.ELEMENT_ARRAY_BUFFER:Et.ARRAY_BUFFER);let h=this.processBufferView(e,l,n,i,u),d={bufferView:h.id,byteOffset:h.byteOffset,componentType:l,count:i,max:c.max,min:c.min,type:a[e.itemSize]};return e.normalized===!0&&(d.normalized=!0),o.accessors||(o.accessors=[]),o.accessors.push(d)-1}processImage(e,t,n){let i=this,s=i.cache,o=i.json,a=i.options,l=i.pending;s.images.has(e)||s.images.set(e,{});let c=s.images.get(e),u=t===zt?"image/png":"image/jpeg",h=u+":flipY/"+n.toString();if(c[h]!==void 0)return c[h];o.images||(o.images=[]);let d={mimeType:u};if(a.embedImages){let p=G0=G0||document.createElement("canvas");p.width=Math.min(e.width,a.maxTextureSize),p.height=Math.min(e.height,a.maxTextureSize);let m=p.getContext("2d");if(n===!0&&(m.translate(0,p.height),m.scale(1,-1)),typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas!="undefined"&&e instanceof OffscreenCanvas||typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)m.drawImage(e,0,0,p.width,p.height);else{t!==zt&&t!==Nt&&console.error("GLTFExporter: Only RGB and RGBA formats are supported."),(e.width>a.maxTextureSize||e.height>a.maxTextureSize)&&console.warn("GLTFExporter: Image size is bigger than maxTextureSize",e);let v=new Uint8ClampedArray(e.height*e.width*4);if(t===zt)for(let g=0;g1&&(a.multiplyScalar(1/l),console.warn("THREE.GLTFExporter: Some emissive components exceed 1; emissive has been limited")),l>0&&(i.emissiveFactor=a.toArray()),e.emissiveMap){let c={index:this.processTexture(e.emissiveMap)};this.applyTextureTransform(c,e.emissiveMap),i.emissiveTexture=c}}if(e.normalMap){let a={index:this.processTexture(e.normalMap)};e.normalScale&&e.normalScale.x!==1&&(a.scale=e.normalScale.x),this.applyTextureTransform(a,e.normalMap),i.normalTexture=a}if(e.aoMap){let a={index:this.processTexture(e.aoMap),texCoord:1};e.aoMapIntensity!==1&&(a.strength=e.aoMapIntensity),this.applyTextureTransform(a,e.aoMap),i.occlusionTexture=a}e.transparent?i.alphaMode="BLEND":e.alphaTest>0&&(i.alphaMode="MASK",i.alphaCutoff=e.alphaTest),e.side===Xt&&(i.doubleSided=!0),e.name!==""&&(i.name=e.name),this.serializeUserData(e,i),this._invokeAll(function(a){a.writeMaterial&&a.writeMaterial(e,i)});let o=n.materials.push(i)-1;return t.materials.set(e,o),o}processMesh(e){let t=this.cache,n=this.json,i=[e.geometry.uuid];if(Array.isArray(e.material))for(let x=0,b=e.material.length;x0){let x=[],b=[],w={};if(e.morphTargetDictionary!==void 0)for(let _ in e.morphTargetDictionary)w[e.morphTargetDictionary[_]]=_;for(let _=0;_0&&(l.extras={},l.extras.targetNames=b)}let m=Array.isArray(e.material);if(m&&o.groups.length===0)return null;let v=m?e.material:[e.material],g=m?o.groups:[{materialIndex:0,start:void 0,count:void 0}];for(let x=0,b=g.length;x0&&(w.targets=h),o.index!==null){let S=this.getUID(o.index);(g[x].start!==void 0||g[x].count!==void 0)&&(S+=":"+g[x].start+":"+g[x].count),t.attributes.has(S)?w.indices=t.attributes.get(S):(w.indices=this.processAccessor(o.index,o,g[x].start,g[x].count),t.attributes.set(S,w.indices)),w.indices===null&&delete w.indices}let _=this.processMaterial(v[g[x].materialIndex]);_!==null&&(w.material=_),u.push(w)}l.primitives=u,n.meshes||(n.meshes=[]),this._invokeAll(function(x){x.writeMesh&&x.writeMesh(e,l)});let y=n.meshes.push(l)-1;return t.meshes.set(s,y),y}processCamera(e){let t=this.json;t.cameras||(t.cameras=[]);let n=e.isOrthographicCamera,i={type:n?"orthographic":"perspective"};return n?i.orthographic={xmag:e.right*2,ymag:e.top*2,zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near}:i.perspective={aspectRatio:e.aspect,yfov:Ee.degToRad(e.fov),zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near},e.name!==""&&(i.name=e.type),t.cameras.push(i)-1}processAnimation(e,t){let n=this.json,i=this.nodeMap;n.animations||(n.animations=[]),e=jc.Utils.mergeMorphTargetTracks(e.clone(),t);let s=e.tracks,o=[],a=[];for(let l=0;l0){let a=[];for(let l=0,c=e.children.length;l0&&(s.children=a)}this._invokeAll(function(a){a.writeNode&&a.writeNode(e,s)});let o=t.nodes.push(s)-1;return i.set(e,o),o}processScene(e){let t=this.json,n=this.options;t.scenes||(t.scenes=[],t.scene=0);let i={};e.name!==""&&(i.name=e.name),t.scenes.push(i);let s=[];for(let o=0,a=e.children.length;o0&&(i.nodes=s),this.serializeUserData(e,i)}processObjects(e){let t=new An;t.name="AuxScene";for(let n=0;n0&&this.processObjects(n);for(let i=0;i0&&(o.range=e.distance)):e.isSpotLight&&(o.type="spot",e.distance>0&&(o.range=e.distance),o.spot={},o.spot.innerConeAngle=(e.penumbra-1)*e.angle*-1,o.spot.outerConeAngle=e.angle),e.decay!==void 0&&e.decay!==2&&console.warn("THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2."),e.target&&(e.target.parent!==e||e.target.position.x!==0||e.target.position.y!==0||e.target.position.z!==-1)&&console.warn("THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1."),s[this.name]||(i.extensions=i.extensions||{},i.extensions[this.name]={lights:[]},s[this.name]=!0);let a=i.extensions[this.name].lights;a.push(o),t.extensions=t.extensions||{},t.extensions[this.name]={light:a.length-1}}},V0=class{constructor(e){this.writer=e,this.name="KHR_materials_unlit"}writeMaterial(e,t){if(!e.isMeshBasicMaterial)return;let i=this.writer.extensionsUsed;t.extensions=t.extensions||{},t.extensions[this.name]={},i[this.name]=!0,t.pbrMetallicRoughness.metallicFactor=0,t.pbrMetallicRoughness.roughnessFactor=.9}},H0=class{constructor(e){this.writer=e,this.name="KHR_materials_pbrSpecularGlossiness"}writeMaterial(e,t){if(!e.isGLTFSpecularGlossinessMaterial)return;let n=this.writer,i=n.extensionsUsed,s={};t.pbrMetallicRoughness.baseColorFactor&&(s.diffuseFactor=t.pbrMetallicRoughness.baseColorFactor);let o=[1,1,1];if(e.specular.toArray(o,0),s.specularFactor=o,s.glossinessFactor=e.glossiness,t.pbrMetallicRoughness.baseColorTexture&&(s.diffuseTexture=t.pbrMetallicRoughness.baseColorTexture),e.specularMap){let a={index:n.processTexture(e.specularMap)};n.applyTextureTransform(a,e.specularMap),s.specularGlossinessTexture=a}t.extensions=t.extensions||{},t.extensions[this.name]=s,i[this.name]=!0}},j0=class{constructor(e){this.writer=e,this.name="KHR_materials_transmission"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||e.transmission===0)return;let n=this.writer,i=n.extensionsUsed,s={};if(s.transmissionFactor=e.transmission,e.transmissionMap){let o={index:n.processTexture(e.transmissionMap)};n.applyTextureTransform(o,e.transmissionMap),s.transmissionTexture=o}t.extensions=t.extensions||{},t.extensions[this.name]=s,i[this.name]=!0}},W0=class{constructor(e){this.writer=e,this.name="KHR_materials_volume"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||e.thickness===0)return;let n=this.writer,i=n.extensionsUsed,s={};if(s.thicknessFactor=e.thickness,e.thicknessMap){let o={index:n.processTexture(e.thicknessMap)};n.applyTextureTransform(o,e.thicknessMap),s.thicknessTexture=o}s.attenuationDistance=e.attenuationDistance,s.attenuationColor=e.attenuationTint.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=s,i[this.name]=!0}};jc.Utils={insertKeyframe:function(r,e){let t=.001,n=r.getValueSize(),i=new r.TimeBufferType(r.times.length+1),s=new r.ValueBufferType(r.values.length+n),o=r.createInterpolant(new r.ValueBufferType(n)),a;if(r.times.length===0){i[0]=e;for(let l=0;lr.times[r.times.length-1]){if(Math.abs(r.times[r.times.length-1]-e)e){i.set(r.times.slice(0,l+1),0),i[l+1]=e,i.set(r.times.slice(l+1),l+2),s.set(r.values.slice(0,(l+1)*n),0),s.set(o.evaluate(e),(l+1)*n),s.set(r.values.slice((l+1)*n),(l+2)*n),a=l+1;break}}return r.times=i,r.values=s,a},mergeMorphTargetTracks:function(r,e){let t=[],n={},i=r.tracks;for(let s=0;sl.arrayBuffer())]),o=new r,a=await i({wasmBinary:s});return o.registerExtensions(e).registerDependencies({"draco3d.encoder":a}),Kh=o,Qh=t,Zh=n({tolerance:1e-4}),{gltfTransform:Kh,DracoMeshCompressionExtension:Qh,addIndex:Zh}}var vS=Cg(Y0());var rI=typeof global=="object"&&global&&global.Object===Object&&global,ed=rI;var sI=typeof self=="object"&&self&&self.Object===Object&&self,oI=ed||sI||Function("return this")(),en=oI;var aI=en.Symbol,Zn=aI;var K0=Object.prototype,lI=K0.hasOwnProperty,cI=K0.toString,Jc=Zn?Zn.toStringTag:void 0;function uI(r){var e=lI.call(r,Jc),t=r[Jc];try{r[Jc]=void 0;var n=!0}catch(s){}var i=cI.call(r);return n&&(e?r[Jc]=t:delete r[Jc]),i}var Q0=uI;var hI=Object.prototype,dI=hI.toString;function fI(r){return dI.call(r)}var Z0=fI;var pI="[object Null]",mI="[object Undefined]",$0=Zn?Zn.toStringTag:void 0;function gI(r){return r==null?r===void 0?mI:pI:$0&&$0 in Object(r)?Q0(r):Z0(r)}var er=gI;function yI(r){return r!=null&&typeof r=="object"}var $n=yI;var vI="[object Symbol]";function xI(r){return typeof r=="symbol"||$n(r)&&er(r)==vI}var tr=xI;function bI(r,e){for(var t=-1,n=r==null?0:r.length,i=Array(n);++t-1&&r%1==0&&r-1&&r%1==0&&r<=pP}var ll=mP;function gP(r){return r!=null&&ll(r.length)&&!nd(r)}var Ss=gP;var yP=Object.prototype;function vP(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||yP;return r===t}var cl=vP;function xP(r,e){for(var t=-1,n=Array(r);++t-1}var Ob=GD;function UD(r,e){var t=this.__data__,n=As(t,r);return n<0?(++this.size,t.push([r,e])):t[n][1]=e,this}var Fb=UD;function fl(r){var e=-1,t=r==null?0:r.length;for(this.clear();++ea))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var h=-1,d=!0,f=t&rO?new zw:void 0;for(s.set(r,e),s.set(e,r);++h=e||S<0||h&&A>=s}function g(){var _=Nd();if(v(_))return y(_);a=setTimeout(g,m(_))}function y(_){return a=void 0,d&&n?f(_):(n=i=void 0,o)}function x(){a!==void 0&&clearTimeout(a),c=0,n=l=i=a=void 0}function b(){return a===void 0?o:y(Nd())}function w(){var _=Nd(),S=v(_);if(n=arguments,i=this,l=_,S){if(a===void 0)return p(l);if(h)return clearTimeout(a),a=setTimeout(g,e),f(l)}return a===void 0&&(a=setTimeout(g,e)),o}return w.cancel=x,w.flush=b,w}var Wm=t3;function n3(r,e){var t=-1,n=Ss(r)?Array(r.length):[];return dS(r,function(i,s,o){n[++t]=e(i,s,o)}),n}var fS=n3;function i3(r,e){var t=r.length;for(r.sort(e);t--;)r[t]=r[t].value;return r}var pS=i3;function r3(r,e){if(r!==e){var t=r!==void 0,n=r===null,i=r===r,s=tr(r),o=e!==void 0,a=e===null,l=e===e,c=tr(e);if(!a&&!c&&!s&&r>e||s&&o&&l&&!a&&!c||n&&o&&l||!t&&l||!i)return 1;if(!n&&!s&&!c&&r=a)return l;var c=t[n];return l*(c=="desc"?-1:1)}}return r.index-e.index}var gS=s3;function o3(r,e,t){e.length?e=ol(e,function(s){return Jt(s)?function(o){return ml(o,s.length===1?s[0]:s)}:s}):e=[td];var n=-1;e=ol(e,Ms(aS));var i=fS(r,function(s,o,a){var l=ol(e,function(c){return c(s)});return{criteria:l,index:++n,value:s}});return pS(i,function(s,o){return gS(s,o,t)})}var yS=o3;function a3(r,e,t,n){return r==null?[]:(Jt(e)||(e=e==null?[]:[e]),t=n?void 0:t,Jt(t)||(t=t==null?[]:[t]),yS(r,e,t))}var Jm=a3;var Cd={isPublish:!1,gltfQueue:[]};function Yc(r,e,t){return r[e.uuid]===void 0&&(r[e.uuid]=e.toJSON(t)),e.uuid}var l3=new jc;function xS(r,e,t){if(r[e.uuid]===void 0)if(e.userData.type==="NonParametricGeometry"||e.userData.type==="SubdivGeometry"){if(e.userData.type==="SubdivGeometry")if(Cd.isPublish)e=Lo.create({geometry:e.clone()}),e.userData.parameters.subdivisions===0&&(delete e.attributes.color,delete e.attributes.faceMap,delete e.attributes.positionWASM,delete e.attributes.indexWASM,delete e.attributes.verticesPerFaceWASM);else{let i=e.originalGeometry;if(i){let s=e.userData;e=i.clone(),e.userData=s}else e=e.clone();delete e.attributes.color,delete e.attributes.faceMap,delete e.attributes.position,delete e.attributes.normal,e.index=null}let n=e.originalGeometry;if(n!==void 0){let i=e.userData;e=n,e.userData=i}if(!Cd.isPublish)r[e.uuid]=e.toJSON();else{let i={type:"NonParametricGeometry",uuid:e.uuid,userData:{}};e.name!==""&&(i.name=e.name),Object.keys(e.userData).length>0&&(i.userData=Ue({},e.userData));let s=e.index===null,o=new Jn;if(Array.isArray(t))R0(e).forEach((l,c)=>{let u=new gt(l,new Xi);o.add(u),l.userData.groupIndex=c,l.userData.materialIndex=e.groups[c].materialIndex,l.index===null&&(s=!0)});else{let a=new gt(e,new Xi);o.add(a)}Cd.gltfQueue.push(new Promise(async a=>{await Promise.all(Cd.gltfQueue),l3.parse(o,async l=>{let{gltfTransform:c,DracoMeshCompressionExtension:u,addIndex:h}=await J0(),d=c.readJSON({json:Hm(l),resources:{}});d.createExtension(u).setRequired(!0).setEncoderOptions({quantizationVolume:"scene"}),s&&await d.transform(h);try{let{json:f,resources:p}=c.writeJSON(d),m=vS.default.fromByteArray(new Uint8Array(p[".bin"]));f.buffers[0].uri=`data:application/octet-stream;base64,${m}`,i.gltf=f,a()}catch(f){i.gltf=l,a()}},{})})),r[e.uuid]=i}}else{let n=e.userData;if(n.type==="VectorGeometry"){let i=e.userData.shape;n=Object.assign({},n,{shape:i.toJSON()})}r[e.uuid]={uuid:e.uuid,userData:n}}return e.uuid}function bl(r){let e=[];for(let t in r){let n=r[t];delete n.metadata,e.push(n)}return e}function bS(r){let e=[];for(let t in r)e.push(r[t]);return e}var Is=class{constructor(e){this.object=e;this.uuid=Ee.generateUUID();this.states=[];this.events=[];this._interpolateMaterialBetweenValues=(e,t,n,i=t.getNames())=>{var s,o,a,l,c;for(let u=0,h=i.length;u{var c,u,h;let i=e.layersList;if(t.backLayer===void 0){let d=n.getValues();d.alpha=0,t.backLayer=i.addLayerBeforeAt(d,t),t.backLayer.isBack=!0,e.dispose()}let s=`f${t.id}_alpha`,o=`f${(c=t.backLayer)==null?void 0:c.id}_alpha`,a=t.uniforms[s],l=(u=t.backLayer)==null?void 0:u.uniforms[o];(h=this._animation)==null||h.add({targets:a,value:0},0).add({targets:l,value:n.uniforms[`f${n.id}_alpha`].value},0)};this._interpolateMaterialTexture=(e,t,n)=>{var d;let i=`f${t.id}_texture`,s=t.uniforms[i].value,o=n.uniforms[`f${n.id}_texture`].value,a=t.uniforms[`f${t.id}_crop`],l=n.uniforms[`f${n.id}_crop`];a&&l&&a.value!==l.value&&(a.value=Number(l.value)),(s.wrapS!==o.wrapS||s.wrapT!==o.wrapT)&&(s.wrapS=o.wrapS,s.wrapT=o.wrapT,s.needsUpdate=!0);let c=s.matrix,u=o.matrix;if(c.equals(u)===!1){let f={repeatX:s.repeat.x,repeatY:s.repeat.y,offsetX:s.offset.x,offsetY:s.offset.y};(d=this._animation)==null||d.add({targets:f,repeatX:o.repeat.x,repeatY:o.repeat.y,offsetX:o.offset.x,offsetY:o.offset.y,update:()=>{s.repeat.set(f.repeatX,f.repeatY),s.offset.set(f.offsetX,f.offsetY),s.updateMatrix(),s.needsUpdate=!0}},0)}let h=["alpha","mode"];t.type==="displace_map"&&h.push("intensity"),this._interpolateMaterialBetweenValues(e,t,n,h)};this._interpolateMaterialGradient=(e,t,n)=>{var p;let i=t.uniforms[`f${t.id}_num`],s=n.uniforms[`f${n.id}_num`],o=`f${t.id}_steps`,a=`f${n.id}_steps`,l=t.uniforms[o],c=n.uniforms[a],u=`f${t.id}_colors`,h=`f${n.id}_colors`,d=t.uniforms[u],f=n.uniforms[h];if(i.value<=s.value){let m=d.value[i.value-1];for(let v=Number(i.value);v{l.value[v]=x.value}},0)}}}else{let m=[];for(let g=0;g{var _;(_=this._animation)==null||_.add({targets:[b,y],value:c.value[g],x:x.x,y:x.y,z:x.z,w:x.w,update:()=>{l.value[g]=b.value},complete:()=>{w(g)}},0)}))}}let v=f.value[s.value-1];for(let g=Number(s.value);g{var w;let b={value:l.value[g]};(w=this._animation)==null||w.add({targets:[b,y],value:1,x:v.x,y:v.y,z:v.z,w:v.w,update:()=>{l.value[g]=b.value},complete:()=>{x(g)}},0)}))}Promise.all(m).then(()=>{i.value=Number(s.value)},()=>{})}this._interpolateMaterialBetweenValues(e,t,n,["alpha","mode","gl_type","smooth","offset","morph","angle"])};this.statesManager=new Rm(this)}static get isAllAnimationsEnded(){let e;for(let t in Is.isAnimating){if(Is.isAnimating[t])return!1;e=!0}return e}computeCache(){return this.cache={mouseDown:this.events.find(e=>e.type===Ze.MOUSE_DOWN),mouseUp:this.events.find(e=>e.type===Ze.MOUSE_UP),mouseHover:this.events.find(e=>e.type===Ze.MOUSE_HOVER),start:this.events.find(e=>e.type===Ze.START),lookAt:this.events.find(e=>e.type===Ze.LOOK_AT),follow:this.events.find(e=>e.type===Ze.FOLLOW),keyDown:this.events.filter(e=>e.type===Ze.KEY_DOWN),keyUp:this.events.filter(e=>e.type===Ze.KEY_UP)},this.cache}newState(e){let t=new bs;return t.name=e,t.update(this.object),this.selectedState=this.states.length,this.states.push(t),t}addState(e,t){this.states.splice(t,0,e)}removeState(e){this.selectedState===e&&(this.selectedState=void 0),this.states.splice(e,1)}selectState(e){e!==void 0&&this.states[e].execute(this.object),this.selectedState=e}hasEventType(e,t){return e===Ze.KEY_DOWN||e===Ze.KEY_UP?t===void 0?!1:this.events.some(n=>n.type===e&&n.key===t):this.events.some(n=>n.type===e)}newEvent(){let e=[Ze.MOUSE_DOWN,Ze.MOUSE_UP,Ze.MOUSE_HOVER,Ze.KEY_DOWN].find(n=>this.hasEventType(n)===!1),t=new sl(e);return this.events.push(t),t}addEvent(e,t){this.events.splice(t,0,e);let n=this.events[t].targets;for(let i=0,s=n.length;i0){t.states=[];for(let n=0,i=this.states.length;n0){t.events=[];for(let n=0,i=this.events.length;n1?(this.states[0].execute(this.object),this._currentState=this.states[0],this._prevState=void 0):this._state0!==void 0?this._state0.execute(this.object):this.events.some(e=>e.type===Ze.LOOK_AT||e.type===Ze.FOLLOW)&&(this._state0=new bs,this._state0.update(this.object))}end(){var e;this._animation!==void 0&&(this._animation.pause(),this._animation=void 0,this._removeBackLayer()),this.states.length>1?this.states[(e=this.selectedState)!=null?e:0].execute(this.object):this._state0!==void 0&&(this._state0.execute(this.object),this._state0=void 0),this._currentState=void 0,this._prevState=void 0}lookAt(e){var t;this.object.lookAt(e),(t=this._animation)==null||t.finished.then(()=>{this.lookAt(e)})}follow(e){this.object.position.copy(e),this.object.parent!==null&&this.object.position.applyMatrix4(new me().copy(this.object.parent.matrixWorld).invert()),this.object.position.applyMatrix4(new me().copy(this.object.hiddenMatrix).invert())}play(e){this.object.visible&&e.state!==void 0&&this.animate(e.state,e)}reverse(e){this.object.visible&&this._prevState!==void 0&&this.animate(this._prevState,e)}_removeBackLayer(){if("material"in this.object){let e=this.object.material;if(e instanceof Array)for(let t=0,n=e.length;t{this._removeBackLayer(),this._animation=void 0,Is.isAnimating[e.uuid]=!1}),this.animateMatrix(e),this.animateGeometry(e),this.animateMaterial(e),this.animateCamera(e)}animateMatrix(e){var s,o,a,l;if(this.object.position.equals(e.position)===!1){let c=this.object.position.clone(),u={t:0};(s=this._animation)==null||s.add({targets:u,t:1,update:()=>{this.object.position.lerpVectors(c,e.position,u.t)}},0)}if(this.object.scale.equals(e.scale)===!1){let c=this.object.scale.clone(),u={t:0};(o=this._animation)==null||o.add({targets:u,t:1,update:()=>{this.object.scale.lerpVectors(c,e.scale,u.t)}},0)}if(this.object.rotation.equals(e.rotation)===!1){let c=this.object.quaternion.clone(),u={t:0},h={x:this.object.rotation.x-e.rotation.x,y:this.object.rotation.y-e.rotation.y,z:this.object.rotation.z-e.rotation.z},d=e.rotation.clone(),f=.01*Ee.DEG2RAD,p=359.99*Ee.DEG2RAD;h.x===Math.PI*2?d.x===0?d.x=f:d.x===Math.PI*2&&(d.x=p):h.x===-Math.PI*2&&(d.x===0?d.x=-f:d.x===Math.PI*2&&(d.x=-p)),h.y===Math.PI*2?d.y===0?d.y=f:d.y===Math.PI*2&&(d.y=p):h.y===-Math.PI*2&&(d.y===0?d.y=-f:d.y===Math.PI*2&&(d.y=-p)),h.z===Math.PI*2?d.z===0?d.z=f:d.z===Math.PI*2&&(d.z=p):h.z===-Math.PI*2&&(d.z===0?d.z=-f:d.z===Math.PI*2&&(d.z=-p));let m=new Tt().setFromEuler(d);(a=this._animation)==null||a.add({targets:u,t:1,update:()=>{wm(c,m,this.object.quaternion,u.t)}},0)}let t=new M,n=new Tt,i=new M;if(e.hiddenMatrix.decompose(t,n,i),"hiddenMatrix"in this.object){let c=new M,u=new Tt,h=new M;if(this.object.hiddenMatrix.decompose(c,u,h),this.object.hiddenMatrix.equals(e.hiddenMatrix)===!1){let d=new M,f=new Tt,p=new M,m={t:0},v=this.object.hiddenMatrix;(l=this._animation)==null||l.add({targets:m,t:1,update:()=>{f.slerpQuaternions(u,n,m.t),d.lerpVectors(c,t,m.t),p.lerpVectors(h,i,m.t),v.compose(d,f,p)}},0)}}}animateGeometry(e){var t;if("geometry"in this.object&&e.geometry!==void 0){let i=this.object.geometry.userData.parameters,s=e.geometry;if(s.width!==i.width||s.height!==i.height||s.depth!==i.depth){let o=this.object;(t=this._animation)==null||t.add({targets:i,width:s.width,height:s.height,depth:s.depth,update:()=>{o.updateGeometry({parameters:{width:i.width,height:i.height,depth:i.depth}})}},0)}}}animateMaterial(e){if("material"in this.object)if(this.object.material instanceof Array)for(let t=0,n=this.object.material.length;t{i.updateProjectionMatrix()}},0)),i.targetOffset!==e.camera.targetOffset&&((n=this._animation)==null||n.add({targets:i,targetOffset:e.camera.targetOffset},0))}}},Ls=Is;Ls.isAnimating={};var Ld=r=>class extends r{hasEntityChild(){return this.children.some(t=>Vh(t))}attach(t,n){this.updateWorldMatrix(!0,!1);let i=new me().copy(this.matrixWorld).invert();return t.parent!==null&&(t.parent.updateWorldMatrix(!0,!1),i.multiply(t.parent.matrixWorld)),Vh(t)?t.hiddenMatrix.premultiply(i):t.applyMatrix4(i),t.updateWorldMatrix(!1,!1),this.add(t),n!==void 0&&(this.children.pop(),this.children.splice(n,0,t)),this}copy(t,n=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),n===!0)for(let i=0;i0){s.children=[];for(let o of this.children)(Vh(o)||o instanceof vi)&&s.children.push(o.toJSON(t).object)}if(n){let o=bl(t.geometries),a=bl(t.materials),l=bl(t.textures),c=bl(t.images),u=bl(t.interactionStates),h=bS(t.nodes);o.length>0&&(i.geometries=o),a.length>0&&(i.materials=a),l.length>0&&(i.textures=l),c.length>0&&(i.images=c),u.length>0&&(i.interactionStates=u),h.length>0&&(i.nodes=h)}return i.object=s,i}fromJSON(t){return this.uuid=t.uuid,t.name!==void 0&&(this.name=t.name),t.matrix!==void 0?(this.matrix.fromArray(t.matrix),t.matrixAutoUpdate!==void 0&&(this.matrixAutoUpdate=t.matrixAutoUpdate),this.matrixAutoUpdate&&this.matrix.decompose(this.position,this.quaternion,this.scale)):(t.position!==void 0&&this.position.fromArray(t.position),t.rotation!==void 0&&this.rotation.fromArray(t.rotation),t.quaternion!==void 0&&this.quaternion.fromArray(t.quaternion),t.scale!==void 0&&this.scale.fromArray(t.scale)),this.castShadow=t.castShadow!==void 0,this.receiveShadow=t.receiveShadow!==void 0,t.visible!==void 0&&(this.visible=t.visible),t.frustumCulled!==void 0&&(this.frustumCulled=t.frustumCulled),t.renderOrder!==void 0&&(this.renderOrder=t.renderOrder),t.layers!==void 0&&(this.layers.mask=t.layers),t.userData!==void 0&&(this.userData=t.userData),this}};var ei=r=>"isEntity"in r,wS=r=>"isAbstractMesh"in r,Xm=r=>"objectHelper"in r,Ii=r=>class extends Ld(r){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new me;this.interaction=new Ls(this);this.forceComputeSize=!1}set visibility(t){this.visible=t;for(let n of this.children)ei(n)&&n.traverseEntity(i=>{Xm(i)&&i.visible&&(i.objectHelper.visible=t)})}get visibility(){return this.visible}get interactionCache(){return this.interaction.cache===void 0&&this.interaction.computeCache(),this.interaction.cache}traverseEntity(t){t(this);for(let n of this.children)ei(n)&&n.traverseEntity(t)}computeSingleBoundingBox(){this.singleBoundingBox||(this.singleBoundingBox=new jh),this.singleBoundingBox.setFromObjectSize(this,!1),this.singleBoundingBox.computeVertices(),this.singleBoundingBox.computeEdges(),this.singleBoundingBox.computeFaces()}computeComplexBoundingBox(t){this.complexBoundingBox||(this.complexBoundingBox=new jh),this.complexBoundingBox.setFromObjectSize(this,t),this.complexBoundingBox.computeVertices(),this.complexBoundingBox.computeEdges(),this.complexBoundingBox.computeFaces()}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,t=!0);for(let n of this.children)n.updateMatrixWorld(t)}updateWorldMatrix(t,n){let i=this.parent;if(t&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),n)for(let s of this.children)s.updateWorldMatrix(!1,!0)}shallowClone(t){return new this.constructor().shallowCopy(this,t)}shallowCopy(t,n=!0){if(super.copy(t,!1),this.raycastLock=t.raycastLock,this.scaleLock=t.scaleLock,this.hiddenMatrix.copy(t.hiddenMatrix),t.interaction!==void 0&&this.interaction.copy(t.interaction),n===!0)for(let i of t.children)ei(i)&&this.add(i.shallowClone());return this}clone(t){return new this.constructor().copy(this,t)}copy(t,n=!0){if(super.copy(t,!1),this.raycastLock=t.raycastLock,this.scaleLock=t.scaleLock,this.hiddenMatrix.copy(t.hiddenMatrix),t.interaction!==void 0&&this.interaction.copy(t.interaction),n===!0)for(let i of t.children)ei(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let t=new me,n=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),t.copy(this.matrixWorld).invert(),t.multiply(n);for(let i of this.children)ei(i)&&i.hiddenMatrix.premultiply(t)}toJSON(t){let n=super.toJSON(t),i=n.object;return this.raycastLock===!0&&(i.raycastLock=!0),this.scaleLock===!0&&(i.scaleLock=!0),i.hiddenMatrix=this.hiddenMatrix.toArray(),this.interaction!==void 0&&(i.interaction=this.interaction.toJSON(t)),n}fromJSON(t){return super.fromJSON(t),t.raycastLock!==void 0&&(this.raycastLock=t.raycastLock),t.scaleLock!==void 0&&(this.scaleLock=t.scaleLock),this.hiddenMatrix.fromArray(t.hiddenMatrix),this}fromObject3D(t){let n=t.children;return t.children=[],Object.assign(t,{raycastLock:!1,scaleLock:!1,hiddenMatrix:new me}),this.copy(t),t.children=n,this}};var Id=class extends Ke{constructor(e,t={}){super();this.object=e,e.computeComplexBoundingBox(!0);let n=e.complexBoundingBox.getSize(new M),i=.1;this.parameters={type:t.type!==void 0?t.type:"radial",hideBase:t.hideBase!==void 0?t.hideBase:!1,count:t.count!==void 0?t.count:3,ra_radius:t.ra_radius!==void 0?t.ra_radius:Math.max(n.x,n.y)*2,ra_startAngle:t.ra_startAngle!==void 0?t.ra_startAngle:0,ra_endAngle:t.ra_endAngle!==void 0?t.ra_endAngle:360,ra_align:t.ra_align!==void 0?t.ra_align:!1,ra_axis:t.ra_axis!==void 0?t.ra_axis:"y",ra_scale:t.ra_scale!==void 0?t.ra_scale.clone():new M,ra_rotation:t.ra_rotation!==void 0?t.ra_rotation.clone():new On,ra_position:t.ra_position!==void 0?t.ra_position.clone():new M,li_scale:t.li_scale!==void 0?t.li_scale.clone():new M,li_rotation:t.li_rotation!==void 0?t.li_rotation.clone():new On,li_position:t.li_position!==void 0?t.li_position.clone():new M(n.x+n.x*i,0,0).round(),gr_count:t.gr_count!==void 0?t.gr_count.clone():new M(2,2,2),gr_size:t.gr_size!==void 0?t.gr_size.clone():new M(n.x+n.x*i,n.y+n.y*i,n.z+n.z*i).round(),gr_fromCenter:t.gr_fromCenter!==void 0?t.gr_fromCenter:!0},this.update(),this.setHideBase(this.parameters.hideBase)}refreshMaterial(){if("material"in this.object)for(let e of this.children)e.material=this.object.material}setHideBase(e){if("material"in this.object){if(Array.isArray(this.object.material)){if(this.children.length>0){for(let t of this.object.material)t.visible=!0;if(e){let t=this.object.material.map(n=>n.clone());for(let n of this.children)n.material=t}else for(let t of this.children)t.material=this.object.material}for(let t of this.object.material)t.visible=!e}else{if(this.children.length>0)if(this.object.material.visible=!0,e){let t=this.object.material.clone();for(let n of this.children)n.material=t}else for(let t of this.children)t.material=this.object.material;this.object.material.visible=!e}this.parameters.hideBase=e}}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters)}}_updateCount(){let e=this.parameters.type==="grid"?this.parameters.gr_count.x*this.parameters.gr_count.y*this.parameters.gr_count.z:this.parameters.count;if(this.children.length!==e)if(this.children.lengths.clone()):this.material.clone();return new this.constructor(n,i).copy(this,e)}copy(e,t=!0){return super.copy(e,t),e.cloner&&(this.cloner=new Id(e,e.cloner.parameters),this.add(this.cloner)),this}toJSON(e){let t=super.toJSON(e),n=t.object;if(this.cloner!==void 0&&(n.cloner=this.cloner.toJSON()),n.geometry=xS(e.geometries,this.geometry,this.material),Array.isArray(this.material)){let i=[];for(let s=0,o=this.material.length;s{var e;return e=class extends r{constructor(){super(...arguments);this.isObjectHelper=!0}},e.geometryHelper=new jn(30,30,30),e};var qm=new or,Ym=new ti,SS=new me,br=(r,e,t,n)=>{let i=e,s=r.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Ym.copy(i.boundingSphere),Ym.applyMatrix4(s),t.ray.intersectsSphere(Ym)===!1||(SS.copy(s).invert(),qm.copy(t.ray).applyMatrix4(SS),i.boundingBox!==null&&qm.intersectsBox(i.boundingBox)===!1))return;let o,a,l,c,u=i.index,h=i.attributes.position,d=i.drawRange,f,p,m=Math.max(0,d.start),v=Math.min(u.count,d.start+d.count);for(f=m,p=v;fx.far?null:{faceIndex:1,distance:G,point:P.clone(),object:y}}};var Kc=class extends xr(xi){constructor(e){super(e);this.object=e;let t=new Ji(15,4,2),n=new dn({wireframe:!0,fog:!1,toneMapped:!1}),i=new gt(t,n);this.add(i);let s=new Ji(15,4,2),o=new dn({wireframe:!0,fog:!1,toneMapped:!1,depthTest:!1,depthWrite:!1}),a=new gt(s,o);this.add(a),this.targetHelper=a,this.object=e,this.name=`CombinedCameraHelper: ${e.uuid}`}updateMatrixWorld(e){super.updateMatrixWorld(e),this.updateTarget()}updateTarget(){let e=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(e),this.targetHelper.position.copy(e),this.targetHelper.updateWorldMatrix(!1,!0)}raycast(e,t){br(this.object,Kc.geometryHelper,e,t)}};var Qc=class extends xr(Bp){constructor(e,t=15,n=10066329){super(e,t,n);this.object=e;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,t){br(this.object,Qc.geometryHelper,e,t)}};var Zc=class extends xr(Op){constructor(e,t=15){super(t);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,t){br(this.object,Zc.geometryHelper,e,t)}update(){}};var $c=class extends xr(Rp){constructor(e,t=15,n=6710886){super(e,t,n);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,t){br(this.object,$c.geometryHelper,e,t)}};var Dd=class extends xr(Pp){constructor(e,t=6710886){super(e,t);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,t){br(this.object,Dd.geometryHelper,e,t)}update(){if(this.object!==void 0){let e=Dd._vector,t=this.object.distance?this.object.distance:1e3,n=t*Math.tan(this.object.angle);this.cone.scale.set(n,n,t),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let i=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let s=0,o=this.cone.material.length;s{if(this.geometry instanceof Rc){if(this.geometry.updateFromShape()){let e=this.geometry.drawCount,t=this.geometry.userData;this.updateGeometry(Object.assign(this.geometry.userData,{parameters:Object.assign(t.parameters,{surfaceMaxCount:e+1e3})}))}}else this.updateGeometry({});this.computeSingleBoundingBox(),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};var n;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,(n=this.shape.eventDispatcher)==null||n.addEventListener("update",this._onShapeUpdate)}toJSON(e){let t=super.toJSON(e);return t.object.objectType="VectorObject",t}setHelperVisibility(){}updateGeometry(e){if(super.updateGeometry(e),"userData"in this.geometry){let t=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:t})}}setShape(e){var t,n;this.shape&&((t=this.shape.eventDispatcher)==null||t.removeEventListener("update",this._onShapeUpdate)),this.shape=e,(n=this.shape.eventDispatcher)==null||n.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),_S.getNormalMatrix(this.matrixWorld),MS.copy(c3).applyMatrix3(_S).normalize(),AS.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(MS,AS)}clone(e){let t=this.shape.clone(),n=this.material.clone(),i=this.geometry.userData,s=Pn.create(Object.assign({},i,{shape:t})),o=new Ps(s,n).copy(this,e);return o.shape=t,t.update(),o}raycast(e,t){Vn.prototype.raycast.call(this,e,t)}};var wr=(r,e)=>class extends r{constructor(){super(...arguments);this.objectHelper=new e(this);this.enableHelper=!1}set visibility(n){this.visible=n,this.setHelperVisibility(n),this.setHelperChildrenVisibility(n)}get visibility(){return this.visible}get geometryHelper(){return e.geometryHelper}setHelperVisibility(n){this.objectHelper.visible=n}setHelperChildrenVisibility(n){for(let i of this.children)ei(i)&&i.traverseEntity(s=>{Xm(s)&&s.visible&&(s.objectHelper.visible=n)})}raycast(n,i){this.objectHelper.raycast(n,i)}copy(n,i=!0){return super.copy(n,i),n.enableHelper!==void 0&&(this.enableHelper=n.enableHelper),n.objectHelper!==void 0&&(this.objectHelper.visible=n.objectHelper.visible),this}toJSON(n){let i=super.toJSON(n),s=i.object;return s.enableHelper=this.enableHelper,i}fromJSON(n){return super.fromJSON(n),n.enableHelper!==void 0&&(this.enableHelper=!0),this}};var wl=new M,Km=new M,Qm=class extends wr(Ii(Dr),Kc){constructor(e=100,t=100,n=45,i=50,s=5e4){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=Qm.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=window.innerWidth,this.height=window.innerHeight,this.orthoCamera=new Rr(e*-.5,e*.5,t*.5,t*-.5,i,s),this.perspCamera=new Vt(n,e/t,i,s),this.left=this.orthoCamera.left,this.right=this.orthoCamera.right,this.top=this.orthoCamera.top,this.bottom=this.orthoCamera.bottom,this.far=this.orthoCamera.far,this.view=this.orthoCamera.view,this.aspect=this.perspCamera.aspect,this.fov=this.perspCamera.fov,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.toOrthographic(!0)}setDefault(){this.name="Default Camera",this.isEntity=!1,this.enableHelper=!1,this.objectHelper.visible=!1}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}set cameraType(e){e==="PerspectiveCamera"?this.toPerspective():e==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(e){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=e:this.orthoCamera.near=e}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(e){e>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=e:this.orthoCamera.zoom=e)}lookAt(e){super.lookAt(e),this.getWorldPosition(wl),this.targetOffset=wl.distanceTo(e)}getTarget(e=new M){return this.getWorldDirection(Km),this.getWorldPosition(wl),Km.multiplyScalar(this.targetOffset),e.copy(wl).add(Km),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(wl),wl.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new Tt),t=new M(0,0,1).applyQuaternion(e),n=new M().copy(Ke.DefaultUp).applyQuaternion(e),i=new M().copy(Ke.DefaultUp).projectOnPlane(t),s=new M().crossVectors(i,n).dot(t)>=0?1:-1;this.angleOffsetFromUp=i.angleTo(n)*s}getViewFrontToObject(e){let t=e.getWorldPosition(new M),i=e.getWorldDirection(new M).multiplyScalar(this.targetOffset);return{position:t.clone().add(i),target:t}}getViewToObject(e){let t=e.getWorldPosition(new M),i=this.getWorldDirection(new M).multiplyScalar(this.targetOffset);return{position:t.clone().sub(i),target:t}}setViewplaneSize(e,t){this.left=-e*.5,this.right=e*.5,this.top=t*.5,this.bottom=-t*.5,this.aspect=e/t,this.updateProjectionMatrix()}toOrthographic(e){this.orthoCamera.left=this.left,this.orthoCamera.right=this.right,this.orthoCamera.top=this.top,this.orthoCamera.bottom=this.bottom,this.orthoCamera.view=this.view,this.orthoCamera.far=this.far,this.orthoCamera.updateProjectionMatrix(),this.projectionMatrix=this.orthoCamera.projectionMatrix,this.projectionMatrixInverse=this.orthoCamera.projectionMatrixInverse,this._cameraType="OrthographicCamera",(this.enableHelper===!0||e===!0)&&this.objectHelper.update()}toPerspective(e){this.perspCamera.aspect=this.aspect,this.perspCamera.fov=this.fov,this.perspCamera.view=this.view,this.perspCamera.far=this.far,this.perspCamera.updateProjectionMatrix(),this.projectionMatrix=this.perspCamera.projectionMatrix,this.projectionMatrixInverse=this.perspCamera.projectionMatrixInverse,this._cameraType="PerspectiveCamera",(this.enableHelper===!0||e===!0)&&this.objectHelper.update()}setFocalLength(e){this.perspCamera.setFocalLength(e),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(e,t,n,i,s,o){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,t,n,i,s,o):this.orthoCamera.setViewOffset(e,t,n,i,s,o)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(e){this._cameraType==="PerspectiveCamera"?this.toPerspective(e):this._cameraType==="OrthographicCamera"&&this.toOrthographic(e)}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,t){return super.copy(e,t),this.orthoCamera.copy(e.orthoCamera),this.perspCamera.copy(e.perspCamera),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.far=e.far,this.view=e.view===null?null:Object.assign({},e.view),this._cameraType=e._cameraType,this.aspect=e.aspect,this.fov=e.fov,this.focus=e.focus,this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this.targetOffset=e.targetOffset,this.updateProjectionMatrix(),this}fromCameraRender(e){let t={near:this.orthoCamera.near,far:this.orthoCamera.far},n={near:this.perspCamera.near,far:this.perspCamera.far};return this.copy(e),this.name="",this.isEntity=!0,this.enableHelper=!0,this.objectHelper.visible=!0,this.orthoCamera.near=t.near,this.orthoCamera.far=t.far,this.perspCamera.near=n.near,this.perspCamera.far=n.far,this.updateProjectionMatrix(),this}toJSON(e){let t=super.toJSON(e),n=t.object;return n.objectType="CombinedCamera",n.cameraType=this.cameraType,n.targetOffset=this.targetOffset,n.isUpVectorFlipped=this.isUpVectorFlipped,n.angleOffsetFromUp=this.angleOffsetFromUp,n.left=this.left,n.right=this.right,n.top=this.top,n.bottom=this.bottom,this.view!==null&&(n.view=Object.assign({},this.view)),n.zoomOrtho=this.orthoCamera.zoom,n.nearOrtho=this.orthoCamera.near,n.far=this.far,n.aspect=this.aspect,n.fov=this.fov,n.focus=this.focus,n.filmGauge=this.filmGauge,n.filmOffset=this.filmOffset,n.zoomPersp=this.perspCamera.zoom,n.nearPersp=this.perspCamera.near,t}fromJSON(e){var t,n;if(super.fromJSON(e),this.cameraType=e.cameraType,e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.orbitControlsTarget!==void 0){let i=this.getWorldPosition(new M),s=new M().fromArray(e.orbitControlsTarget);this.targetOffset=s.distanceTo(i)}else e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset);return this.isUpVectorFlipped=(t=e.isUpVectorFlipped)!=null?t:!1,this.angleOffsetFromUp=(n=e.angleOffsetFromUp)!=null?n:0,e.left!==void 0&&(this.left=e.left),e.right!==void 0&&(this.right=e.right),e.top!==void 0&&(this.top=e.top),e.bottom!==void 0&&(this.bottom=e.bottom),e.view!==void 0&&(this.view=Object.assign({},e.view)),e.zoomOrtho!==void 0&&(this.orthoCamera.zoom=e.zoomOrtho),e.nearOrtho!==void 0&&(this.orthoCamera.near=e.nearOrtho),e.far!==void 0&&(this.far=e.far),e.aspect!==void 0&&(this.aspect=e.aspect),e.fov!==void 0&&(this.fov=e.fov),e.focus!==void 0&&(this.focus=e.focus),e.filmGauge!==void 0&&(this.filmGauge=e.filmGauge),e.filmOffset!==void 0&&(this.filmOffset=e.filmOffset),e.zoomPersp!==void 0&&(this.perspCamera.zoom=e.zoomPersp),e.nearPersp!==void 0&&(this.perspCamera.near=e.nearPersp),this.updateProjectionMatrix(),this}},Sr=Qm;Sr.DefaultTargetOffset=1e3;var Pi=class extends wr(Ii(Jn),Zc){constructor(){super(...arguments);this.objectType="EmptyObject"}toJSON(e){let t=super.toJSON(e);return t.object.objectType="EmptyObject",t}};var Rd=class extends wr(Ii(Fr),Qc){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let n=this.shadow.camera;n.top=1250,n.bottom=-1250,n.right=1250,n.left=-1250,n.near=1,n.far=2500;let i=new xi(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof xi&&(t.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof xi&&(t.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let t=this._gizmos[e];t instanceof xi&&t.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,t=!0){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e),n=t.object;return n.objectType="LightDirectional",n.color=this.color.getHex(),n.intensity=this.intensity,n.shadow=this.shadow.toJSON(),t}fromJSON(e){var i;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.shadow.normalBias=(i=e.shadow.normalBias)!=null?i:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray(e.shadow.mapSize);let t=this.shadow.camera,n=e.shadow.camera;return t.near=n.near,t.far=n.far,t.zoom=n.zoom,t.left=n.left,t.right=n.right,t.top=n.top,t.bottom=n.bottom,n.view!==void 0&&(t.view=Object.assign({},n.view)),this}};var Bd=class extends wr(Ii(xo),$c){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let n=this.shadow.camera;n.fov=90,n.aspect=1,n.near=100,n.far=2500;let i=new M(-n.far+this.position.x,-n.far+this.position.y,-n.far+this.position.z),s=new M(n.far+this.position.x,n.far+this.position.y,n.far+this.position.z),o=new tn(i,s),a=new Da(o,new fe(16755200));a.visible=!1,this._gizmos.shadowmap=a,this.update()}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof Da&&(t.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof Da&&(t.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let t=this._gizmos[e];if(t instanceof Da){let n=this.shadow.camera,i=new M(-n.far+this.position.x,-n.far+this.position.y,-n.far+this.position.z),s=new M(n.far+this.position.x,n.far+this.position.y,n.far+this.position.z);t.box.set(i,s),t.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,t=!0){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e),n=t.object;return n.objectType="LightPoint",n.color=this.color.getHex(),n.intensity=this.intensity,n.distance=this.distance,n.decay=this.decay,n.shadow=this.shadow.toJSON(),t}fromJSON(e){var i,s;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.distance=e.distance,this.decay=e.decay,this.shadow.normalBias=(i=e.shadow.normalBias)!=null?i:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray((s=e.shadow.mapSize)!=null?s:[512,512]);let t=this.shadow.camera,n=e.shadow.camera;return t.near=n.near,t.far=n.far,t.zoom=n.zoom,t.fov=n.fov,t.focus=n.focus,t.aspect=n.aspect,t.filmGauge=n.filmGauge,t.filmOffset=n.filmOffset,n.view!==void 0&&(t.view=Object.assign({},n.view)),this}};var TS=new M,ES=new M,NS=new Tt,Od=class extends wr(Ii(vo),Pd){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let n=this.shadow.camera;n.fov=Ee.RAD2DEG*2*this.angle,n.aspect=1,n.near=100,n.far=2500;let i=new xi(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof xi&&(t.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof xi&&(t.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let t=this._gizmos[e];t instanceof xi&&t.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),ES.setFromMatrixPosition(this.matrixWorld),NS.setFromRotationMatrix(this.matrixWorld),TS.copy(this.up).applyQuaternion(NS).negate().multiplyScalar(this.distance),this.target.position.copy(ES).add(TS),this.target.updateMatrixWorld(),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,t=!0){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e),n=t.object;return n.objectType="LightSpot",n.color=this.color.getHex(),n.intensity=this.intensity,n.distance=this.distance,n.angle=this.angle,n.decay=this.decay,n.penumbra=this.penumbra,n.shadow=this.shadow.toJSON(),t}fromJSON(e){var i;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.distance=e.distance,this.angle=e.angle,this.decay=e.decay,this.penumbra=e.penumbra,this.shadow.normalBias=(i=e.shadow.normalBias)!=null?i:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray(e.shadow.mapSize);let t=this.shadow.camera,n=e.shadow.camera;return t.near=n.near,t.far=n.far,t.zoom=n.zoom,t.fov=n.fov,t.focus=n.focus,t.aspect=n.aspect,t.filmGauge=n.filmGauge,t.filmOffset=n.filmOffset,n.view!==void 0&&(t.view=Object.assign({},n.view)),this}};var CS=r=>r.tagName==="VIDEO",Sl=class{static resize(e,t,n){let i=e/t,s;if(!n.image)return;let o=n.image;CS(o)?s=o.videoWidth/o.videoHeight:s=o.width/o.height,i>s&&(n.imageType=="WEBCAM"?n.repeat.set(-1,1*s/i):n.repeat.set(1,1*s/i)),is?o={x:1,y:s/i}:io&&(n.imageType=="WEBCAM"?n.repeat.set(1/e*-1,1/t*o/s):n.repeat.set(1/e,1/t*o/s)),so&&(n.imageType=="WEBCAM"?n.repeat.set(-1,1*o/s):n.repeat.set(1,1*o/s)),s{let o=()=>{s({error:!0,filename:r.name}),e.itemError(r.name),e.itemEnd(r.name)};switch(n.addEventListener("loadstart",()=>{e.itemStart(r.name)}),n.addEventListener("load",a=>{var c;let l=(c=a.target)==null?void 0:c.result;l!=null?i(l):o()},!1),n.addEventListener("error",o),t){case 0:n.readAsText(r);break;case 2:n.readAsBinaryString!==void 0&&n.readAsBinaryString(r);break;case 1:default:n.readAsArrayBuffer(r)}})}var Zm=class extends fn{constructor(e){super(e);this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(t){return new DS(t)}),this.register(function(t){return new zS(t)}),this.register(function(t){return new GS(t)}),this.register(function(t){return new RS(t)}),this.register(function(t){return new BS(t)}),this.register(function(t){return new OS(t)}),this.register(function(t){return new FS(t)}),this.register(function(t){return new IS(t)}),this.register(function(t){return new US(t)})}load(e,t,n,i){let s=this,o;this.resourcePath!==""?o=this.resourcePath:this.path!==""?o=this.path:o=Ei.extractUrlBase(e),this.manager.itemStart(e);let a=function(c){i?i(c):console.error(c),s.manager.itemError(e),s.manager.itemEnd(e)},l=new Xn(this.manager);l.setPath(this.path),l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(e,function(c){try{s.parse(c,o,function(u){t(u),s.manager.itemEnd(e)},a)}catch(u){a(u)}},n,a)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return this.pluginCallbacks.indexOf(e)===-1&&this.pluginCallbacks.push(e),this}unregister(e){return this.pluginCallbacks.indexOf(e)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,n,i){let s,o={},a={};if(typeof e=="string")s=e;else if(Ei.decodeText(new Uint8Array(e,0,4))===kS){try{o[dt.KHR_BINARY_GLTF]=new HS(e)}catch(h){i&&i(h);return}s=o[dt.KHR_BINARY_GLTF].content}else s=Ei.decodeText(new Uint8Array(e));let l=JSON.parse(s);if(l.asset===void 0||l.asset.version[0]<2){i&&i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}let c=new $S(l,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let u=0;u=0&&a[h]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+h+'".')}}c.setExtensions(o),c.setPlugins(a),c.parse(n,i)}};function u3(){let r={};return{get:function(e){return r[e]},add:function(e,t){r[e]=t},remove:function(e){delete r[e]},removeAll:function(){r={}}}}var dt={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression"},IS=class{constructor(e){this.parser=e,this.name=dt.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let n=0,i=t.length;n=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,o,a)}},GS=class{constructor(e){this.parser=e,this.name=dt.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){let t=this.name,n=this.parser,i=n.json,s=i.textures[e];if(!s.extensions||!s.extensions[t])return null;let o=s.extensions[t],a=i.images[o.source],l=n.textureLoader;if(a.uri){let c=n.options.manager.getHandler(a.uri);c!==null&&(l=c)}return this.detectSupport().then(function(c){if(c)return n.loadTextureImage(e,a,l);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return n.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){let t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(t.height===1)}})),this.isSupported}},US=class{constructor(e){this.name=dt.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){let t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){let i=n.extensions[this.name],s=this.parser.getDependency("buffer",i.buffer),o=this.parser.options.meshoptDecoder;if(!o||!o.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return Promise.all([s,o.ready]).then(function(a){let l=i.byteOffset||0,c=i.byteLength||0,u=i.count,h=i.byteStride,d=new ArrayBuffer(u*h),f=new Uint8Array(a[0],l,c);return o.decodeGltfBuffer(new Uint8Array(d),u,h,f,i.mode,i.filter),d})}else return null}},kS="glTF",eu=12,VS={JSON:1313821514,BIN:5130562},HS=class{constructor(e){this.name=dt.KHR_BINARY_GLTF,this.content=null,this.body=null;let t=new DataView(e,0,eu);if(this.header={magic:Ei.decodeText(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==kS)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");let n=this.header.length-eu,i=new DataView(e,eu),s=0;for(;s",t).replace("#include ",n).replace("#include ",i).replace("#include ",s).replace("#include ",o)},Object.defineProperties(this,{specular:{get:function(){return a.specular.value},set:function(l){a.specular.value=l}},specularMap:{get:function(){return a.specularMap.value},set:function(l){a.specularMap.value=l,l?this.defines.USE_SPECULARMAP="":delete this.defines.USE_SPECULARMAP}},glossiness:{get:function(){return a.glossiness.value},set:function(l){a.glossiness.value=l}},glossinessMap:{get:function(){return a.glossinessMap.value},set:function(l){a.glossinessMap.value=l,l?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_UV=""):(delete this.defines.USE_GLOSSINESSMAP,delete this.defines.USE_UV)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(e)}copy(e){return super.copy(e),this.specularMap=e.specularMap,this.specular.copy(e.specular),this.glossinessMap=e.glossinessMap,this.glossiness=e.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this}},JS=class{constructor(){this.name=dt.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,this.specularGlossinessParams=["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity","refractionRatio"]}getMaterialType(){return zd}extendParams(e,t,n){let i=t.extensions[this.name];e.color=new fe(1,1,1),e.opacity=1;let s=[];if(Array.isArray(i.diffuseFactor)){let o=i.diffuseFactor;e.color.fromArray(o),e.opacity=o[3]}if(i.diffuseTexture!==void 0&&s.push(n.assignTexture(e,"map",i.diffuseTexture)),e.emissive=new fe(0,0,0),e.glossiness=i.glossinessFactor!==void 0?i.glossinessFactor:1,e.specular=new fe(1,1,1),Array.isArray(i.specularFactor)&&e.specular.fromArray(i.specularFactor),i.specularGlossinessTexture!==void 0){let o=i.specularGlossinessTexture;s.push(n.assignTexture(e,"glossinessMap",o)),s.push(n.assignTexture(e,"specularMap",o))}return Promise.all(s)}createMaterial(e){let t=new zd(e);return t.fog=!0,t.color=e.color,t.map=e.map===void 0?null:e.map,t.lightMap=null,t.lightMapIntensity=1,t.aoMap=e.aoMap===void 0?null:e.aoMap,t.aoMapIntensity=1,t.emissive=e.emissive,t.emissiveIntensity=1,t.emissiveMap=e.emissiveMap===void 0?null:e.emissiveMap,t.bumpMap=e.bumpMap===void 0?null:e.bumpMap,t.bumpScale=1,t.normalMap=e.normalMap===void 0?null:e.normalMap,t.normalMapType=Qr,e.normalScale&&(t.normalScale=e.normalScale),t.displacementMap=null,t.displacementScale=1,t.displacementBias=0,t.specularMap=e.specularMap===void 0?null:e.specularMap,t.specular=e.specular,t.glossinessMap=e.glossinessMap===void 0?null:e.glossinessMap,t.glossiness=e.glossiness,t.alphaMap=null,t.envMap=e.envMap===void 0?null:e.envMap,t.envMapIntensity=1,t.refractionRatio=.98,t}},XS=class{constructor(){this.name=dt.KHR_MESH_QUANTIZATION}},Oo=class extends qi{constructor(e,t,n,i){super(e,t,n,i)}copySampleValue_(e){let t=this.resultBuffer,n=this.sampleValues,i=this.valueSize,s=e*i*3+i;for(let o=0;o!==i;o++)t[o]=n[s+o];return t}};Oo.prototype.beforeStart_=Oo.prototype.copySampleValue_;Oo.prototype.afterEnd_=Oo.prototype.copySampleValue_;Oo.prototype.interpolate_=function(r,e,t,n){let i=this.resultBuffer,s=this.sampleValues,o=this.valueSize,a=o*2,l=o*3,c=n-e,u=(t-e)/c,h=u*u,d=h*u,f=r*l,p=f-l,m=-2*d+3*h,v=d-h,g=1-m,y=v-h+u;for(let x=0;x!==o;x++){let b=s[p+x+o],w=s[p+x+a]*c,_=s[f+x+o],S=s[f+x]*c;i[x]=g*b+y*w+m*_+v*S}return i};var jr={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},tu={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},qS={9728:Pt,9729:$e,9984:Xs,9985:jo,9986:qs,9987:Ai},YS={33071:Zt,33648:qr,10497:di},KS={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},$m={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},Rs={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},h3={CUBICSPLINE:void 0,LINEAR:Er,STEP:Yr},eg={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function QS(r,e){return typeof r!="string"||r===""?"":(/^https?:\/\//i.test(e)&&/^\//.test(r)&&(e=e.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(r)||/^data:.*,.*$/i.test(r)||/^blob:.*$/i.test(r)?r:e+r)}function d3(r){return r.DefaultMaterial===void 0&&(r.DefaultMaterial=new Xi({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:Oi})),r.DefaultMaterial}function nu(r,e,t){for(let n in t.extensions)r[n]===void 0&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[n]=t.extensions[n])}function Fo(r,e){e.extras!==void 0&&(typeof e.extras=="object"?Object.assign(r.userData,e.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+e.extras))}function f3(r,e,t){let n=!1,i=!1;for(let a=0,l=e.length;a=2&&v.setY(T,_[S*l+1]),l>=3&&v.setZ(T,_[S*l+2]),l>=4&&v.setW(T,_[S*l+3]),l>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return v})}loadTexture(e){let t=this.json,n=this.options,i=t.textures[e],s=t.images[i.source],o=this.textureLoader;if(s.uri){let a=n.manager.getHandler(s.uri);a!==null&&(o=a)}return this.loadTextureImage(e,s,o)}loadTextureImage(e,t,n){let i=this,s=this.json,o=this.options,a=s.textures[e],l=(t.uri||t.bufferView)+":"+a.sampler;if(this.textureCache[l])return this.textureCache[l];let c=self.URL||self.webkitURL,u=t.uri||"",h=!1,d=!0,f=u.search(/\.jpe?g($|\?)/i)>0||u.search(/^data\:image\/jpeg/)===0;if((t.mimeType==="image/jpeg"||f)&&(d=!1),t.bufferView!==void 0)u=i.getDependency("bufferView",t.bufferView).then(function(m){if(t.mimeType==="image/png"){let g=new DataView(m,25,1).getUint8(0,!1);d=g===6||g===4||g===3}h=!0;let v=new Blob([m],{type:t.mimeType});return u=c.createObjectURL(v),u});else if(t.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");let p=Promise.resolve(u).then(function(m){return new Promise(function(v,g){let y=v;n.isImageBitmapLoader===!0&&(y=function(x){let b=new xt(x);b.needsUpdate=!0,v(b)}),n.load(QS(m,o.path),y,void 0,g)})}).then(function(m){h===!0&&c.revokeObjectURL(u),m.flipY=!1,a.name&&(m.name=a.name),d||(m.format=Nt);let g=(s.samplers||{})[a.sampler]||{};return m.magFilter=qS[g.magFilter]||$e,m.minFilter=qS[g.minFilter]||Ai,m.wrapS=YS[g.wrapS]||di,m.wrapT=YS[g.wrapT]||di,i.associations.set(m,{type:"textures",index:e}),m}).catch(function(){return console.error("THREE.GLTFLoader: Couldn't load texture",u),null});return this.textureCache[l]=p,p}assignTexture(e,t,n){let i=this;return this.getDependency("texture",n.index).then(function(s){if(n.texCoord!==void 0&&n.texCoord!=0&&!(t==="aoMap"&&n.texCoord==1)&&console.warn("THREE.GLTFLoader: Custom UV set "+n.texCoord+" for texture "+t+" not yet supported."),i.extensions[dt.KHR_TEXTURE_TRANSFORM]){let o=n.extensions!==void 0?n.extensions[dt.KHR_TEXTURE_TRANSFORM]:void 0;if(o){let a=i.associations.get(s);s=i.extensions[dt.KHR_TEXTURE_TRANSFORM].extendTexture(s,o),i.associations.set(s,a)}}return e[t]=s,s})}assignFinalMaterial(e){let t=e.geometry,n=e.material,i=t.attributes.tangent!==void 0,s=t.attributes.color!==void 0,o=t.attributes.normal===void 0;if(e.isPoints){let a="PointsMaterial:"+n.uuid,l=this.cache.get(a);l||(l=new Ta,nn.prototype.copy.call(l,n),l.color.copy(n.color),l.map=n.map,l.sizeAttenuation=!1,this.cache.add(a,l)),n=l}else if(e.isLine){let a="LineBasicMaterial:"+n.uuid,l=this.cache.get(a);l||(l=new Gn,nn.prototype.copy.call(l,n),l.color.copy(n.color),this.cache.add(a,l)),n=l}if(i||s||o){let a="ClonedMaterial:"+n.uuid+":";n.isGLTFSpecularGlossinessMaterial&&(a+="specular-glossiness:"),i&&(a+="vertex-tangents:"),s&&(a+="vertex-colors:"),o&&(a+="flat-shading:");let l=this.cache.get(a);l||(l=n.clone(),s&&(l.vertexColors=!0),o&&(l.flatShading=!0),i&&(l.normalScale&&(l.normalScale.y*=-1),l.clearcoatNormalScale&&(l.clearcoatNormalScale.y*=-1)),this.cache.add(a,l),this.associations.set(l,this.associations.get(n))),n=l}n.aoMap&&t.attributes.uv2===void 0&&t.attributes.uv!==void 0&&t.setAttribute("uv2",t.attributes.uv),e.material=n}getMaterialType(){return Xi}loadMaterial(e){let t=this,n=this.json,i=this.extensions,s=n.materials[e],o,a={},l=s.extensions||{},c=[];if(l[dt.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){let h=i[dt.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];o=h.getMaterialType(),c.push(h.extendParams(a,s,t))}else if(l[dt.KHR_MATERIALS_UNLIT]){let h=i[dt.KHR_MATERIALS_UNLIT];o=h.getMaterialType(),c.push(h.extendParams(a,s,t))}else{let h=s.pbrMetallicRoughness||{};if(a.color=new fe(1,1,1),a.opacity=1,Array.isArray(h.baseColorFactor)){let d=h.baseColorFactor;a.color.fromArray(d),a.opacity=d[3]}h.baseColorTexture!==void 0&&c.push(t.assignTexture(a,"map",h.baseColorTexture)),a.metalness=h.metallicFactor!==void 0?h.metallicFactor:1,a.roughness=h.roughnessFactor!==void 0?h.roughnessFactor:1,h.metallicRoughnessTexture!==void 0&&(c.push(t.assignTexture(a,"metalnessMap",h.metallicRoughnessTexture)),c.push(t.assignTexture(a,"roughnessMap",h.metallicRoughnessTexture))),o=this._invokeOne(function(d){return d.getMaterialType&&d.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(d){return d.extendMaterialParams&&d.extendMaterialParams(e,a)})))}s.doubleSided===!0&&(a.side=Xt);let u=s.alphaMode||eg.OPAQUE;return u===eg.BLEND?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,u===eg.MASK&&(a.alphaTest=s.alphaCutoff!==void 0?s.alphaCutoff:.5)),s.normalTexture!==void 0&&o!==dn&&(c.push(t.assignTexture(a,"normalMap",s.normalTexture)),a.normalScale=new O(1,-1),s.normalTexture.scale!==void 0&&a.normalScale.set(s.normalTexture.scale,-s.normalTexture.scale)),s.occlusionTexture!==void 0&&o!==dn&&(c.push(t.assignTexture(a,"aoMap",s.occlusionTexture)),s.occlusionTexture.strength!==void 0&&(a.aoMapIntensity=s.occlusionTexture.strength)),s.emissiveFactor!==void 0&&o!==dn&&(a.emissive=new fe().fromArray(s.emissiveFactor)),s.emissiveTexture!==void 0&&o!==dn&&c.push(t.assignTexture(a,"emissiveMap",s.emissiveTexture)),Promise.all(c).then(function(){let h;return o===zd?h=i[dt.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(a):h=new o(a),s.name&&(h.name=s.name),h.map&&(h.map.encoding=Fi),h.emissiveMap&&(h.emissiveMap.encoding=Fi),Fo(h,s),t.associations.set(h,{type:"materials",index:e}),s.extensions&&nu(i,h,s),h})}createUniqueName(e){let t=nt.sanitizeNodeName(e||""),n=t;for(let i=1;this.nodeNamesUsed[n];++i)n=t+"_"+i;return this.nodeNamesUsed[n]=!0,n}loadGeometries(e){let t=this,n=this.extensions,i=this.primitiveCache;function s(a){return n[dt.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(a,t).then(function(l){return tM(l,a,t)})}let o=[];for(let a=0,l=e.length;a0&&p3(g,s),g.name=t.createUniqueName(s.name||"mesh_"+e),Fo(g,s),v.extensions&&nu(i,g,v),t.assignFinalMaterial(g),h.push(g)}if(h.length===1)return h[0];let d=new Jn;for(let f=0,p=h.length;f1?l=new Jn:a.length===1?l=a[0]:l=new Ke,l!==a[0])for(let c=0,u=a.length;c{on.fontCache[e]=s,t(s)},void 0,n)})}static loadChar(e,t,n){if(on.charCache[e]){if(on.charCache[e][n]&&on.charCache[e][n].fontFamily===t)return on.charCache[e][n]}else on.charCache[e]={};let i=on.fontCache[t],s=i.generateShapes(e,1);return on.charCache[e][n]={geometry:new ps(s,n),fontFamily:t,resolution:i.data.resolution,glyphsHa:i.data.glyphs[e].ha},on.charCache[e][n]}},ui=on;ui.charCache={},ui.fontCache={},ui._fontPath="/_assets/_fonts/";var zo;(function(n){n[n.STANDARD=1]="STANDARD",n[n.UPPERCASE=2]="UPPERCASE",n[n.LOWERCASE=3]="LOWERCASE"})(zo||(zo={}));var Bs;(function(n){n[n.TOP=1]="TOP",n[n.MIDDLE=2]="MIDDLE",n[n.BOTTOM=3]="BOTTOM"})(Bs||(Bs={}));var hi;(function(i){i[i.LEFT=1]="LEFT",i[i.RIGHT=2]="RIGHT",i[i.CENTER=3]="CENTER",i[i.JUSTIFY=4]="JUSTIFY"})(hi||(hi={}));var Go;(function(t){t[t.TO_RIGHT=1]="TO_RIGHT",t[t.TO_LEFT=-1]="TO_LEFT"})(Go||(Go={}));var Gd=new O,_l=class{constructor(e,t,n){this.message=[];this.endLine=!0;this.yLinePos=e,this.lineHeight=t,this.maxCharSize=n,this.nextChar3DPos=new O(0,this.yLinePos+this.maxCharSize*this.lineHeight),this.align=hi.LEFT}addChar3D(e,t,n=this.message.length){this.message.splice(n,0,e),e.fontSize>this.maxCharSize?(this.maxCharSize=e.fontSize,this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight,this.fullUpdate(t)):(e.updatePosition(this.nextChar3DPos,t),this.nextChar3DPos.x+=e.charSize)}deleteChar3D(e=this.message.length-1){let t=this.message[e];if(t)return this.message.splice(e,1),this.nextChar3DPos.x-=t.charSize,t}isEndLine(e){this.endLine=e}fullUpdate(e,t=0){this.nextChar3DPos.x=0;for(let n=t,i=this.message.length;n=0;){if(this.message[n].char!==" "){t=this.message[n];break}n-=1}return!!(n>=0&&t&&t.localPosition.x+t.charSize>e)}containSpaceOverFlow(e=this.message.length-1){for(let t=e;t>=0;t-=1)if(this.message[t].char===" ")return!0;return!1}containSpace(e=this.message.length-1){if(this.endLine)return!0;for(let t=e;t>=0;t-=1)if(this.message[t].char===" ")return!0;return!1}popWord(e=this.message.length-1){let t=[],n=!0,i;for(i=e;i>=0;i-=1)if(this.message[i].char===" "){n=!1,t.length===0&&(i-=1,t.splice(0,0,this.message[i]));break}else t.splice(0,0,this.message[i]);return n?t=[]:this.message.splice(i+1,t.length),t}getWord(e=0,t=1){let n=[],i=e;for(i=e;;i+=t){if(!this.message[i]||this.message[i].char===" "){n.length===0&&this.message[i]&&(n.push(this.message[i]),this.message.splice(i,1));break}t>0?(n.push(this.message[i]),this.message.splice(i,1),i-=t):(n.splice(0,0,this.message[i]),this.message.splice(i,1))}return n}getWordAtIndex(e){let t=[];for(let n=e;n=0&&this.message[n].char!==" ";n--)t.splice(0,0,this.message[n]);return t}wordSize(e=0,t=-1){let n=0,i=e;for(;i>=0&&i=this.message.length)&&!this.endLine?this.message[e]?this.message[e].charSize:999999999:n===0?999999999:n}spaceLeft(e){return e-this.nextChar3DPos.x}popChar(e=this.message.length-1){return this.nextChar3DPos.x-=this.message[e].charSize,this.message.splice(e,1)}isEmpty(){return!this.message.length}updateNextCharPosY(){this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight}updateYLinePos(e){this.yLinePos=e,this.updateNextCharPosY()}updatelineHeight(e){this.lineHeight=e,this.updateNextCharPosY()}updateFontSize(e,t=0,n=this.message.length-1){for(let i=t;i<=n;i+=1)this.message[i].updateFontSize(e);this.maxCharSize=e,this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight}countSpaces(){let e=0;for(let t=0;t0){t.push(n[0]);return}let i=[];for(let s=0,o=this.children.length;s0)){i[0].object=this,t.push(i[0]);return}}updateGeometry(e){var c,u;let t=this.userData,n=this.geometry.userData,i=n.parameters.width,s=(c=e.parameters)==null?void 0:c.width,o=(u=e.parameters)==null?void 0:u.height,a=n.parameters.height,l=t.textFrame;super.updateGeometry(e),l.maxLineSize=n.parameters.width,l.textOrigin.set(n.parameters.width*-.5,n.parameters.height*.5,0),o!==void 0&&a!==o?(this.checkOverFlow(),this.checkCapacity()):s!==void 0&&(is&&this.checkOverFlow())}checkOverFlow(e=0){let t=this.userData,n=t.textFrame.textOrigin,i=t.textFrame.textLines;for(let s=e;s0){i[s+1]===void 0&&(i[s].isEndLine(!1),this.createTextLine());let a=0;for(let l=0;ls?this.checkOverFlow():e{let a=o.message.map(l=>({char:l.char,originalChar:l.originalChar,fontFamily:l.fontFamily,letterSpacing:l.letterSpacing,fontSize:l.fontSize,LOD:l.LOD}));return{align:o.align,endLine:o.endLine,lineHeight:o.lineHeight,maxCharSize:o.maxCharSize,yLinePos:o.yLinePos,message:a}});return n.userData.textFrame.textLinesData=s,t}async fromJSONasync(e){if(super.fromJSON(e),e.userData!==void 0){let t=e.userData.textFrame;await ui.loadFont(t.fontFamily),t.textOrigin=new M(t.textOrigin.x,t.textOrigin.y,t.textOrigin.z);let n=new dn({color:t.hexColor,opacity:t.opacity,visible:t.visible,transparent:!0,side:Xt});t.textLinesData&&(t.textLines=t.textLinesData.map((i,s)=>{let o=new _l(Number(i.yLinePos),Number(i.lineHeight),Number(i.maxCharSize)),a=i.message.map((l,c)=>{if(l.char===void 0){let d=t.textLines[s].message[c];if("geometries"in d){let f=d.geometries[0].userData.parameters;Object.assign(l,{LOD:f.lod,char:f.char,fontFamily:f.fontFamily,fontSize:f.fontSize,letterSpacing:f.letterSpacing,originalChar:f.char})}}let u={char:l.char,fontFamily:l.fontFamily,letterSpacing:Number(l.letterSpacing),fontSize:Number(l.fontSize),LOD:l.LOD},h=new ui(u,n.clone());return o.addChar3D(h,t.textOrigin),this.add(h),h});return o.message=a,o}),this.userData.textFrame=t),this.textFullUpdate()}return this}convertToVector(){let{fontFamily:e,hexColor:t}=this.userData.textFrame,n=new Pi;n.name="Text Shape";let i=ui.fontCache[e];for(let s of this.children)s instanceof ui&&i.generateShapes(s.char,1).forEach(o=>{var h;let a=new Lt().fromShape(o);a.applyScale(s.scale.x,s.scale.y);let l=Pn.create({shape:a}),c=new oi({side:Xt});(h=c.color)==null||h.value.setHex(t);let u=new Ps(l,c);u.name=s.char,u.position.copy(s.position),u.rotation.copy(s.rotation),n.attach(u)});return n}};Os.VERTICAL_ALIGN=Bs,Os.HORIZONTAL_ALIGN=hi,Os.TEXT_TRANSFORM=zo,Os.TRAVEL_DIRECTION=Go;var iM={RED:0,GREEN:1,BLUE:2,ALPHA:3};var iu="varying vec2 vUv;void main(){vUv=position.xy*0.5+0.5;gl_Position=vec4(position.xy,1.0,1.0);}";var y3=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +uniform lowp sampler2D cocBuffer;uniform vec2 texelSize;uniform float scale; +#if PASS == 1 +uniform vec4 kernel64[32]; +#else +uniform vec4 kernel16[8]; +#endif +varying vec2 vUv;void main(){ +#ifdef FOREGROUND +vec2 CoCNearFar=texture2D(cocBuffer,vUv).rg;float CoC=CoCNearFar.r*scale; +#else +float CoC=texture2D(cocBuffer,vUv).g*scale; +#endif +if(CoC==0.0){gl_FragColor=texture2D(inputBuffer,vUv);}else{ +#ifdef FOREGROUND +vec2 step=texelSize*max(CoC,CoCNearFar.g*scale); +#else +vec2 step=texelSize*CoC; +#endif +#if PASS == 1 +vec4 acc=vec4(0.0);for(int i=0;i<32;++i){vec4 kernel=kernel64[i];vec2 uv=step*kernel.xy+vUv;acc+=texture2D(inputBuffer,uv);uv=step*kernel.zw+vUv;acc+=texture2D(inputBuffer,uv);}gl_FragColor=acc/64.0; +#else +vec4 maxValue=texture2D(inputBuffer,vUv);for(int i=0;i<8;++i){vec4 kernel=kernel16[i];vec2 uv=step*kernel.xy+vUv;maxValue=max(texture2D(inputBuffer,uv),maxValue);uv=step*kernel.zw+vUv;maxValue=max(texture2D(inputBuffer,uv),maxValue);}gl_FragColor=maxValue; +#endif +}}`,Ud=class extends _t{constructor(r=!1,e=!1){super({type:"BokehMaterial",defines:{PASS:r?"2":"1"},uniforms:{kernel64:new Ae(null),kernel16:new Ae(null),inputBuffer:new Ae(null),cocBuffer:new Ae(null),texelSize:new Ae(new O),scale:new Ae(1)},fragmentShader:y3,vertexShader:iu,blending:It,depthWrite:!1,depthTest:!1});this.toneMapped=!1,e&&(this.defines.FOREGROUND="1"),this.generateKernel()}generateKernel(){let r=2.39996323,e=new Float32Array(128),t=new Float32Array(32),n=0,i=0;for(let a=0;a<80;++a){let l=a*r,c=Math.sqrt(a)/Math.sqrt(80),u=c*Math.cos(l),h=c*Math.sin(l);a%5==0?(t[i++]=u,t[i++]=h):(e[n++]=u,e[n++]=h)}let s=[],o=[];for(let a=0;a<128;)s.push(new Qe(e[a++],e[a++],e[a++],e[a++]));for(let a=0;a<32;)o.push(new Qe(t[a++],t[a++],t[a++],t[a++]));this.uniforms.kernel64.value=s,this.uniforms.kernel16.value=o}setTexelSize(r,e){this.uniforms.texelSize.value.set(r,e)}},v3=`#include +#include +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +uniform float focusDistance;uniform float focalLength;uniform float cameraNear;uniform float cameraFar;varying vec2 vUv;float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +return unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +return texture2D(depthBuffer,uv).r; +#endif +}void main(){float depth=readDepth(vUv); +#ifdef PERSPECTIVE_CAMERA +float viewZ=perspectiveDepthToViewZ(depth,cameraNear,cameraFar);float linearDepth=viewZToOrthographicDepth(viewZ,cameraNear,cameraFar); +#else +float linearDepth=depth; +#endif +float signedDistance=linearDepth-focusDistance;float magnitude=smoothstep(0.0,focalLength,abs(signedDistance));gl_FragColor.rg=vec2(step(signedDistance,0.0)*magnitude,step(0.0,signedDistance)*magnitude);}`,x3=class extends _t{constructor(r){super({type:"CircleOfConfusionMaterial",defines:{DEPTH_PACKING:"0"},uniforms:{depthBuffer:new Ae(null),focusDistance:new Ae(0),focalLength:new Ae(0),cameraNear:new Ae(.3),cameraFar:new Ae(1e3)},fragmentShader:v3,vertexShader:iu,blending:It,depthWrite:!1,depthTest:!1});this.toneMapped=!1,this.adoptCameraSettings(r)}get depthPacking(){return Number(this.defines.DEPTH_PACKING)}set depthPacking(r){this.defines.DEPTH_PACKING=r.toFixed(0),this.needsUpdate=!0}adoptCameraSettings(r=null){r!==null&&(this.uniforms.cameraNear.value=r.near,this.uniforms.cameraFar.value=r.far,r instanceof Vt?this.defines.PERSPECTIVE_CAMERA="1":delete this.defines.PERSPECTIVE_CAMERA,this.needsUpdate=!0)}},b3=`varying vec2 vUv;varying vec2 vUv0;varying vec2 vUv1; +#if EDGE_DETECTION_MODE != 0 +varying vec2 vUv2;varying vec2 vUv3;varying vec2 vUv4;varying vec2 vUv5; +#endif +#if EDGE_DETECTION_MODE == 1 +#include +#endif +#if EDGE_DETECTION_MODE == 0 || PREDICATION_MODE == 1 +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +return unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +return texture2D(depthBuffer,uv).r; +#endif +}vec3 gatherNeighbors(){float p=readDepth(vUv);float pLeft=readDepth(vUv0);float pTop=readDepth(vUv1);return vec3(p,pLeft,pTop);} +#elif PREDICATION_MODE == 2 +uniform sampler2D predicationBuffer;vec3 gatherNeighbors(){float p=texture2D(predicationBuffer,vUv).r;float pLeft=texture2D(predicationBuffer,vUv0).r;float pTop=texture2D(predicationBuffer,vUv1).r;return vec3(p,pLeft,pTop);} +#endif +#if PREDICATION_MODE != 0 +vec2 calculatePredicatedThreshold(){vec3 neighbours=gatherNeighbors();vec2 delta=abs(neighbours.xx-neighbours.yz);vec2 edges=step(PREDICATION_THRESHOLD,delta);return PREDICATION_SCALE*EDGE_THRESHOLD*(1.0-PREDICATION_STRENGTH*edges);} +#endif +#if EDGE_DETECTION_MODE != 0 +uniform sampler2D inputBuffer; +#endif +void main(){ +#if EDGE_DETECTION_MODE == 0 +const vec2 threshold=vec2(DEPTH_THRESHOLD); +#elif PREDICATION_MODE != 0 +vec2 threshold=calculatePredicatedThreshold(); +#else +const vec2 threshold=vec2(EDGE_THRESHOLD); +#endif +#if EDGE_DETECTION_MODE == 0 +vec3 neighbors=gatherNeighbors();vec2 delta=abs(neighbors.xx-vec2(neighbors.y,neighbors.z));vec2 edges=step(threshold,delta);if(dot(edges,vec2(1.0))==0.0){discard;}gl_FragColor=vec4(edges,0.0,1.0); +#elif EDGE_DETECTION_MODE == 1 +float l=linearToRelativeLuminance(texture2D(inputBuffer,vUv).rgb);float lLeft=linearToRelativeLuminance(texture2D(inputBuffer,vUv0).rgb);float lTop=linearToRelativeLuminance(texture2D(inputBuffer,vUv1).rgb);vec4 delta;delta.xy=abs(l-vec2(lLeft,lTop));vec2 edges=step(threshold,delta.xy);if(dot(edges,vec2(1.0))==0.0){discard;}float lRight=linearToRelativeLuminance(texture2D(inputBuffer,vUv2).rgb);float lBottom=linearToRelativeLuminance(texture2D(inputBuffer,vUv3).rgb);delta.zw=abs(l-vec2(lRight,lBottom));vec2 maxDelta=max(delta.xy,delta.zw);float lLeftLeft=linearToRelativeLuminance(texture2D(inputBuffer,vUv4).rgb);float lTopTop=linearToRelativeLuminance(texture2D(inputBuffer,vUv5).rgb);delta.zw=abs(vec2(lLeft,lTop)-vec2(lLeftLeft,lTopTop));maxDelta=max(maxDelta.xy,delta.zw);float finalDelta=max(maxDelta.x,maxDelta.y);edges.xy*=step(finalDelta,LOCAL_CONTRAST_ADAPTATION_FACTOR*delta.xy);gl_FragColor=vec4(edges,0.0,1.0); +#elif EDGE_DETECTION_MODE == 2 +vec4 delta;vec3 c=texture2D(inputBuffer,vUv).rgb;vec3 cLeft=texture2D(inputBuffer,vUv0).rgb;vec3 t=abs(c-cLeft);delta.x=max(max(t.r,t.g),t.b);vec3 cTop=texture2D(inputBuffer,vUv1).rgb;t=abs(c-cTop);delta.y=max(max(t.r,t.g),t.b);vec2 edges=step(threshold,delta.xy);if(dot(edges,vec2(1.0))==0.0){discard;}vec3 cRight=texture2D(inputBuffer,vUv2).rgb;t=abs(c-cRight);delta.z=max(max(t.r,t.g),t.b);vec3 cBottom=texture2D(inputBuffer,vUv3).rgb;t=abs(c-cBottom);delta.w=max(max(t.r,t.g),t.b);vec2 maxDelta=max(delta.xy,delta.zw);vec3 cLeftLeft=texture2D(inputBuffer,vUv4).rgb;t=abs(c-cLeftLeft);delta.z=max(max(t.r,t.g),t.b);vec3 cTopTop=texture2D(inputBuffer,vUv5).rgb;t=abs(c-cTopTop);delta.w=max(max(t.r,t.g),t.b);maxDelta=max(maxDelta.xy,delta.zw);float finalDelta=max(maxDelta.x,maxDelta.y);edges*=step(finalDelta,LOCAL_CONTRAST_ADAPTATION_FACTOR*delta.xy);gl_FragColor=vec4(edges,0.0,1.0); +#endif +}`,w3=`uniform vec2 texelSize;varying vec2 vUv;varying vec2 vUv0;varying vec2 vUv1; +#if EDGE_DETECTION_MODE != 0 +varying vec2 vUv2;varying vec2 vUv3;varying vec2 vUv4;varying vec2 vUv5; +#endif +void main(){vUv=position.xy*0.5+0.5;vUv0=vUv+texelSize*vec2(-1.0,0.0);vUv1=vUv+texelSize*vec2(0.0,-1.0); +#if EDGE_DETECTION_MODE != 0 +vUv2=vUv+texelSize*vec2(1.0,0.0);vUv3=vUv+texelSize*vec2(0.0,1.0);vUv4=vUv+texelSize*vec2(-2.0,0.0);vUv5=vUv+texelSize*vec2(0.0,-2.0); +#endif +gl_Position=vec4(position.xy,1.0,1.0);}`;var S3=`#include +#include +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec4 sum=texture2D(inputBuffer,vUv0);sum+=texture2D(inputBuffer,vUv1);sum+=texture2D(inputBuffer,vUv2);sum+=texture2D(inputBuffer,vUv3);gl_FragColor=sum*0.25; +#include +}`,M3="uniform vec2 texelSize;uniform vec2 halfTexelSize;uniform float kernel;uniform float scale;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec2 uv=position.xy*0.5+0.5;vec2 dUv=(texelSize*vec2(kernel)+halfTexelSize)*scale;vUv0=vec2(uv.x-dUv.x,uv.y+dUv.y);vUv1=vec2(uv.x+dUv.x,uv.y+dUv.y);vUv2=vec2(uv.x+dUv.x,uv.y-dUv.y);vUv3=vec2(uv.x-dUv.x,uv.y-dUv.y);gl_Position=vec4(position.xy,1.0,1.0);}",rM=class extends _t{constructor(r=new O){super({type:"ConvolutionMaterial",uniforms:{inputBuffer:new Ae(null),texelSize:new Ae(new O),halfTexelSize:new Ae(new O),kernel:new Ae(0),scale:new Ae(1)},fragmentShader:S3,vertexShader:M3,blending:It,depthWrite:!1,depthTest:!1});this.toneMapped=!1,this.setTexelSize(r.x,r.y),this.kernelSize=kd.LARGE}getKernel(){return A3[this.kernelSize]}setTexelSize(r,e){this.uniforms.texelSize.value.set(r,e),this.uniforms.halfTexelSize.value.set(r,e).multiplyScalar(.5)}},A3=[new Float32Array([0,0]),new Float32Array([0,1,1]),new Float32Array([0,1,1,2]),new Float32Array([0,1,2,2,3]),new Float32Array([0,1,2,3,4,4,5]),new Float32Array([0,1,2,3,4,5,7,8,9,10])],kd={VERY_SMALL:0,SMALL:1,MEDIUM:2,LARGE:3,VERY_LARGE:4,HUGE:5},_3=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +uniform float opacity;varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);gl_FragColor=opacity*texel; +#include +}`,sM=class extends _t{constructor(){super({type:"CopyMaterial",uniforms:{inputBuffer:new Ae(null),opacity:new Ae(1)},fragmentShader:_3,vertexShader:iu,blending:It,depthWrite:!1,depthTest:!1});this.toneMapped=!1}};var T3=class extends _t{constructor(r=new O,e=Vd.COLOR){super({type:"EdgeDetectionMaterial",defines:{LOCAL_CONTRAST_ADAPTATION_FACTOR:"2.0",EDGE_THRESHOLD:"0.1",DEPTH_THRESHOLD:"0.01",PREDICATION_MODE:"0",PREDICATION_THRESHOLD:"0.01",PREDICATION_SCALE:"2.0",PREDICATION_STRENGTH:"1.0",DEPTH_PACKING:"0"},uniforms:{inputBuffer:new Ae(null),depthBuffer:new Ae(null),predicationBuffer:new Ae(null),texelSize:new Ae(r)},fragmentShader:b3,vertexShader:w3,blending:It,depthWrite:!1,depthTest:!1});this.toneMapped=!1,this.setEdgeDetectionMode(e)}get depthPacking(){return Number(this.defines.DEPTH_PACKING)}set depthPacking(r){this.defines.DEPTH_PACKING=r.toFixed(0),this.needsUpdate=!0}setEdgeDetectionMode(r){this.defines.EDGE_DETECTION_MODE=r.toFixed(0),this.needsUpdate=!0}setLocalContrastAdaptationFactor(r){this.defines.LOCAL_CONTRAST_ADAPTATION_FACTOR=r.toFixed("6"),this.needsUpdate=!0}setEdgeDetectionThreshold(r){this.defines.EDGE_THRESHOLD=r.toFixed("6"),this.defines.DEPTH_THRESHOLD=(r*.1).toFixed("6"),this.needsUpdate=!0}setPredicationMode(r){this.defines.PREDICATION_MODE=r.toFixed(0),this.needsUpdate=!0}setPredicationBuffer(r){this.uniforms.predicationBuffer.value=r}setPredicationThreshold(r){this.defines.PREDICATION_THRESHOLD=r.toFixed("6"),this.needsUpdate=!0}setPredicationScale(r){this.defines.PREDICATION_SCALE=r.toFixed("6"),this.needsUpdate=!0}setPredicationStrength(r){this.defines.PREDICATION_STRENGTH=r.toFixed("6"),this.needsUpdate=!0}},Vd={DEPTH:0,LUMA:1,COLOR:2},oM={DISABLED:0,DEPTH:1,CUSTOM:2},E3=`#include +#include +#include +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +uniform vec2 resolution;uniform vec2 texelSize;uniform float cameraNear;uniform float cameraFar;uniform float aspect;uniform float time;varying vec2 vUv;float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +return unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +return texture2D(depthBuffer,uv).r; +#endif +}float getViewZ(const in float depth){ +#ifdef PERSPECTIVE_CAMERA +return perspectiveDepthToViewZ(depth,cameraNear,cameraFar); +#else +return orthographicDepthToViewZ(depth,cameraNear,cameraFar); +#endif +}FRAGMENT_HEADvoid main(){FRAGMENT_MAIN_UVvec4 color0=texture2D(inputBuffer,UV);vec4 color1=vec4(0.0);FRAGMENT_MAIN_IMAGEgl_FragColor=color0; +#ifdef ENCODE_OUTPUT +#include +#endif +#include +}`,N3="uniform vec2 resolution;uniform vec2 texelSize;uniform float cameraNear;uniform float cameraFar;uniform float aspect;uniform float time;varying vec2 vUv;VERTEX_HEADvoid main(){vUv=position.xy*0.5+0.5;VERTEX_MAIN_SUPPORTgl_Position=vec4(position.xy,1.0,1.0);}",C3=class extends _t{constructor(r=null,e=null,t=null,n,i=!1){super({type:"EffectMaterial",defines:{DEPTH_PACKING:"0",ENCODE_OUTPUT:"1"},uniforms:{inputBuffer:new Ae(null),depthBuffer:new Ae(null),resolution:new Ae(new O),texelSize:new Ae(new O),cameraNear:new Ae(.3),cameraFar:new Ae(1e3),aspect:new Ae(1),time:new Ae(0)},blending:It,depthWrite:!1,depthTest:!1,dithering:i});this.toneMapped=!1,r!==null&&this.setShaderParts(r),e!==null&&this.setDefines(e),t!==null&&this.setUniforms(t),this.adoptCameraSettings(n)}get depthPacking(){return Number(this.defines.DEPTH_PACKING)}set depthPacking(r){this.defines.DEPTH_PACKING=r.toFixed(0),this.needsUpdate=!0}setShaderParts(r){return this.fragmentShader=E3.replace(pt.FRAGMENT_HEAD,r.get(pt.FRAGMENT_HEAD)).replace(pt.FRAGMENT_MAIN_UV,r.get(pt.FRAGMENT_MAIN_UV)).replace(pt.FRAGMENT_MAIN_IMAGE,r.get(pt.FRAGMENT_MAIN_IMAGE)),this.vertexShader=N3.replace(pt.VERTEX_HEAD,r.get(pt.VERTEX_HEAD)).replace(pt.VERTEX_MAIN_SUPPORT,r.get(pt.VERTEX_MAIN_SUPPORT)),this.needsUpdate=!0,this}setDefines(r){for(let e of r.entries())this.defines[e[0]]=e[1];return this.needsUpdate=!0,this}setUniforms(r){for(let e of r.entries())this.uniforms[e[0]]=e[1];return this}adoptCameraSettings(r=null){r!==null&&(this.uniforms.cameraNear.value=r.near,this.uniforms.cameraFar.value=r.far,r instanceof Vt?this.defines.PERSPECTIVE_CAMERA="1":delete this.defines.PERSPECTIVE_CAMERA,this.needsUpdate=!0)}setSize(r,e){let t=Math.max(r,1),n=Math.max(e,1);this.uniforms.resolution.value.set(t,n),this.uniforms.texelSize.value.set(1/t,1/n),this.uniforms.aspect.value=t/n}},pt={FRAGMENT_HEAD:"FRAGMENT_HEAD",FRAGMENT_MAIN_UV:"FRAGMENT_MAIN_UV",FRAGMENT_MAIN_IMAGE:"FRAGMENT_MAIN_IMAGE",VERTEX_HEAD:"VERTEX_HEAD",VERTEX_MAIN_SUPPORT:"VERTEX_MAIN_SUPPORT"};var L3=`#include +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#ifdef RANGE +uniform vec2 range; +#elif defined(THRESHOLD) +uniform float threshold;uniform float smoothing; +#endif +varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=linearToRelativeLuminance(texel.rgb); +#ifdef RANGE +float low=step(range.x,l);float high=step(l,range.y);l*=low*high; +#elif defined(THRESHOLD) +l=smoothstep(threshold,threshold+smoothing,l); +#endif +#ifdef COLOR +gl_FragColor=vec4(texel.rgb*l,l); +#else +gl_FragColor=vec4(l); +#endif +}`,I3=class extends _t{constructor(r=!1,e=null){let t=e!==null;super({type:"LuminanceMaterial",uniforms:{inputBuffer:new Ae(null),threshold:new Ae(0),smoothing:new Ae(1),range:new Ae(t?e:new O)},fragmentShader:L3,vertexShader:iu,blending:It,depthWrite:!1,depthTest:!1});this.toneMapped=!1,this.colorOutput=r,this.useThreshold=!0,this.useRange=t}get threshold(){return this.uniforms.threshold.value}set threshold(r){this.uniforms.threshold.value=r}get smoothing(){return this.uniforms.smoothing.value}set smoothing(r){this.uniforms.smoothing.value=r}get useThreshold(){return this.defines.THRESHOLD!==void 0}set useThreshold(r){r?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.needsUpdate=!0}get colorOutput(){return this.defines.COLOR!==void 0}set colorOutput(r){r?this.defines.COLOR="1":delete this.defines.COLOR,this.needsUpdate=!0}setColorOutputEnabled(r){this.colorOutput=r}get useRange(){return this.defines.RANGE!==void 0}set useRange(r){r?this.defines.RANGE="1":delete this.defines.RANGE,this.needsUpdate=!0}get luminanceRange(){return this.useRange}set luminanceRange(r){this.useRange=r}setLuminanceRangeEnabled(r){this.useRange=r}},P3=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#ifdef MASK_PRECISION_HIGH +uniform mediump sampler2D maskTexture; +#else +uniform lowp sampler2D maskTexture; +#endif +#if MASK_FUNCTION != 0 +uniform float strength; +#endif +varying vec2 vUv;void main(){ +#if COLOR_CHANNEL == 0 +float mask=texture2D(maskTexture,vUv).r; +#elif COLOR_CHANNEL == 1 +float mask=texture2D(maskTexture,vUv).g; +#elif COLOR_CHANNEL == 2 +float mask=texture2D(maskTexture,vUv).b; +#else +float mask=texture2D(maskTexture,vUv).a; +#endif +#if MASK_FUNCTION == 0 +#ifdef INVERTED +mask=step(mask,0.0); +#else +mask=1.0-step(mask,0.0); +#endif +#else +mask=clamp(mask*strength,0.0,1.0); +#ifdef INVERTED +mask=1.0-mask; +#endif +#endif +#if MASK_FUNCTION == 2 +gl_FragColor=vec4(mask*texture2D(inputBuffer,vUv).rgb,mask); +#else +gl_FragColor=mask*texture2D(inputBuffer,vUv); +#endif +}`,D3=class extends _t{constructor(r=null){super({type:"MaskMaterial",uniforms:{maskTexture:new Ae(r),inputBuffer:new Ae(null),strength:new Ae(1)},fragmentShader:P3,vertexShader:iu,blending:It,depthWrite:!1,depthTest:!1});this.toneMapped=!1,this.colorChannel=iM.RED,this.maskFunction=aM.DISCARD}set maskTexture(r){this.uniforms.maskTexture.value=r,delete this.defines.MASK_PRECISION_HIGH,r.type!==At&&(this.defines.MASK_PRECISION_HIGH="1"),this.needsUpdate=!0}set colorChannel(r){this.defines.COLOR_CHANNEL=r.toFixed(0),this.needsUpdate=!0}set maskFunction(r){this.defines.MASK_FUNCTION=r.toFixed(0),this.needsUpdate=!0}get inverted(){return this.defines.INVERTED!==void 0}set inverted(r){this.inverted&&!r?delete this.defines.INVERTED:r&&(this.defines.INVERTED="1"),this.needsUpdate=!0}get strength(){return this.uniforms.strength.value}set strength(r){this.uniforms.strength.value=r}},aM={DISCARD:0,MULTIPLY:1,MULTIPLY_RGB_SET_ALPHA:2};var R3=`#define sampleLevelZeroOffset(t, coord, offset) texture2D(t, coord + offset * texelSize) +#if __VERSION__ < 300 +#define round(v) floor(v + 0.5) +#endif +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +uniform lowp sampler2D areaTexture;uniform lowp sampler2D searchTexture;uniform vec2 texelSize;uniform vec2 resolution;varying vec2 vUv;varying vec4 vOffset[3];varying vec2 vPixCoord;void movec(const in bvec2 c,inout vec2 variable,const in vec2 value){if(c.x){variable.x=value.x;}if(c.y){variable.y=value.y;}}void movec(const in bvec4 c,inout vec4 variable,const in vec4 value){movec(c.xy,variable.xy,value.xy);movec(c.zw,variable.zw,value.zw);}vec2 decodeDiagBilinearAccess(in vec2 e){e.r=e.r*abs(5.0*e.r-5.0*0.75);return round(e);}vec4 decodeDiagBilinearAccess(in vec4 e){e.rb=e.rb*abs(5.0*e.rb-5.0*0.75);return round(e);}vec2 searchDiag1(const in vec2 texCoord,const in vec2 dir,out vec2 e){vec4 coord=vec4(texCoord,-1.0,1.0);vec3 t=vec3(texelSize,1.0);for(int i=0;i0.9)){break;}coord.xyz=t*vec3(dir,1.0)+coord.xyz;e=texture2D(inputBuffer,coord.xy).rg;coord.w=dot(e,vec2(0.5));}return coord.zw;}vec2 searchDiag2(const in vec2 texCoord,const in vec2 dir,out vec2 e){vec4 coord=vec4(texCoord,-1.0,1.0);coord.x+=0.25*texelSize.x;vec3 t=vec3(texelSize,1.0);for(int i=0;i0.9)){break;}coord.xyz=t*vec3(dir,1.0)+coord.xyz;e=texture2D(inputBuffer,coord.xy).rg;e=decodeDiagBilinearAccess(e);coord.w=dot(e,vec2(0.5));}return coord.zw;}vec2 areaDiag(const in vec2 dist,const in vec2 e,const in float offset){vec2 texCoord=vec2(AREATEX_MAX_DISTANCE_DIAG,AREATEX_MAX_DISTANCE_DIAG)*e+dist;texCoord=AREATEX_PIXEL_SIZE*texCoord+0.5*AREATEX_PIXEL_SIZE;texCoord.x+=0.5;texCoord.y+=AREATEX_SUBTEX_SIZE*offset;return texture2D(areaTexture,texCoord).rg;}vec2 calculateDiagWeights(const in vec2 texCoord,const in vec2 e,const in vec4 subsampleIndices){vec2 weights=vec2(0.0);vec4 d;vec2 end;if(e.r>0.0){d.xz=searchDiag1(texCoord,vec2(-1.0,1.0),end);d.x+=float(end.y>0.9);}else{d.xz=vec2(0.0);}d.yw=searchDiag1(texCoord,vec2(1.0,-1.0),end);if(d.x+d.y>2.0){vec4 coords=vec4(-d.x+0.25,d.x,d.y,-d.y-0.25)*texelSize.xyxy+texCoord.xyxy;vec4 c;c.xy=sampleLevelZeroOffset(inputBuffer,coords.xy,vec2(-1,0)).rg;c.zw=sampleLevelZeroOffset(inputBuffer,coords.zw,vec2(1,0)).rg;c.yxwz=decodeDiagBilinearAccess(c.xyzw);vec2 cc=vec2(2.0)*c.xz+c.yw;movec(bvec2(step(0.9,d.zw)),cc,vec2(0.0));weights+=areaDiag(d.xy,cc,subsampleIndices.z);}d.xz=searchDiag2(texCoord,vec2(-1.0,-1.0),end);if(sampleLevelZeroOffset(inputBuffer,texCoord,vec2(1,0)).r>0.0){d.yw=searchDiag2(texCoord,vec2(1.0),end);d.y+=float(end.y>0.9);}else{d.yw=vec2(0.0);}if(d.x+d.y>2.0){vec4 coords=vec4(-d.x,-d.x,d.y,d.y)*texelSize.xyxy+texCoord.xyxy;vec4 c;c.x=sampleLevelZeroOffset(inputBuffer,coords.xy,vec2(-1,0)).g;c.y=sampleLevelZeroOffset(inputBuffer,coords.xy,vec2(0,-1)).r;c.zw=sampleLevelZeroOffset(inputBuffer,coords.zw,vec2(1,0)).gr;vec2 cc=vec2(2.0)*c.xz+c.yw;movec(bvec2(step(0.9,d.zw)),cc,vec2(0.0));weights+=areaDiag(d.xy,cc,subsampleIndices.w).gr;}return weights;}float searchLength(const in vec2 e,const in float offset){vec2 scale=SEARCHTEX_SIZE*vec2(0.5,-1.0);vec2 bias=SEARCHTEX_SIZE*vec2(offset,1.0);scale+=vec2(-1.0,1.0);bias+=vec2(0.5,-0.5);scale*=1.0/SEARCHTEX_PACKED_SIZE;bias*=1.0/SEARCHTEX_PACKED_SIZE;return texture2D(searchTexture,scale*e+bias).r;}float searchXLeft(in vec2 texCoord,const in float end){vec2 e=vec2(0.0,1.0);for(int i=0;iend&&e.g>0.8281&&e.r==0.0)){break;}e=texture2D(inputBuffer,texCoord).rg;texCoord=vec2(-2.0,0.0)*texelSize+texCoord;}float offset=-(255.0/127.0)*searchLength(e,0.0)+3.25;return texelSize.x*offset+texCoord.x;}float searchXRight(vec2 texCoord,const in float end){vec2 e=vec2(0.0,1.0);for(int i=0;i0.8281&&e.r==0.0)){break;}e=texture2D(inputBuffer,texCoord).rg;texCoord=vec2(2.0,0.0)*texelSize.xy+texCoord;}float offset=-(255.0/127.0)*searchLength(e,0.5)+3.25;return-texelSize.x*offset+texCoord.x;}float searchYUp(vec2 texCoord,const in float end){vec2 e=vec2(1.0,0.0);for(int i=0;iend&&e.r>0.8281&&e.g==0.0)){break;}e=texture2D(inputBuffer,texCoord).rg;texCoord=-vec2(0.0,2.0)*texelSize.xy+texCoord;}float offset=-(255.0/127.0)*searchLength(e.gr,0.0)+3.25;return texelSize.y*offset+texCoord.y;}float searchYDown(vec2 texCoord,const in float end){vec2 e=vec2(1.0,0.0);for(int i=0;i0.8281&&e.g==0.0)){break;}e=texture2D(inputBuffer,texCoord).rg;texCoord=vec2(0.0,2.0)*texelSize.xy+texCoord;}float offset=-(255.0/127.0)*searchLength(e.gr,0.5)+3.25;return-texelSize.y*offset+texCoord.y;}vec2 area(const in vec2 dist,const in float e1,const in float e2,const in float offset){vec2 texCoord=vec2(AREATEX_MAX_DISTANCE)*round(4.0*vec2(e1,e2))+dist;texCoord=AREATEX_PIXEL_SIZE*texCoord+0.5*AREATEX_PIXEL_SIZE;texCoord.y=AREATEX_SUBTEX_SIZE*offset+texCoord.y;return texture2D(areaTexture,texCoord).rg;}void detectHorizontalCornerPattern(inout vec2 weights,const in vec4 texCoord,const in vec2 d){ +#if !defined(DISABLE_CORNER_DETECTION) +vec2 leftRight=step(d.xy,d.yx);vec2 rounding=(1.0-CORNER_ROUNDING_NORM)*leftRight;rounding/=leftRight.x+leftRight.y;vec2 factor=vec2(1.0);factor.x-=rounding.x*sampleLevelZeroOffset(inputBuffer,texCoord.xy,vec2(0,1)).r;factor.x-=rounding.y*sampleLevelZeroOffset(inputBuffer,texCoord.zw,vec2(1,1)).r;factor.y-=rounding.x*sampleLevelZeroOffset(inputBuffer,texCoord.xy,vec2(0,-2)).r;factor.y-=rounding.y*sampleLevelZeroOffset(inputBuffer,texCoord.zw,vec2(1,-2)).r;weights*=clamp(factor,0.0,1.0); +#endif +}void detectVerticalCornerPattern(inout vec2 weights,const in vec4 texCoord,const in vec2 d){ +#if !defined(DISABLE_CORNER_DETECTION) +vec2 leftRight=step(d.xy,d.yx);vec2 rounding=(1.0-CORNER_ROUNDING_NORM)*leftRight;rounding/=leftRight.x+leftRight.y;vec2 factor=vec2(1.0);factor.x-=rounding.x*sampleLevelZeroOffset(inputBuffer,texCoord.xy,vec2(1,0)).g;factor.x-=rounding.y*sampleLevelZeroOffset(inputBuffer,texCoord.zw,vec2(1,1)).g;factor.y-=rounding.x*sampleLevelZeroOffset(inputBuffer,texCoord.xy,vec2(-2,0)).g;factor.y-=rounding.y*sampleLevelZeroOffset(inputBuffer,texCoord.zw,vec2(-2,1)).g;weights*=clamp(factor,0.0,1.0); +#endif +}void main(){vec4 weights=vec4(0.0);vec4 subsampleIndices=vec4(0.0);vec2 e=texture2D(inputBuffer,vUv).rg;if(e.g>0.0){ +#if !defined(DISABLE_DIAG_DETECTION) +weights.rg=calculateDiagWeights(vUv,e,subsampleIndices);if(weights.r==-weights.g){ +#endif +vec2 d;vec3 coords;coords.x=searchXLeft(vOffset[0].xy,vOffset[2].x);coords.y=vOffset[1].y;d.x=coords.x;float e1=texture2D(inputBuffer,coords.xy).r;coords.z=searchXRight(vOffset[0].zw,vOffset[2].y);d.y=coords.z;d=round(resolution.xx*d+-vPixCoord.xx);vec2 sqrtD=sqrt(abs(d));float e2=sampleLevelZeroOffset(inputBuffer,coords.zy,vec2(1,0)).r;weights.rg=area(sqrtD,e1,e2,subsampleIndices.y);coords.y=vUv.y;detectHorizontalCornerPattern(weights.rg,coords.xyzy,d); +#if !defined(DISABLE_DIAG_DETECTION) +}else{e.r=0.0;} +#endif +}if(e.r>0.0){vec2 d;vec3 coords;coords.y=searchYUp(vOffset[1].xy,vOffset[2].z);coords.x=vOffset[0].x;d.x=coords.y;float e1=texture2D(inputBuffer,coords.xy).g;coords.z=searchYDown(vOffset[1].zw,vOffset[2].w);d.y=coords.z;d=round(resolution.yy*d-vPixCoord.yy);vec2 sqrtD=sqrt(abs(d));float e2=sampleLevelZeroOffset(inputBuffer,coords.xz,vec2(0,1)).g;weights.ba=area(sqrtD,e1,e2,subsampleIndices.x);coords.x=vUv.x;detectVerticalCornerPattern(weights.ba,coords.xyxz,d);}gl_FragColor=weights;}`,B3="uniform vec2 texelSize;uniform vec2 resolution;varying vec2 vUv;varying vec4 vOffset[3];varying vec2 vPixCoord;void main(){vUv=position.xy*0.5+0.5;vPixCoord=vUv*resolution;vOffset[0]=vUv.xyxy+texelSize.xyxy*vec4(-0.25,-0.125,1.25,-0.125);vOffset[1]=vUv.xyxy+texelSize.xyxy*vec4(-0.125,-0.25,-0.125,1.25);vOffset[2]=vec4(vOffset[0].xz,vOffset[1].yw)+vec4(-2.0,2.0,-2.0,2.0)*texelSize.xxyy*MAX_SEARCH_STEPS_FLOAT;gl_Position=vec4(position.xy,1.0,1.0);}",O3=class extends _t{constructor(r=new O,e=new O){super({type:"SMAAWeightsMaterial",defines:{MAX_SEARCH_STEPS_INT:"16",MAX_SEARCH_STEPS_FLOAT:"16.0",MAX_SEARCH_STEPS_DIAG_INT:"8",MAX_SEARCH_STEPS_DIAG_FLOAT:"8.0",CORNER_ROUNDING:"25",CORNER_ROUNDING_NORM:"0.25",AREATEX_MAX_DISTANCE:"16.0",AREATEX_MAX_DISTANCE_DIAG:"20.0",AREATEX_PIXEL_SIZE:"(1.0 / vec2(160.0, 560.0))",AREATEX_SUBTEX_SIZE:"(1.0 / 7.0)",SEARCHTEX_SIZE:"vec2(66.0, 33.0)",SEARCHTEX_PACKED_SIZE:"vec2(64.0, 16.0)"},uniforms:{inputBuffer:new Ae(null),areaTexture:new Ae(null),searchTexture:new Ae(null),texelSize:new Ae(r),resolution:new Ae(e)},fragmentShader:R3,vertexShader:B3,blending:It,depthWrite:!1,depthTest:!1});this.toneMapped=!1}setOrthogonalSearchSteps(r){let e=Math.min(Math.max(r,0),112);this.defines.MAX_SEARCH_STEPS_INT=e.toFixed("0"),this.defines.MAX_SEARCH_STEPS_FLOAT=e.toFixed("1"),this.needsUpdate=!0}setDiagonalSearchSteps(r){let e=Math.min(Math.max(r,0),20);this.defines.MAX_SEARCH_STEPS_DIAG_INT=e.toFixed("0"),this.defines.MAX_SEARCH_STEPS_DIAG_FLOAT=e.toFixed("1"),this.needsUpdate=!0}setCornerRounding(r){let e=Math.min(Math.max(r,0),100);this.defines.CORNER_ROUNDING=e.toFixed("4"),this.defines.CORNER_ROUNDING_NORM=(e/100).toFixed("4"),this.needsUpdate=!0}get diagonalDetection(){return this.defines.DISABLE_DIAG_DETECTION===void 0}set diagonalDetection(r){r?delete this.defines.DISABLE_DIAG_DETECTION:this.defines.DISABLE_DIAG_DETECTION="1",this.needsUpdate=!0}get cornerRounding(){return this.defines.DISABLE_CORNER_DETECTION===void 0}set cornerRounding(r){r?delete this.defines.DISABLE_CORNER_DETECTION:this.defines.DISABLE_CORNER_DETECTION="1",this.needsUpdate=!0}};var F3=new Dr,Fs=null;function z3(){if(Fs===null){let r=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),e=new Float32Array([0,0,2,0,0,2]);Fs=new we,Fs.setAttribute!==void 0?(Fs.setAttribute("position",new Re(r,3)),Fs.setAttribute("uv",new Re(e,2))):(Fs.addAttribute("position",new Re(r,3)),Fs.addAttribute("uv",new Re(e,2)))}return Fs}var Wr=class{constructor(r="Pass",e=new An,t=F3){this.name=r,this.scene=e,this.camera=t,this.screen=null,this.rtt=!0,this.needsSwap=!0,this.needsDepthTexture=!1,this.enabled=!0}get renderToScreen(){return!this.rtt}set renderToScreen(r){if(this.rtt===r){let e=this.getFullscreenMaterial();e!==null&&(e.needsUpdate=!0),this.rtt=!r}}getFullscreenMaterial(){return this.screen!==null?this.screen.material:null}setFullscreenMaterial(r){let e=this.screen;e!==null?e.material=r:(e=new gt(z3(),r),e.frustumCulled=!1,this.scene===null&&(this.scene=new An),this.scene.add(e),this.screen=e)}getDepthTexture(){return null}setDepthTexture(r,e=0){}render(r,e,t,n,i){throw new Error("Render method not implemented!")}setSize(r,e){}initialize(r,e,t){}dispose(){let r=this.getFullscreenMaterial();r!==null&&r.dispose();for(let e of Object.keys(this)){let t=this[e];if(t!==null&&typeof t.dispose=="function"){if(t instanceof An)continue;this[e].dispose()}}}},lM=class extends Wr{constructor(r,e=!0){super("SavePass");this.setFullscreenMaterial(new sM),this.needsSwap=!1,this.renderTarget=r,r===void 0&&(this.renderTarget=new bt(1,1,{minFilter:$e,magFilter:$e,stencilBuffer:!1,depthBuffer:!1}),this.renderTarget.texture.name="SavePass.Target"),this.resize=e}get texture(){return this.renderTarget.texture}render(r,e,t,n,i){this.getFullscreenMaterial().uniforms.inputBuffer.value=e.texture,r.setRenderTarget(this.renderToScreen?null:this.renderTarget),r.render(this.scene,this.camera)}setSize(r,e){if(this.resize){let t=Math.max(r,1),n=Math.max(e,1);this.renderTarget.setSize(t,n)}}initialize(r,e,t){if(!e&&t===At&&(this.renderTarget.texture.format=Nt),t!==void 0&&(this.renderTarget.texture.type=t,t!==At)){let n=this.getFullscreenMaterial();n.defines.FRAMEBUFFER_PRECISION_HIGH="1"}}};var Jr=-1,nr=class{constructor(r,e=Jr,t=Jr,n=1){this.resizable=r,this.base=new O(1,1),this.target=new O(e,t),this.s=n}get scale(){return this.s}set scale(r){this.s=r,this.target.x=Jr,this.target.y=Jr,this.resizable.setSize(this.base.x,this.base.y)}get width(){let r=this.base,e=this.target,t;return e.x!==Jr?t=e.x:e.y!==Jr?t=Math.round(e.y*(r.x/r.y)):t=Math.round(r.x*this.s),t}set width(r){this.target.x=r,this.resizable.setSize(this.base.x,this.base.y)}get height(){let r=this.base,e=this.target,t;return e.y!==Jr?t=e.y:e.x!==Jr?t=Math.round(e.x/(r.x/r.y)):t=Math.round(r.y*this.s),t}set height(r){this.target.y=r,this.resizable.setSize(this.base.x,this.base.y)}static get AUTO_SIZE(){return Jr}},cM=class extends Wr{constructor({resolutionScale:r=.5,width:e=nr.AUTO_SIZE,height:t=nr.AUTO_SIZE,kernelSize:n=kd.LARGE}={}){super("BlurPass");this.renderTargetA=new bt(1,1,{minFilter:$e,magFilter:$e,stencilBuffer:!1,depthBuffer:!1}),this.renderTargetA.texture.name="Blur.Target.A",this.renderTargetB=this.renderTargetA.clone(),this.renderTargetB.texture.name="Blur.Target.B",this.resolution=new nr(this,e,t,r),this.convolutionMaterial=new rM,this.ditheredConvolutionMaterial=new rM,this.ditheredConvolutionMaterial.dithering=!0,this.dithering=!1,this.kernelSize=n}get width(){return this.resolution.width}set width(r){this.resolution.width=r}get height(){return this.resolution.height}set height(r){this.resolution.height=r}get scale(){return this.convolutionMaterial.uniforms.scale.value}set scale(r){this.convolutionMaterial.uniforms.scale.value=r,this.ditheredConvolutionMaterial.uniforms.scale.value=r}get kernelSize(){return this.convolutionMaterial.kernelSize}set kernelSize(r){this.convolutionMaterial.kernelSize=r,this.ditheredConvolutionMaterial.kernelSize=r}getResolutionScale(){return this.resolution.scale}setResolutionScale(r){this.resolution.scale=r}render(r,e,t,n,i){let s=this.scene,o=this.camera,a=this.renderTargetA,l=this.renderTargetB,c=this.convolutionMaterial,u=c.uniforms,h=c.getKernel(),d=e,f,p,m;for(this.setFullscreenMaterial(c),p=0,m=h.length-1;p=0;l?(ng.copy(r.getClearColor(ng)),r.setClearColor(s,c?o:a)):c&&r.setClearAlpha(o),r.setRenderTarget(this.renderToScreen?null:e),r.clear(this.color,this.depth,this.stencil),l?r.setClearColor(ng,a):c&&r.setClearAlpha(a)}},rg=!1,uM=class{constructor(r=null){this.originalMaterials=new Map,this.material=null,this.materials=null,this.materialsBackSide=null,this.materialsDoubleSide=null,this.materialsFlatShaded=null,this.materialsFlatShadedBackSide=null,this.materialsFlatShadedDoubleSide=null,this.setMaterial(r),this.meshCount=0,this.replaceMaterial=e=>{if(e.isMesh){let t;if(e.material.flatShading)switch(e.material.side){case Xt:t=this.materialsFlatShadedDoubleSide;break;case kt:t=this.materialsFlatShadedBackSide;break;default:t=this.materialsFlatShaded;break}else switch(e.material.side){case Xt:t=this.materialsDoubleSide;break;case kt:t=this.materialsBackSide;break;default:t=this.materials;break}this.originalMaterials.set(e,e.material),e.isSkinnedMesh?e.material=t[2]:e.isInstancedMesh?e.material=t[1]:e.material=t[0],++this.meshCount}}}setMaterial(r){if(this.disposeMaterials(),this.material=r,r!==null){let e=this.materials=[r.clone(),r.clone(),r.clone()];for(let t of e)t.uniforms=Object.assign({},r.uniforms),t.side=Oi;e[2].skinning=!0,this.materialsBackSide=e.map(t=>{let n=t.clone();return n.uniforms=Object.assign({},r.uniforms),n.side=kt,n}),this.materialsDoubleSide=e.map(t=>{let n=t.clone();return n.uniforms=Object.assign({},r.uniforms),n.side=Xt,n}),this.materialsFlatShaded=e.map(t=>{let n=t.clone();return n.uniforms=Object.assign({},r.uniforms),n.flatShading=!0,n}),this.materialsFlatShadedBackSide=e.map(t=>{let n=t.clone();return n.uniforms=Object.assign({},r.uniforms),n.flatShading=!0,n.side=kt,n}),this.materialsFlatShadedDoubleSide=e.map(t=>{let n=t.clone();return n.uniforms=Object.assign({},r.uniforms),n.flatShading=!0,n.side=Xt,n})}}render(r,e,t){let n=r.shadowMap.enabled;if(r.shadowMap.enabled=!1,rg){let i=this.originalMaterials;this.meshCount=0,e.traverse(this.replaceMaterial),r.render(e,t);for(let s of i)s[0].material=s[1];this.meshCount!==i.size&&i.clear()}else{let i=e.overrideMaterial;e.overrideMaterial=this.material,r.render(e,t),e.overrideMaterial=i}r.shadowMap.enabled=n}disposeMaterials(){if(this.material!==null){let r=this.materials.concat(this.materialsBackSide).concat(this.materialsDoubleSide).concat(this.materialsFlatShaded).concat(this.materialsFlatShadedBackSide).concat(this.materialsFlatShadedDoubleSide);for(let e of r)e.dispose()}}dispose(){this.originalMaterials.clear(),this.disposeMaterials()}static get workaroundEnabled(){return rg}static set workaroundEnabled(r){rg=r}},sg=class extends Wr{constructor(r,e,t=null){super("RenderPass",r,e);this.needsSwap=!1,this.clearPass=new ig,this.overrideMaterialManager=t===null?null:new uM(t)}get renderToScreen(){return super.renderToScreen}set renderToScreen(r){super.renderToScreen=r,this.clearPass.renderToScreen=r}get overrideMaterial(){let r=this.overrideMaterialManager;return r!==null?r.material:null}set overrideMaterial(r){let e=this.overrideMaterialManager;r!==null?e!==null?e.setMaterial(r):this.overrideMaterialManager=new uM(r):e!==null&&(e.dispose(),this.overrideMaterialManager=null)}get clear(){return this.clearPass.enabled}set clear(r){this.clearPass.enabled=r}getClearPass(){return this.clearPass}render(r,e,t,n,i){let s=this.scene,o=this.camera,a=s.background,l=this.renderToScreen?null:e;this.clear&&(this.clearPass.overrideClearColor!==null&&(s.background=null),this.clearPass.render(r,e)),r.setRenderTarget(l),this.overrideMaterialManager!==null?this.overrideMaterialManager.render(r,s,o):r.render(s,o),s.background!==a&&(s.background=a)}};var w$=new Float32Array([255/256/256**3,255/256/256**2,255/256/256,255/256]);var ut={SKIP:0,ADD:1,ALPHA:2,AVERAGE:3,COLOR_BURN:4,COLOR_DODGE:5,DARKEN:6,DIFFERENCE:7,EXCLUSION:8,LIGHTEN:9,MULTIPLY:10,DIVIDE:11,NEGATION:12,NORMAL:13,OVERLAY:14,REFLECT:15,SCREEN:16,SOFT_LIGHT:17,SUBTRACT:18},U3="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return min(x+y,1.0)*opacity+x*(1.0-opacity);}",k3="vec3 blend(const in vec3 x,const in vec3 y,const in float opacity){return y*opacity+x*(1.0-opacity);}vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){float a=min(y.a,opacity);return vec4(blend(x.rgb,y.rgb,a),max(x.a,a));}",V3="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return(x+y)*0.5*opacity+x*(1.0-opacity);}",H3="float blend(const in float x,const in float y){return(y==0.0)? y : max(1.0-(1.0-x)/y,0.0);}vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=vec4(blend(x.r,y.r),blend(x.g,y.g),blend(x.b,y.b),blend(x.a,y.a));return z*opacity+x*(1.0-opacity);}",j3="float blend(const in float x,const in float y){return(y==1.0)? y : min(x/(1.0-y),1.0);}vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=vec4(blend(x.r,y.r),blend(x.g,y.g),blend(x.b,y.b),blend(x.a,y.a));return z*opacity+x*(1.0-opacity);}",W3="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return min(x,y)*opacity+x*(1.0-opacity);}",J3="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return abs(x-y)*opacity+x*(1.0-opacity);}",X3="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return(x+y-2.0*x*y)*opacity+x*(1.0-opacity);}",q3="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return max(x,y)*opacity+x*(1.0-opacity);}",Y3="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return x*y*opacity+x*(1.0-opacity);}",K3="float blend(const in float x,const in float y){return(y>0.0)? min(x/y,1.0): 1.0;}vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=vec4(blend(x.r,y.r),blend(x.g,y.g),blend(x.b,y.b),blend(x.a,y.a));return z*opacity+x*(1.0-opacity);}",Q3="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return(1.0-abs(1.0-x-y))*opacity+x*(1.0-opacity);}",Z3="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return y*opacity+x*(1.0-opacity);}",$3="float blend(const in float x,const in float y){return(x<0.5)?(2.0*x*y):(1.0-2.0*(1.0-x)*(1.0-y));}vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=vec4(blend(x.r,y.r),blend(x.g,y.g),blend(x.b,y.b),blend(x.a,y.a));return z*opacity+x*(1.0-opacity);}",eF="float blend(const in float x,const in float y){return(y==1.0)? y : min(x*x/(1.0-y),1.0);}vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=vec4(blend(x.r,y.r),blend(x.g,y.g),blend(x.b,y.b),blend(x.a,y.a));return z*opacity+x*(1.0-opacity);}",tF="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return(1.0-(1.0-x)*(1.0-y))*opacity+x*(1.0-opacity);}",nF="float blend(const in float x,const in float y){return(y<0.5)?(2.0*x*y+x*x*(1.0-2.0*y)):(sqrt(x)*(2.0*y-1.0)+2.0*x*(1.0-y));}vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=vec4(blend(x.r,y.r),blend(x.g,y.g),blend(x.b,y.b),blend(x.a,y.a));return z*opacity+x*(1.0-opacity);}",iF="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return max(x+y-1.0,0.0)*opacity+x*(1.0-opacity);}",rF=new Map([[ut.SKIP,null],[ut.ADD,U3],[ut.ALPHA,k3],[ut.AVERAGE,V3],[ut.COLOR_BURN,H3],[ut.COLOR_DODGE,j3],[ut.DARKEN,W3],[ut.DIFFERENCE,J3],[ut.EXCLUSION,X3],[ut.LIGHTEN,q3],[ut.MULTIPLY,Y3],[ut.DIVIDE,K3],[ut.NEGATION,Q3],[ut.NORMAL,Z3],[ut.OVERLAY,$3],[ut.REFLECT,eF],[ut.SCREEN,tF],[ut.SOFT_LIGHT,nF],[ut.SUBTRACT,iF]]),sF=class extends cn{constructor(r,e=1){super();this.blendFunction=r,this.opacity=new Ae(e)}getBlendFunction(){return this.blendFunction}setBlendFunction(r){this.blendFunction=r,this.dispatchEvent({type:"change"})}getShaderCode(){return rF.get(this.blendFunction)}},Mr=class extends cn{constructor(r,e,{attributes:t=ir.NONE,blendFunction:n=ut.SCREEN,defines:i=new Map,uniforms:s=new Map,extensions:o=null,vertexShader:a=null}={}){super();this.name=r,this.attributes=t,this.fragmentShader=e,this.vertexShader=a,this.defines=i,this.uniforms=s,this.extensions=o,this.blendMode=new sF(n),this.blendMode.addEventListener("change",l=>this.setChanged())}setChanged(){this.dispatchEvent({type:"change"})}getAttributes(){return this.attributes}setAttributes(r){this.attributes=r,this.setChanged()}getFragmentShader(){return this.fragmentShader}setFragmentShader(r){this.fragmentShader=r,this.setChanged()}getVertexShader(){return this.vertexShader}setVertexShader(r){this.vertexShader=r,this.setChanged()}setDepthTexture(r,e=0){}update(r,e,t){}setSize(r,e){}initialize(r,e,t){}dispose(){for(let r of Object.keys(this)){let e=this[r];if(e!==null&&typeof e.dispose=="function"){if(e instanceof An)continue;this[r].dispose()}}}},ir={NONE:0,DEPTH:1,CONVOLUTION:2};function og(r,e){let t=[],n;for(;(n=r.exec(e))!==null;)t.push(n[1]);return t}function hM(r,e,t){let n,i;for(let s of e){n="$1"+r+s.charAt(0).toUpperCase()+s.slice(1),i=new RegExp("([^\\.])(\\b"+s+"\\b)","g");for(let o of t.entries())o[1]!==null&&t.set(o[0],o[1].replace(i,n))}}function oF(r,e,t,n,i,s,o){let a=/(?:\w+\s+(\w+)\([\w\s,]*\)\s*{[^}]+})/g,l=/(?:varying\s+\w+\s+(\w*))/g,c=e.blendMode,u=new Map([["fragment",e.getFragmentShader()],["vertex",e.getVertexShader()]]),h=u.get("fragment")!==void 0&&/mainImage/.test(u.get("fragment")),d=u.get("fragment")!==void 0&&/mainUv/.test(u.get("fragment")),f=[],p=[],m=!1,v=!1;if(u.get("fragment")===void 0)console.error("Missing fragment shader",e);else if(d&&(o&ir.CONVOLUTION)!=0)console.error("Effects that transform UV coordinates are incompatible with convolution effects",e);else if(!h&&!d)console.error("The fragment shader contains neither a mainImage nor a mainUv function",e);else{if(d&&(t.set(pt.FRAGMENT_MAIN_UV,t.get(pt.FRAGMENT_MAIN_UV)+" "+r+`MainUv(UV); +`),m=!0),u.get("vertex")!==null&&/mainSupport/.test(u.get("vertex"))){let g=" "+r+"MainSupport(";/mainSupport *\([\w\s]*?uv\s*?\)/.test(u.get("vertex"))&&(g+="vUv"),g+=`); +`,t.set(pt.VERTEX_MAIN_SUPPORT,t.get(pt.VERTEX_MAIN_SUPPORT)+g),f=f.concat(og(l,u.get("vertex"))),p=p.concat(f).concat(og(a,u.get("vertex")))}if(p=p.concat(og(a,u.get("fragment"))).concat(Array.from(e.defines.keys()).map(g=>g.replace(/\([\w\s,]*\)/g,""))).concat(Array.from(e.uniforms.keys())),e.uniforms.forEach((g,y)=>s.set(r+y.charAt(0).toUpperCase()+y.slice(1),g)),e.defines.forEach((g,y)=>i.set(r+y.charAt(0).toUpperCase()+y.slice(1),g)),hM(r,p,i),hM(r,p,u),n.set(c.blendFunction,c),h){let g=/MainImage *\([\w\s,]*?depth[\w\s,]*?\)/,y=r+"MainImage(color0, UV, ";(o&ir.DEPTH)!=0&&g.test(u.get("fragment"))&&(y+="depth, ",v=!0),y+=`color1); + `;let x=r+"BlendOpacity";s.set(x,c.opacity),y+="color0 = blend"+c.getBlendFunction()+"(color0, color1, "+x+`); + + `,t.set(pt.FRAGMENT_MAIN_IMAGE,t.get(pt.FRAGMENT_MAIN_IMAGE)+y),t.set(pt.FRAGMENT_HEAD,t.get(pt.FRAGMENT_HEAD)+"uniform float "+x+`; + +`)}t.set(pt.FRAGMENT_HEAD,t.get(pt.FRAGMENT_HEAD)+u.get("fragment")+` +`),u.get("vertex")!==null&&t.set(pt.VERTEX_HEAD,t.get(pt.VERTEX_HEAD)+u.get("vertex")+` +`)}return{varyings:f,transformedUv:m,readDepth:v}}var Hd=class extends Wr{constructor(r,...e){super("EffectPass");this.setFullscreenMaterial(new C3(null,null,null,r)),this.effects=e.sort((t,n)=>n.attributes-t.attributes),this.skipRendering=!1,this.uniforms=0,this.varyings=0,this.minTime=1,this.maxTime=Number.POSITIVE_INFINITY}get encodeOutput(){return this.getFullscreenMaterial().defines.ENCODE_OUTPUT!==void 0}set encodeOutput(r){if(this.encodeOutput!==r){let e=this.getFullscreenMaterial();e.needsUpdate=!0,r?e.defines.ENCODE_OUTPUT="1":delete e.defines.ENCODE_OUTPUT}}get dithering(){return this.getFullscreenMaterial().dithering}set dithering(r){let e=this.getFullscreenMaterial();e.dithering!==r&&(e.dithering=r,e.needsUpdate=!0)}verifyResources(r){let e=r.capabilities,t=Math.min(e.maxFragmentUniforms,e.maxVertexUniforms);this.uniforms>t&&console.warn("The current rendering context doesn't support more than "+t+" uniforms, but "+this.uniforms+" were defined"),t=e.maxVaryings,this.varyings>t&&console.warn("The current rendering context doesn't support more than "+t+" varyings, but "+this.varyings+" were defined")}updateMaterial(){let r=/\bblend\b/g,e=new Map([[pt.FRAGMENT_HEAD,""],[pt.FRAGMENT_MAIN_UV,""],[pt.FRAGMENT_MAIN_IMAGE,""],[pt.VERTEX_HEAD,""],[pt.VERTEX_MAIN_SUPPORT,""]]),t=new Map,n=new Map,i=new Map,s=new Set,o=0,a=0,l=0,c=!1,u=!1,h;for(let f of this.effects)if(f.blendMode.getBlendFunction()===ut.SKIP)l|=f.getAttributes()&ir.DEPTH;else if((l&ir.CONVOLUTION)!=0&&(f.getAttributes()&ir.CONVOLUTION)!=0)console.error("Convolution effects cannot be merged",f);else if(l|=f.getAttributes(),h=oF("e"+o++,f,e,t,n,i,l),a+=h.varyings.length,c=c||h.transformedUv,u=u||h.readDepth,f.extensions!==null)for(let p of f.extensions)s.add(p);for(let f of t.values())e.set(pt.FRAGMENT_HEAD,e.get(pt.FRAGMENT_HEAD)+f.getShaderCode().replace(r,"blend"+f.getBlendFunction())+` +`);(l&ir.DEPTH)!=0?(u&&e.set(pt.FRAGMENT_MAIN_IMAGE,`float depth = readDepth(UV); + + `+e.get(pt.FRAGMENT_MAIN_IMAGE)),this.needsDepthTexture=this.getDepthTexture()===null):this.needsDepthTexture=!1,c?(e.set(pt.FRAGMENT_MAIN_UV,`vec2 transformedUv = vUv; +`+e.get(pt.FRAGMENT_MAIN_UV)),n.set("UV","transformedUv")):n.set("UV","vUv"),e.forEach((f,p,m)=>m.set(p,f.trim().replace(/^#/,` +#`))),this.uniforms=i.size,this.varyings=a,this.skipRendering=o===0,this.needsSwap=!this.skipRendering;let d=this.getFullscreenMaterial();if(d.setShaderParts(e).setDefines(n).setUniforms(i),d.extensions={},s.size>0)for(let f of s)d.extensions[f]=!0;this.needsUpdate=!1}recompile(r){this.updateMaterial(),r!==void 0&&this.verifyResources(r)}getDepthTexture(){return this.getFullscreenMaterial().uniforms.depthBuffer.value}setDepthTexture(r,e=Kr){let t=this.getFullscreenMaterial();t.uniforms.depthBuffer.value=r,t.depthPacking=e,t.needsUpdate=!0;for(let n of this.effects)n.setDepthTexture(r,e)}render(r,e,t,n,i){let s=this.getFullscreenMaterial(),o=s.uniforms.time.value+n;this.needsUpdate&&this.recompile(r);for(let a of this.effects)a.update(r,e,n);(!this.skipRendering||this.renderToScreen)&&(s.uniforms.inputBuffer.value=e.texture,s.uniforms.time.value=o<=this.maxTime?o:this.minTime,r.setRenderTarget(this.renderToScreen?null:t),r.render(this.scene,this.camera))}setSize(r,e){this.getFullscreenMaterial().setSize(r,e);for(let t of this.effects)t.setSize(r,e)}initialize(r,e,t){for(let n of this.effects)n.initialize(r,e,t),n.addEventListener("change",i=>this.handleEvent(i));if(this.updateMaterial(),this.verifyResources(r),t!==void 0&&t!==At){let n=this.getFullscreenMaterial();n.defines.FRAMEBUFFER_PRECISION_HIGH="1"}}dispose(){super.dispose();for(let r of this.effects)r.dispose()}handleEvent(r){switch(r.type){case"change":this.needsUpdate=!0;break}}};var aF=class extends Wr{constructor({width:r=nr.AUTO_SIZE,height:e=nr.AUTO_SIZE,renderTarget:t,luminanceRange:n,colorOutput:i}={}){super("LuminancePass");this.setFullscreenMaterial(new I3(i,n)),this.needsSwap=!1,this.renderTarget=t,this.renderTarget===void 0&&(this.renderTarget=new bt(1,1,{minFilter:$e,magFilter:$e,format:i?zt:Qd,stencilBuffer:!1,depthBuffer:!1}),this.renderTarget.texture.name="LuminancePass.Target",this.renderTarget.texture.generateMipmaps=!1),this.resolution=new nr(this,r,e)}get texture(){return this.renderTarget.texture}render(r,e,t,n,i){let s=this.getFullscreenMaterial();s.uniforms.inputBuffer.value=e.texture,r.setRenderTarget(this.renderToScreen?null:this.renderTarget),r.render(this.scene,this.camera)}setSize(r,e){let t=this.resolution;t.base.set(r,e),this.renderTarget.setSize(t.width,t.height)}initialize(r,e,t){if(t!==void 0&&t!==At){let n=this.getFullscreenMaterial();n.defines.FRAMEBUFFER_PRECISION_HIGH="1"}}},lF=class extends Wr{constructor(r,e){super("MaskPass",r,e);this.needsSwap=!1,this.clearPass=new ig(!1,!1,!0),this.inverse=!1}get clear(){return this.clearPass.enabled}set clear(r){this.clearPass.enabled=r}render(r,e,t,n,i){let s=r.getContext(),o=r.state.buffers,a=this.scene,l=this.camera,c=this.clearPass,u=this.inverse?0:1,h=1-u;o.color.setMask(!1),o.depth.setMask(!1),o.color.setLocked(!0),o.depth.setLocked(!0),o.stencil.setTest(!0),o.stencil.setOp(s.REPLACE,s.REPLACE,s.REPLACE),o.stencil.setFunc(s.ALWAYS,u,4294967295),o.stencil.setClear(h),o.stencil.setLocked(!0),this.clear&&(this.renderToScreen?c.render(r,null):(c.render(r,e),c.render(r,t))),this.renderToScreen?(r.setRenderTarget(null),r.render(a,l)):(r.setRenderTarget(e),r.render(a,l),r.setRenderTarget(t),r.render(a,l)),o.color.setLocked(!1),o.depth.setLocked(!1),o.stencil.setLocked(!1),o.stencil.setFunc(s.EQUAL,1,4294967295),o.stencil.setOp(s.KEEP,s.KEEP,s.KEEP),o.stencil.setLocked(!0)}};var Xr=class extends Wr{constructor(r,e="inputBuffer"){super("ShaderPass");this.setFullscreenMaterial(r),this.uniform=null,this.setInput(e)}setInput(r){let e=this.getFullscreenMaterial();if(this.uniform=null,e!==null){let t=e.uniforms;t!==void 0&&t[r]!==void 0&&(this.uniform=t[r])}}render(r,e,t,n,i){this.uniform!==null&&e!==null&&(this.uniform.value=e.texture),r.setRenderTarget(this.renderToScreen?null:t),r.render(this.scene,this.camera)}initialize(r,e,t){if(t!==void 0&&t!==At){let n=this.getFullscreenMaterial();n.defines.FRAMEBUFFER_PRECISION_HIGH="1"}}},dM=class{constructor(r=null,{depthBuffer:e=!0,stencilBuffer:t=!1,alpha:n=!1,multisampling:i=0,frameBufferType:s}={}){this.renderer=r,this.inputBuffer=null,this.outputBuffer=null,this.renderer!==null&&(this.renderer.autoClear=!1,this.inputBuffer=this.createBuffer(e,t,s,i),this.outputBuffer=this.inputBuffer.clone()),this.copyPass=new Xr(new sM),this.alpha=n,this.depthTexture=null,this.passes=[],this.autoRenderToScreen=!0}get multisampling(){return this.inputBuffer instanceof Zr?this.inputBuffer.samples:0}set multisampling(r){let e=this.inputBuffer,t=this.multisampling;t>0&&r>0?(this.inputBuffer.samples=r,this.outputBuffer.samples=r):t!==r&&(this.inputBuffer.dispose(),this.outputBuffer.dispose(),this.inputBuffer=this.createBuffer(e.depthBuffer,e.stencilBuffer,e.texture.type,r),this.inputBuffer.depthTexture=this.depthTexture,this.outputBuffer=this.inputBuffer.clone())}getRenderer(){return this.renderer}replaceRenderer(r,e=!0){let t=this.renderer;if(t!==null&&t!==r){let n=t.getSize(new O),i=r.getSize(new O),s=t.domElement.parentNode;this.renderer=r,this.renderer.autoClear=!1,n.equals(i)||this.setSize(),e&&s!==null&&(s.removeChild(t.domElement),s.appendChild(r.domElement))}return t}createDepthTexture(){let r=this.depthTexture=new so;return this.inputBuffer.depthTexture=r,this.inputBuffer.dispose(),this.inputBuffer.stencilBuffer?(r.format=Ks,r.type=Ys):r.type=Wo,r}deleteDepthTexture(){if(this.depthTexture!==null){this.depthTexture.dispose(),this.depthTexture=null,this.inputBuffer.depthTexture=null,this.inputBuffer.dispose();for(let r of this.passes)r.setDepthTexture(null)}}createBuffer(r,e,t,n){let i=this.renderer,s=i.getContext(),o=i.getDrawingBufferSize(new O),l={format:!(this.alpha||s.getContextAttributes().alpha)&&t===At?Nt:zt,minFilter:$e,magFilter:$e,stencilBuffer:e,depthBuffer:r,type:t},c=n>0?new Zr(o.width,o.height,l):new bt(o.width,o.height,l);return n>0&&(c.samples=n),c.texture.name="EffectComposer.Buffer",c.texture.generateMipmaps=!1,c}addPass(r,e){let t=this.passes,n=this.renderer,i=n.getDrawingBufferSize(new O),s=n.getContext().getContextAttributes().alpha,o=this.inputBuffer.texture.type;if(r.setSize(i.width,i.height),r.initialize(n,s,o),this.autoRenderToScreen&&(t.length>0&&(t[t.length-1].renderToScreen=!1),r.renderToScreen&&(this.autoRenderToScreen=!1)),e!==void 0?t.splice(e,0,r):t.push(r),this.autoRenderToScreen&&(t[t.length-1].renderToScreen=!0),r.needsDepthTexture||this.depthTexture!==null)if(this.depthTexture===null){let a=this.createDepthTexture();for(r of t)r.setDepthTexture(a)}else r.setDepthTexture(this.depthTexture)}removePass(r){let e=this.passes,t=e.indexOf(r);if(t!==-1&&e.splice(t,1).length>0){if(this.depthTexture!==null){let s=(a,l)=>a||l.needsDepthTexture;e.reduce(s,!1)||(r.getDepthTexture()===this.depthTexture&&r.setDepthTexture(null),this.deleteDepthTexture())}this.autoRenderToScreen&&t===e.length&&(r.renderToScreen=!1,e.length>0&&(e[e.length-1].renderToScreen=!0))}}removeAllPasses(){let r=this.passes;this.deleteDepthTexture(),r.length>0&&(this.autoRenderToScreen&&(r[r.length-1].renderToScreen=!1),this.passes=[])}render(r){let e=this.renderer,t=this.copyPass,n=this.inputBuffer,i=this.outputBuffer,s=!1,o,a,l;for(let c of this.passes)c.enabled&&(c.render(e,n,i,r,s),c.needsSwap&&(s&&(t.renderToScreen=c.renderToScreen,o=e.getContext(),a=e.state.buffers.stencil,a.setFunc(o.NOTEQUAL,1,4294967295),t.render(e,n,i,r,s),a.setFunc(o.EQUAL,1,4294967295)),l=n,n=i,i=l),c instanceof lF?s=!0:c instanceof G3&&(s=!1))}setSize(r,e,t){let n=this.renderer;if(r===void 0||e===void 0){let s=n.getSize(new O);r=s.width,e=s.height}else n.setSize(r,e,t);let i=n.getDrawingBufferSize(new O);this.inputBuffer.setSize(i.width,i.height),this.outputBuffer.setSize(i.width,i.height);for(let s of this.passes)s.setSize(i.width,i.height)}reset(){this.dispose(),this.autoRenderToScreen=!0}dispose(){for(let r of this.passes)r.dispose();this.passes=[],this.inputBuffer!==null&&this.inputBuffer.dispose(),this.outputBuffer!==null&&this.outputBuffer.dispose(),this.deleteDepthTexture(),this.copyPass.dispose()}};var cF=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D map; +#else +uniform lowp sampler2D map; +#endif +uniform float intensity;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){outputColor=clamp(texture2D(map,uv)*intensity,0.0,1.0);}`,fM=class extends Mr{constructor({blendFunction:r=ut.SCREEN,luminanceThreshold:e=.9,luminanceSmoothing:t=.025,resolutionScale:n=.5,intensity:i=1,width:s=nr.AUTO_SIZE,height:o=nr.AUTO_SIZE,kernelSize:a=kd.LARGE}={}){super("BloomEffect",cF,{blendFunction:r,uniforms:new Map([["map",new Ae(null)],["intensity",new Ae(i)]])});this.renderTarget=new bt(1,1,{minFilter:$e,magFilter:$e,stencilBuffer:!1,depthBuffer:!1}),this.renderTarget.texture.name="Bloom.Target",this.renderTarget.texture.generateMipmaps=!1,this.uniforms.get("map").value=this.renderTarget.texture,this.blurPass=new cM({resolutionScale:n,width:s,height:o,kernelSize:a}),this.blurPass.resolution.resizable=this,this.luminancePass=new aF({renderTarget:this.renderTarget,colorOutput:!0}),this.luminancePass.resolution=this.resolution,this.luminanceMaterial.threshold=e,this.luminanceMaterial.smoothing=t}get texture(){return this.renderTarget.texture}get luminanceMaterial(){return this.luminancePass.getFullscreenMaterial()}get resolution(){return this.blurPass.resolution}get width(){return this.resolution.width}set width(r){this.resolution.width=r}get height(){return this.resolution.height}set height(r){this.resolution.height=r}get dithering(){return this.blurPass.dithering}set dithering(r){this.blurPass.dithering=r}get kernelSize(){return this.blurPass.kernelSize}set kernelSize(r){this.blurPass.kernelSize=r}get distinction(){return console.warn(this.name,"The distinction field has been removed, use luminanceMaterial.threshold and luminanceMaterial.smoothing instead."),1}set distinction(r){console.warn(this.name,"The distinction field has been removed, use luminanceMaterial.threshold and luminanceMaterial.smoothing instead.")}get intensity(){return this.uniforms.get("intensity").value}set intensity(r){this.uniforms.get("intensity").value=r}getResolutionScale(){return this.resolution.scale}setResolutionScale(r){this.resolution.scale=r}update(r,e,t){let n=this.renderTarget;this.luminancePass.enabled?(this.luminancePass.render(r,e,n),this.blurPass.render(r,n,n)):this.blurPass.render(r,e,n)}setSize(r,e){this.blurPass.setSize(r,e),this.renderTarget.setSize(this.resolution.width,this.resolution.height)}initialize(r,e,t){this.blurPass.initialize(r,e,t),!e&&t===At&&(this.renderTarget.texture.format=Nt),t!==void 0&&(this.renderTarget.texture.type=t)}};var uF="uniform float brightness;uniform float contrast;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec3 color=inputColor.rgb+vec3(brightness-0.5);if(contrast>0.0){color/=vec3(1.0-contrast);}else{color*=vec3(1.0+contrast);}outputColor=vec4(min(color+vec3(0.5),1.0),inputColor.a);}",pM=class extends Mr{constructor({blendFunction:r=ut.NORMAL,brightness:e=0,contrast:t=0}={}){super("BrightnessContrastEffect",uF,{blendFunction:r,uniforms:new Map([["brightness",new Ae(e)],["contrast",new Ae(t)]])})}},hF="void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){float sum=inputColor.r+inputColor.g+inputColor.b;outputColor=vec4(vec3(sum/3.0),inputColor.a);}",mM=class extends Mr{constructor(r=ut.NORMAL){super("ColorAverageEffect",hF,{blendFunction:r})}};var dF=`varying vec2 vUvR;varying vec2 vUvB;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec4 color=inputColor; +#ifdef ALPHA +vec2 ra=texture2D(inputBuffer,vUvR).ra;vec2 ba=texture2D(inputBuffer,vUvB).ba;color.r=ra.x;color.b=ba.x;color.a=max(max(ra.y,ba.y),inputColor.a); +#else +color.r=texture2D(inputBuffer,vUvR).r;color.b=texture2D(inputBuffer,vUvB).b; +#endif +outputColor=color;}`,fF="uniform vec2 offset;varying vec2 vUvR;varying vec2 vUvB;void mainSupport(const in vec2 uv){vUvR=uv+offset;vUvB=uv-offset;}",gM=class extends Mr{constructor({blendFunction:r=ut.NORMAL,offset:e=new O(.001,5e-4)}={}){super("ChromaticAberrationEffect",dF,{vertexShader:fF,blendFunction:r,attributes:ir.CONVOLUTION,uniforms:new Map([["offset",new Ae(e)]])})}get offset(){return this.uniforms.get("offset").value}set offset(r){this.uniforms.get("offset").value=r}initialize(r,e,t){e?this.defines.set("ALPHA","1"):this.defines.delete("ALPHA")}};var pF=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D nearColorBuffer;uniform mediump sampler2D farColorBuffer; +#else +uniform lowp sampler2D nearColorBuffer;uniform lowp sampler2D farColorBuffer; +#endif +uniform lowp sampler2D nearCoCBuffer;uniform float scale;void mainImage(const in vec4 inputColor,const in vec2 uv,const in float depth,out vec4 outputColor){vec4 colorNear=texture2D(nearColorBuffer,uv);vec4 colorFar=texture2D(farColorBuffer,uv);float CoCNear=texture2D(nearCoCBuffer,uv).r;CoCNear=min(CoCNear*scale,1.0);vec4 result=inputColor*(1.0-colorFar.a)+colorFar;result=mix(result,colorNear,CoCNear);outputColor=result;}`,yM=class extends Mr{constructor(r,{blendFunction:e=ut.NORMAL,focusDistance:t=0,focalLength:n=.1,bokehScale:i=1,width:s=nr.AUTO_SIZE,height:o=nr.AUTO_SIZE}={}){super("DepthOfFieldEffect",pF,{blendFunction:e,attributes:ir.DEPTH,uniforms:new Map([["nearColorBuffer",new Ae(null)],["farColorBuffer",new Ae(null)],["nearCoCBuffer",new Ae(null)],["scale",new Ae(1)]])});this.camera=r,this.renderTarget=new bt(1,1,{minFilter:$e,magFilter:$e,stencilBuffer:!1,depthBuffer:!1}),this.renderTarget.texture.name="DoF.Intermediate",this.renderTarget.texture.generateMipmaps=!1,this.renderTargetMasked=this.renderTarget.clone(),this.renderTargetMasked.texture.name="DoF.Masked.Far",this.renderTargetNear=this.renderTarget.clone(),this.renderTargetNear.texture.name="DoF.Bokeh.Near",this.uniforms.get("nearColorBuffer").value=this.renderTargetNear.texture,this.renderTargetFar=this.renderTarget.clone(),this.renderTargetFar.texture.name="DoF.Bokeh.Far",this.uniforms.get("farColorBuffer").value=this.renderTargetFar.texture,this.renderTargetCoC=this.renderTarget.clone(),this.renderTargetCoC.texture.format=Nt,this.renderTargetCoC.texture.name="DoF.CoC",this.renderTargetCoCBlurred=this.renderTargetCoC.clone(),this.renderTargetCoCBlurred.texture.name="DoF.CoC.Blurred",this.uniforms.get("nearCoCBuffer").value=this.renderTargetCoCBlurred.texture,this.cocPass=new Xr(new x3(r));let a=this.circleOfConfusionMaterial;a.uniforms.focusDistance.value=t,a.uniforms.focalLength.value=n,this.blurPass=new cM({width:s,height:o,kernelSize:kd.MEDIUM}),this.blurPass.resolution.resizable=this,this.maskPass=new Xr(new D3(this.renderTargetCoC.texture));let l=this.maskPass.getFullscreenMaterial();l.maskFunction=aM.MULTIPLY,l.colorChannel=iM.GREEN,this.bokehNearBasePass=new Xr(new Ud(!1,!0)),this.bokehNearFillPass=new Xr(new Ud(!0,!0)),this.bokehFarBasePass=new Xr(new Ud(!1,!1)),this.bokehFarFillPass=new Xr(new Ud(!0,!1)),this.bokehScale=i,this.target=null}get circleOfConfusionMaterial(){return this.cocPass.getFullscreenMaterial()}get resolution(){return this.blurPass.resolution}get bokehScale(){return this.uniforms.get("scale").value}set bokehScale(r){[this.bokehNearBasePass,this.bokehNearFillPass,this.bokehFarBasePass,this.bokehFarFillPass].map(t=>t.getFullscreenMaterial().uniforms.scale).forEach(t=>{t.value=r}),this.maskPass.getFullscreenMaterial().uniforms.strength.value=r,this.uniforms.get("scale").value=r}calculateFocusDistance(r){let e=this.camera,t=e.far-e.near,n=e.position.distanceTo(r);return Math.min(Math.max(n/t,0),1)}setDepthTexture(r,e=Kr){let t=this.circleOfConfusionMaterial;t.uniforms.depthBuffer.value=r,t.depthPacking=e}update(r,e,t){let n=this.renderTarget,i=this.renderTargetCoC,s=this.renderTargetCoCBlurred,o=this.renderTargetMasked,a=this.bokehFarBasePass,l=this.bokehFarFillPass,c=a.getFullscreenMaterial().uniforms,u=l.getFullscreenMaterial().uniforms,h=this.bokehNearBasePass,d=this.bokehNearFillPass,f=h.getFullscreenMaterial().uniforms,p=d.getFullscreenMaterial().uniforms;if(this.target!==null){let m=this.calculateFocusDistance(this.target);this.circleOfConfusionMaterial.uniforms.focusDistance.value=m}this.cocPass.render(r,null,i),this.blurPass.render(r,i,s),this.maskPass.render(r,e,o),c.cocBuffer.value=u.cocBuffer.value=i.texture,a.render(r,o,n),l.render(r,n,this.renderTargetFar),f.cocBuffer.value=p.cocBuffer.value=s.texture,h.render(r,e,n),d.render(r,n,this.renderTargetNear)}setSize(r,e){let t=this.resolution,n=[this.cocPass,this.blurPass,this.maskPass,this.bokehNearBasePass,this.bokehNearFillPass,this.bokehFarBasePass,this.bokehFarFillPass];n.push(this.renderTargetCoC,this.renderTargetMasked),n.forEach(a=>a.setSize(r,e));let i=t.width,s=t.height;n=[this.renderTarget,this.renderTargetNear,this.renderTargetFar,this.renderTargetCoCBlurred],n.forEach(a=>a.setSize(i,s)),[this.bokehNearBasePass,this.bokehNearFillPass,this.bokehFarBasePass,this.bokehFarFillPass].forEach(a=>a.getFullscreenMaterial().setTexelSize(1/i,1/s))}initialize(r,e,t){[this.cocPass,this.maskPass,this.bokehNearBasePass,this.bokehNearFillPass,this.bokehFarBasePass,this.bokehFarFillPass].forEach(i=>i.initialize(r,e,t)),this.blurPass.initialize(r,e,At),!e&&t===At&&(this.renderTargetNear.texture.type=Nt),t!==void 0&&(this.renderTarget.texture.type=t,this.renderTargetNear.texture.type=t,this.renderTargetFar.texture.type=t,this.renderTargetMasked.texture.type=t)}};var P$=new M,D$=new me;var mF="uniform vec3 hue;uniform float saturation;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec3 color=vec3(dot(inputColor.rgb,hue.xyz),dot(inputColor.rgb,hue.zxy),dot(inputColor.rgb,hue.yzx));float average=(color.r+color.g+color.b)/3.0;vec3 diff=average-color;if(saturation>0.0){color+=diff*(1.0-1.0/(1.001-saturation));}else{color+=diff*-saturation;}outputColor=vec4(min(color,1.0),inputColor.a);}",vM=class extends Mr{constructor({blendFunction:r=ut.NORMAL,hue:e=0,saturation:t=0}={}){super("HueSaturationEffect",mF,{blendFunction:r,uniforms:new Map([["hue",new Ae(new M)],["saturation",new Ae(t)]])});this.setHue(e)}setHue(r){let e=Math.sin(r),t=Math.cos(r);this.uniforms.get("hue").value.set(2*t,-Math.sqrt(3)*e-t,Math.sqrt(3)*e-t).addScalar(1).divideScalar(3)}};var O$=new fe;var gF=`void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec3 noise=vec3(rand(uv*time)); +#ifdef PREMULTIPLY +outputColor=vec4(min(inputColor.rgb*noise,vec3(1.0)),inputColor.a); +#else +outputColor=vec4(noise,inputColor.a); +#endif +}`,xM=class extends Mr{constructor({blendFunction:r=ut.SCREEN,premultiply:e=!1}={}){super("NoiseEffect",gF,{blendFunction:r});this.premultiply=e}get premultiply(){return this.defines.has("PREMULTIPLY")}set premultiply(r){this.premultiply!==r&&(r?this.defines.set("PREMULTIPLY","1"):this.defines.delete("PREMULTIPLY"),this.setChanged())}};var yF="uniform bool active;uniform vec2 d;void mainUv(inout vec2 uv){if(active){uv=vec2(d.x*(floor(uv.x/d.x)+0.5),d.y*(floor(uv.y/d.y)+0.5));}}",bM=class extends Mr{constructor(r=30){super("PixelationEffect",yF,{uniforms:new Map([["active",new Ae(!1)],["d",new Ae(new O)]])});this.resolution=new O,this.granularity=r}getGranularity(){return this.granularity}setGranularity(r){r=Math.floor(r),r%2>0&&(r+=1);let e=this.uniforms;e.get("active").value=r>0,e.get("d").value.set(r,r).divide(this.resolution),this.granularity=r}setSize(r,e){this.resolution.set(r,e),this.setGranularity(this.granularity)}};var G$=Math.PI*.5,U$=new M,k$=new M;var wM="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAYAAACm53kpAAAAeElEQVRYR+2XSwqAMAxEJ168ePEqwRSKhIIiuHjJqiU0gWE+1CQdApcVAMUAuARaMGCX1MIL/Ow13++9lW2s3mW9MWvsnWc/2fvGygwPAN4E8QzAA4CXAB6AHjG4JTHYI1ey3pcx6FHnEfhLDOIBKAmUBK6/ANUDTlROXAHd9EC1AAAAAElFTkSuQmCC",SM="data:image/png;base64,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",vF="uniform sampler2D weightMap;varying vec2 vOffset0;varying vec2 vOffset1;void movec(const in bvec2 c,inout vec2 variable,const in vec2 value){if(c.x){variable.x=value.x;}if(c.y){variable.y=value.y;}}void movec(const in bvec4 c,inout vec4 variable,const in vec4 value){movec(c.xy,variable.xy,value.xy);movec(c.zw,variable.zw,value.zw);}void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec4 a;a.x=texture2D(weightMap,vOffset0).a;a.y=texture2D(weightMap,vOffset1).g;a.wz=texture2D(weightMap,uv).rb;vec4 color=inputColor;if(dot(a,vec4(1.0))>=1e-5){bool h=max(a.x,a.z)>max(a.y,a.w);vec4 blendingOffset=vec4(0.0,a.y,0.0,a.w);vec2 blendingWeight=a.yw;movec(bvec4(h),blendingOffset,vec4(a.x,0.0,a.z,0.0));movec(bvec2(h),blendingWeight,a.xz);blendingWeight/=dot(blendingWeight,vec2(1.0));vec4 blendingCoord=blendingOffset*vec4(texelSize,-texelSize)+uv.xyxy;color=blendingWeight.x*texture2D(inputBuffer,blendingCoord.xy);color+=blendingWeight.y*texture2D(inputBuffer,blendingCoord.zw);}outputColor=color;}",xF="varying vec2 vOffset0;varying vec2 vOffset1;void mainSupport(const in vec2 uv){vOffset0=uv+texelSize*vec2(1.0,0.0);vOffset1=uv+texelSize*vec2(0.0,1.0);}",MM=class extends Mr{constructor(r,e,t=Uo.HIGH,n=Vd.COLOR){super("SMAAEffect",vF,{vertexShader:xF,blendFunction:ut.NORMAL,attributes:ir.CONVOLUTION|ir.DEPTH,uniforms:new Map([["weightMap",new Ae(null)]])});this.renderTargetEdges=new bt(1,1,{minFilter:$e,stencilBuffer:!1,depthBuffer:!1,format:Nt}),this.renderTargetEdges.texture.name="SMAA.Edges",this.renderTargetWeights=this.renderTargetEdges.clone(),this.renderTargetWeights.texture.name="SMAA.Weights",this.renderTargetWeights.texture.format=zt,this.uniforms.get("weightMap").value=this.renderTargetWeights.texture,this.clearPass=new ig(!0,!1,!1),this.clearPass.overrideClearColor=new fe(0),this.clearPass.overrideClearAlpha=1,this.edgeDetectionPass=new Xr(new T3(new O,n)),this.weightsPass=new Xr(new O3);let i=new xt(r);i.name="SMAA.Search",i.magFilter=Pt,i.minFilter=Pt,i.format=zt,i.generateMipmaps=!1,i.needsUpdate=!0,i.flipY=!0;let s=new xt(e);s.name="SMAA.Area",s.magFilter=$e,s.minFilter=$e,s.format=zt,s.generateMipmaps=!1,s.needsUpdate=!0,s.flipY=!1;let o=this.weightsPass.getFullscreenMaterial();o.uniforms.searchTexture.value=i,o.uniforms.areaTexture.value=s,this.applyPreset(t)}get edgeDetectionMaterial(){return this.edgeDetectionPass.getFullscreenMaterial()}get colorEdgesMaterial(){return this.edgeDetectionMaterial}get weightsMaterial(){return this.weightsPass.getFullscreenMaterial()}setEdgeDetectionThreshold(r){this.edgeDetectionPass.getFullscreenMaterial().setEdgeDetectionThreshold(r)}setOrthogonalSearchSteps(r){this.weightsPass.getFullscreenMaterial().setOrthogonalSearchSteps(r)}applyPreset(r){let e=this.edgeDetectionMaterial,t=this.weightsMaterial;switch(r){case Uo.LOW:e.setEdgeDetectionThreshold(.15),t.setOrthogonalSearchSteps(4),t.diagonalDetection=!1,t.cornerRounding=!1;break;case Uo.MEDIUM:e.setEdgeDetectionThreshold(.1),t.setOrthogonalSearchSteps(8),t.diagonalDetection=!1,t.cornerRounding=!1;break;case Uo.HIGH:e.setEdgeDetectionThreshold(.1),t.setOrthogonalSearchSteps(16),t.setDiagonalSearchSteps(8),t.setCornerRounding(25),t.diagonalDetection=!0,t.cornerRounding=!0;break;case Uo.ULTRA:e.setEdgeDetectionThreshold(.05),t.setOrthogonalSearchSteps(32),t.setDiagonalSearchSteps(16),t.setCornerRounding(25),t.diagonalDetection=!0,t.cornerRounding=!0;break}}setDepthTexture(r,e=Kr){let t=this.edgeDetectionMaterial;t.uniforms.depthBuffer.value=r,t.depthPacking=e}update(r,e,t){this.clearPass.render(r,this.renderTargetEdges),this.edgeDetectionPass.render(r,e,this.renderTargetEdges),this.weightsPass.render(r,this.renderTargetEdges,this.renderTargetWeights)}setSize(r,e){let t=this.edgeDetectionPass.getFullscreenMaterial(),n=this.weightsPass.getFullscreenMaterial();this.renderTargetEdges.setSize(r,e),this.renderTargetWeights.setSize(r,e),n.uniforms.resolution.value.set(r,e),n.uniforms.texelSize.value.set(1/r,1/e),t.uniforms.texelSize.value.copy(n.uniforms.texelSize.value)}dispose(){let r=this.weightsPass.getFullscreenMaterial().uniforms;r.searchTexture.value.dispose(),r.areaTexture.value.dispose(),super.dispose()}static get searchImageDataURL(){return wM}static get areaImageDataURL(){return SM}},Uo={LOW:0,MEDIUM:1,HIGH:2,ULTRA:3};var bF=`uniform float offset;uniform float darkness;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){const vec2 center=vec2(0.5);vec3 color=inputColor.rgb; +#ifdef ESKIL +vec2 coord=(uv-center)*vec2(offset);color=mix(color,vec3(1.0-darkness),dot(coord,coord)); +#else +float d=distance(uv,center);color*=smoothstep(0.8,offset*0.799,d*(darkness+offset)); +#endif +outputColor=vec4(color,inputColor.a);}`,AM=class extends Mr{constructor(r={}){let e=Object.assign({blendFunction:ut.NORMAL,eskil:!1,offset:.5,darkness:.5},r);super("VignetteEffect",bF,{blendFunction:e.blendFunction,uniforms:new Map([["offset",new Ae(e.offset)],["darkness",new Ae(e.darkness)]])});this.eskil=e.eskil}get eskil(){return this.defines.has("ESKIL")}set eskil(r){this.eskil!==r&&(r?this.defines.set("ESKIL","1"):this.defines.delete("ESKIL"),this.setChanged())}},j$=[new Float32Array(3),new Float32Array(3)],W$=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],J$=[[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1])]];var X$=[new Float32Array(2),new Float32Array(2)];var q$=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),Y$=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],K$=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],Q$=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];var Z$=new Map([[Hn(0,0,0,0),new Float32Array([0,0,0,0])],[Hn(0,0,0,1),new Float32Array([0,0,0,1])],[Hn(0,0,1,0),new Float32Array([0,0,1,0])],[Hn(0,0,1,1),new Float32Array([0,0,1,1])],[Hn(0,1,0,0),new Float32Array([0,1,0,0])],[Hn(0,1,0,1),new Float32Array([0,1,0,1])],[Hn(0,1,1,0),new Float32Array([0,1,1,0])],[Hn(0,1,1,1),new Float32Array([0,1,1,1])],[Hn(1,0,0,0),new Float32Array([1,0,0,0])],[Hn(1,0,0,1),new Float32Array([1,0,0,1])],[Hn(1,0,1,0),new Float32Array([1,0,1,0])],[Hn(1,0,1,1),new Float32Array([1,0,1,1])],[Hn(1,1,0,0),new Float32Array([1,1,0,0])],[Hn(1,1,0,1),new Float32Array([1,1,0,1])],[Hn(1,1,1,0),new Float32Array([1,1,1,0])],[Hn(1,1,1,1),new Float32Array([1,1,1,1])]]);function ag(r,e,t){return r+(e-r)*t}function Hn(r,e,t,n){let i=ag(r,e,1-.25),s=ag(t,n,1-.25);return ag(i,s,1-.125)}var _M=class extends fn{load(r=()=>{},e=null){arguments.length===4?(r=arguments[1],e=arguments[3]):(arguments.length===3||typeof arguments[0]!="function")&&(r=arguments[1],e=null);let t=this.manager,n=new yo;return new Promise((i,s)=>{let o=new Image,a=new Image;n.onError=l=>{t.itemError(l),e!==null?(e(`Failed to load ${l}`),i()):s(`Failed to load ${l}`)},n.onLoad=()=>{let l=[o,a];r(l),i(l)},o.addEventListener("error",l=>{n.itemError("smaa-search")}),a.addEventListener("error",l=>{n.itemError("smaa-area")}),o.addEventListener("load",()=>{t.itemEnd("smaa-search"),n.itemEnd("smaa-search")}),a.addEventListener("load",()=>{t.itemEnd("smaa-area"),n.itemEnd("smaa-area")}),t.itemStart("smaa-search"),t.itemStart("smaa-area"),n.itemStart("smaa-search"),n.itemStart("smaa-area"),o.src=wM,a.src=SM})}};var hn=class{constructor(e,t){this.enabled=!1;this.effect=new e(t),Object.defineProperty(this,"opacity",{enumerable:!0,set(n){this.effect.blendMode.opacity.value=n},get(){return this.effect.blendMode.opacity.value}}),Object.defineProperty(this,"blendFunction",{enumerable:!0,set(n){this.effect.blendMode.setBlendFunction(Number(n))},get(){return this.effect.blendMode.blendFunction}}),this.blendFunction=ut.NORMAL}toJSON(){let e=["constructor","effect","subscriptions"],t=Ue({},this),n=Object.getPrototypeOf(this),i=Object.getOwnPropertyNames(n);for(let s of i){let o=Object.getOwnPropertyDescriptor(n,s);o&&typeof o.get=="function"&&(t[s]=this[s])}return e.forEach(s=>delete t[s]),t}};var ru=class extends hn{constructor(){super(fM);this.blendFunction=ut.SCREEN}set intensity(e){this.effect.intensity=e}get intensity(){return this.effect.intensity}set luminanceThreshold(e){this.effect.luminanceMaterial.threshold=e}get luminanceThreshold(){return this.effect.luminanceMaterial.threshold}set luminanceSmoothing(e){this.effect.luminanceMaterial.smoothing=e}get luminanceSmoothing(){return this.effect.luminanceMaterial.smoothing}set blurScale(e){this.effect.blurPass.scale=e}get blurScale(){return this.effect.blurPass.scale}set kernelSize(e){this.effect.blurPass.kernelSize=e}get kernelSize(){return this.effect.blurPass.kernelSize}};var su=class extends hn{constructor(){super(pM)}set contrast(e){this.effect.uniforms.get("contrast").value=e}get contrast(){return this.effect.uniforms.get("contrast").value}set brightness(e){this.effect.uniforms.get("brightness").value=e}get brightness(){return this.effect.uniforms.get("brightness").value}};var ou=class extends hn{constructor(){super(gM);this.effect.offset=new O(.01,.01)}set offset(e){this.effect.offset.set(e[0]/1e3,e[1]/1e3)}get offset(){return[this.effect.offset.x*1e3,this.effect.offset.y*1e3]}};var au=class extends hn{constructor(){super(mM)}};var lu=class extends hn{constructor(){super(vM);this._hue=0}set hue(e){this._hue=e,this.effect.setHue(e)}get hue(){return this._hue}set saturation(e){this.effect.uniforms.get("saturation").value=e}get saturation(){return this.effect.uniforms.get("saturation").value}};var cu=class extends hn{constructor(){super(xM);this.blendFunction=ut.OVERLAY}};var uu=class extends hn{constructor(){super(AM)}get eskil(){return this.effect.eskil}set eskil(e){this.effect.eskil=e}get darkness(){return this.effect.uniforms.get("darkness").value}set darkness(e){this.effect.uniforms.get("darkness").value=e}get offset(){return this.effect.uniforms.get("offset").value}set offset(e){this.effect.uniforms.get("offset").value=e}};var hu=class extends hn{constructor(e){super(yM,e)}set focalLength(e){this.effect.circleOfConfusionMaterial.uniforms.focalLength.value=e}get focalLength(){return this.effect.circleOfConfusionMaterial.uniforms.focalLength.value}set focusDistance(e){this.effect.circleOfConfusionMaterial.uniforms.focusDistance.value=e}get focusDistance(){return this.effect.circleOfConfusionMaterial.uniforms.focusDistance.value}get bokehScale(){return this.effect.bokehScale}set bokehScale(e){this.effect.bokehScale=e}};var du=class extends hn{constructor(){super(bM)}get granularity(){return this.effect.getGranularity()}set granularity(e){this.effect.setGranularity(e)}};function TM(r,e){return e&&e.enabled&&r.push(e.effect),r}var fu=class{constructor(){this._scene=new An;this._camera=new Sr;this.effects=new Map;this.loadingManager=new yo;this.smaaImageLoader=new _M(this.loadingManager);this.renderPass=new sg;this._renderToScreen=!0;this._hasSmaa=!1;this.clock=new Ep,this.enabled=!1,this.debug=!1,this.effects.set("bloom",new ru),this.effects.set("chromaticAberration",new ou),this.effects.set("vignette",new uu),this.effects.set("noise",new cu),this.effects.set("colorAverage",new au),this.effects.set("hueSaturation",new lu),this.effects.set("brightnessContrast",new su),this.effects.set("depthOfField",new hu),this.effects.set("pixelation",new du)}get scene(){return this._scene}set scene(e){this._scene=e,this._initPasses()}get camera(){return this._camera}set camera(e){this._camera=e,this._initPasses()}_initSmaa(){let e=this.effectComposer.passes.length;this.smaaImageLoader.load(([t,n])=>{if(!this.effectComposer)return;let i=new MM(t,n,Uo.ULTRA,Vd.COLOR);i.edgeDetectionMaterial.setPredicationMode(oM.DEPTH),i.edgeDetectionMaterial.setEdgeDetectionThreshold(.05),i.edgeDetectionMaterial.setPredicationThreshold(.002),i.edgeDetectionMaterial.setPredicationScale(1),this.effectComposer.addPass(new Hd(this.camera,i),e),this._hasSmaa=!0})}_initPasses(){if(!(!this.effectComposer||!this.renderer))if(this.effectComposer.removeAllPasses(),this._hasSmaa=!1,this.renderPass=new sg(this.scene,this.camera),this.enabled){this.effectComposer.addPass(this.renderPass),this._initSmaa();let e=[this.effects.get("chromaticAberration"),this.effects.get("bloom"),this.effects.get("colorAverage"),this.effects.get("hueSaturation"),this.effects.get("brightnessContrast"),this.effects.get("vignette"),this.effects.get("noise")].reduce(TM,[]),t=[this.effects.get("pixelation")].reduce(TM,[]);t.length>0&&this.effectComposer.addPass(new Hd(this.camera,...t)),this.effectComposer.addPass(new Hd(this.camera,...e))}else this.effectComposer.addPass(this.renderPass)}reinit(){!this.renderer||(this.effectComposer=new dM(this.renderer),this._initPasses())}init({renderer:e,camera:t,scene:n}){this.renderer=e,this.scene=n,this.camera=t,this._initSavePass(),this.reinit()}_initSavePass(){if(this._savePass)return;let e=new O;this.renderer.getDrawingBufferSize(e);let t=this.renderer.capabilities.isWebGL2?Zr:bt;this._rt=new t(e.x,e.y,{depthBuffer:!1,stencilBuffer:!1,wrapS:di,wrapT:di}),this._savePass=new lM(this._rt,!1),this._savePass.renderToScreen=!1}get renderToScreen(){return this._renderToScreen}set renderToScreen(e){var n,i;let t=this.effectComposer;!t||(e===!0?(((n=this.renderer)==null?void 0:n.capabilities.isWebGL2)&&(t.multisampling=0),t.removePass(this._savePass),t.passes[t.passes.length-1].renderToScreen=!0,t.autoRenderToScreen=!0):(((i=this.renderer)==null?void 0:i.capabilities.isWebGL2)&&!this._hasSmaa&&(t.multisampling=4),t.autoRenderToScreen=!1,t.passes[t.passes.length-1].renderToScreen=!1,this._savePass.renderToScreen=!1,t.addPass(this._savePass)),this._renderToScreen=e)}get texture(){return this._rt&&this._rt.texture}get renderTarget(){return this._rt}fromJSON(e){e&&(Object.keys(e).forEach(t=>{let n=e[t],i=this.effects.get(t);Object.keys(n).forEach(s=>{i[s]=n[s]})}),this.enabled=e.enabled)}toJSON(){let e={};return this.effects.forEach((t,n)=>{e[n]=t.toJSON()},e),Ue({enabled:this.enabled},e)}render(){var e;(e=this.effectComposer)==null||e.render(this.clock.getDelta())}setScissor(e,t,n,i){if(!this.effectComposer||!this.renderer)return;e instanceof Qe?(this.effectComposer.inputBuffer.scissor.set(e.x,e.y,e.z,e.w),this.effectComposer.outputBuffer.scissor.set(e.x,e.y,e.z,e.w)):(this.effectComposer.inputBuffer.scissor.set(e,t,n,i),this.effectComposer.outputBuffer.scissor.set(e,t,n,i));let s=this.renderer.getPixelRatio();this.effectComposer.inputBuffer.scissor.multiplyScalar(s),this.effectComposer.outputBuffer.scissor.multiplyScalar(s),this.renderer.setScissor(e,t,n,i)}setScissorTest(e){!this.effectComposer||!this.renderer||(this.effectComposer.inputBuffer.scissorTest=e,this.effectComposer.outputBuffer.scissorTest=e,this.renderer.setScissorTest(e))}setViewport(e,t,n,i){!this.effectComposer||(e instanceof Qe?(this.effectComposer.inputBuffer.viewport.copy(e),this.effectComposer.outputBuffer.viewport.copy(e)):(this.effectComposer.inputBuffer.viewport.set(e,t,n,i),this.effectComposer.outputBuffer.viewport.set(e,t,n,i)))}resize(e,t){var n,i;if((n=this.effectComposer)==null||n.setSize(e,t),this._rt){let s=((i=this.renderer)==null?void 0:i.getPixelRatio())||window.devicePixelRatio;this._rt.setSize(e*s,t*s)}}};var EM;(function(e){function r(t){new Qe(t.r/255,t.g/255,t.b/255,t.a)}e.getThreeVector4=r})(EM||(EM={}));var jd;(function(t){function r(n,i){n.setRGB(i.r/255,i.g/255,i.b/255)}t.setThreeColor=r;function e(n){return new fe(n.r/255,n.g/255,n.b/255).getHex()}t.getHex=e})(jd||(jd={}));var zs=class extends Ld(An){constructor(){super();this.objectType="Scene";this.alpha=1;this.backupFog=new hs(16777215,.1,2e3);this.fogUseBGColor=!1;this.directionalLightState=!0;this.ambientLightState=!0;this.wireframeState=!1;this._color=new fe(1644825);this.canvas={mode:1,preset:"fullscreen",size:{width:512,height:512},editorSize:{width:1,height:1},color:[0,0,0,.5]};this.name="Untitled",this.postprocessing=new fu}get color(){return this._color}set color(e){this.fogUseBGColor===!0&&this.backupFog.color.copy(e),this._color.copy(e)}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,t){this.camera=new Sr(e,t),this.camera.setDefault(),this.camera.orthoCamera.near=-5e4,this.camera.perspCamera.near=50,this.camera.orthoCamera.far=1e5,this.camera.perspCamera.far=1e5,this.camera.updateProjectionMatrix(),this.camera.position.set(0,0,Sr.DefaultTargetOffset),this.camera.lookAt(new M(0,0,-1)),this.add(this.camera),this.canvas.size.width=e,this.canvas.size.height=t,this.ambientLight=new uc(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.add(this.ambientLight),this.directionalLight=new Fr(16777215,.75),this.directionalLight.name="Default Directional Light",this.directionalLight.position.set(85e4,13e5,1e6),this.activeCamera=this.camera,this.activeCamera.add(this.directionalLight)}initFromObjectLoader(e){return this.traverse(t=>{t.uuid===e.ambientLight?this.ambientLight=t:t.uuid===e.directionalLight?this.directionalLight=t:(t.uuid===e.activeCamera&&(this.activeCamera=t),t.uuid===e.camera&&(this.camera=t,this.camera.setDefault()))}),this}raycast(e){let t=[],n=i=>{for(let s of i.children)ei(s)&&!s.raycastLock&&s.visible&&((ai(s)||Hh(s)&&s.enableHelper&&s.objectHelper.parent)&&e.intersectObject(s,!1,t),n(s))};return n(this),t}traverseEntity(e){for(let t of this.children)ei(t)&&this.camera!==t&&t.traverseEntity(e)}updateFog(e){this.enableFog=e.enabled,this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.color):jd.setThreeColor(this.backupFog.color,e.color),this.backupFog.near=e.near,this.backupFog.far=e.far}toJSON(e){var i,s,o,a,l;let t=super.toJSON(e),n=t.object;return n.objectType="Scene",n.activeCamera=(i=this.activeCamera)==null?void 0:i.uuid,n.camera=(s=this.camera)==null?void 0:s.uuid,n.directionalLight=(o=this.directionalLight)==null?void 0:o.uuid,n.ambientLight=(a=this.ambientLight)==null?void 0:a.uuid,n.color=this.color.toArray(),n.alpha=this.alpha,this.background instanceof xt?n.background=this.background.toJSON(e):this.background instanceof fe&&(n.background=this.background.toArray()),this.environment!==null&&(n.environment=this.environment.toJSON(e)),this.enableFog===!0&&(n.enableFog=!0,this.fogUseBGColor===!0&&(n.fogUseBGColor=!0),this.fog!==null&&(n.fog=this.fog.toJSON())),this.directionalLightState===!0&&(n.directionalLightState=!0),this.ambientLightState===!0&&(n.ambientLightState=!0),this.wireframeState===!0&&(n.wireframeState=!0),n.canvas={mode:this.canvas.mode,preset:this.canvas.preset,editorSize:{width:window.innerWidth,height:window.innerHeight},color:this.canvas.color},this.canvas.mode!==1&&(n.canvas.size={width:this.canvas.size.width,height:this.canvas.size.height}),n.postprocessing=(l=this.postprocessing)==null?void 0:l.toJSON(),t}fromJSON(e){var n,i,s,o,a;super.fromJSON(e),this.postprocessing=new fu,this.color.fromArray(e.color),this.alpha=e.alpha,e.background!==void 0&&Array.isArray(e.background)&&(this.background=new fe().fromArray(e.background)),e.fog!==void 0&&(e.fog.type==="FogExp2"?this.backupFog=new io(e.fog.color,e.fog.density):this.backupFog=new hs(e.fog.color,e.fog.near,e.fog.far)),this.fogUseBGColor=(n=e.fogUseBGColor)!=null?n:!1,this.enableFog=(i=e.enableFog)!=null?i:!1,this.directionalLightState=(s=e.directionalLightState)!=null?s:!1,this.ambientLightState=(o=e.ambientLightState)!=null?o:!1,this.wireframeState=(a=e.wireframeState)!=null?a:!1;let t=e.canvas;return this.canvas.mode=t.mode,this.canvas.preset=t.preset,t.size&&(this.canvas.size={width:t.size.width,height:t.size.height}),this.canvas.editorSize=t.editorSize?{width:t.editorSize.width,height:t.editorSize.height}:{width:window.innerWidth,height:window.innerHeight},t.color&&(this.canvas.color=[...t.color]),this.postprocessing.fromJSON(e.postprocessing),this}dispose(){this.traverseEntity(e=>{"geometry"in e&&e.geometry.dispose(),"material"in e&&(e.material instanceof Array?e.material.forEach(t=>t.dispose()):e.material.dispose())})}};var lg=class extends je{constructor(e="",t){super(t);this.nodeType="Attribute";this.name=e}getAttributeType(e){return typeof this.type=="number"?e.getConstructorFromLength(this.type):this.type}getType(e){let t=this.getAttributeType(e);return e.getTypeByFormat(t)}generate(e,t,n,i,s){i=this.getAttributeType(e);let o=e.getAttribute(this.name,i),a=e.isShader("vertex")?this.name:o.varying.name;return e.format(a,this.getType(e),t)}toJSON(e){let t=super.toJSON(e);return t.nodeType=this.nodeType,t.name=this.name,t}fromJSON(e,t){return super.fromJSON(e,t),e.scope&&(this.scope=e.scope),e.name&&(this.name=e.name),this}};var cg=class extends ze{constructor(e="",t=0){super(e);this.nodeType="Varying";this.value=t}getType(e){return e.getTypeByFormat(this.type)}generate(e,t,n,i,s){let o=e.getVar(this.uuid,this.type);return this.value&&e.isShader("vertex")&&e.addNodeCode(o.name+" = "+this.value.build(e,this.getType(e))+";"),e.format(o.name,this.getType(e),t)}copy(e){return super.copy(e),this.value=e.value,this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),this.value&&(t.value=this.value)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.value&&(this.value=e.value),this}};var ug=class extends Ct{constructor(e){super("m4");this.nodeType="Matrix4";this.value=e!=null?e:new me}generateReadonly(e,t,n,i,s,o){return e.format("mat4("+this.value.elements.join(", ")+")",i,t)}copy(e){return super.copy(e),this.elements=e.elements,this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.elements=this.value.elements.concat()),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.elements&&(this.elements=e.elements),this}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};var Ar;(function(l){l.EQUAL="==",l.NOT_EQUAL="!=",l.GREATER=">",l.GREATER_EQUAL=">=",l.LESS="<",l.LESS_EQUAL="<=",l.AND="&&",l.OR="||"})(Ar||(Ar={}));var hg=class extends je{constructor(e=new ze,t=new ze,n=hg.GREATER,i=new ze,s=new ze){super();this.nodeType="Cond";this.a=e,this.b=t,this.op=n,this.ifNode=i,this.elseNode=s}getType(e){if(this.ifNode){let t=this.ifNode.getType(e),n=this.elseNode.getType(e);return e.getTypeLength(n)>e.getTypeLength(t)?n:t}return"b"}getCondType(e){return e.getTypeLength(this.b.getType(e))>e.getTypeLength(this.a.getType(e))?this.b.getType(e):this.a.getType(e)}generate(e,t){let n=this.getType(e),i=this.getCondType(e),s=this.a.build(e,i),o=this.b.build(e,i),a;if(this.type=n,this.ifNode){let l=this.ifNode.build(e,n),c=this.elseNode.build(e,n);a="( "+[s,this.op,o,"?",l,":",c].join(" ")+" )"}else a="( "+s+" "+this.op+" "+o+" )";return e.format(a,this.getType(e),t)}copy(e){return super.copy(e),this.a.copy(e.a),this.b.copy(e.b),this.op=e.op,this.ifNode.copy(e.ifNode),this.elseNode.copy(e.elseNode),this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),t.a=this.a.toJSON(e).uuid,t.b=this.b.toJSON(e).uuid,t.op=this.op,this.ifNode&&(t.ifNode=this.ifNode.toJSON(e).uuid),this.elseNode&&(t.elseNode=this.elseNode.toJSON(e).uuid)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.a&&(this.a=t.getNode(e.a)),e.b&&(this.b=t.getNode(e.b)),e.op&&(this.op=e.op),e.ifNode&&(this.ifNode=t.getNode(e.ifNode)),e.elseNode&&(this.elseNode=t.getNode(e.elseNode)),this}},rr=hg;rr.EQUAL=Ar.EQUAL,rr.NOT_EQUAL=Ar.NOT_EQUAL,rr.GREATER=Ar.GREATER,rr.GREATER_EQUAL=Ar.GREATER_EQUAL,rr.LESS=Ar.LESS,rr.LESS_EQUAL=Ar.LESS_EQUAL,rr.AND=Ar.AND,rr.OR=Ar.OR;var Tl=class extends Te{constructor(e){super();this.nodeType="MaxMIPLevel";this.texture=e,this.maxMIPLevel=0}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),this.texture&&(t.texture=this.texture.toJSON(e).uuid),t.maxMIPLevel=this.maxMIPLevel),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.texture&&(this.texture=t.getNode(e.texture)),e.maxMIPLevel!==void 0&&(this.maxMIPLevel=e.maxMIPLevel),this}};Object.defineProperties(Tl.prototype,{value:{get:function(){if(this.maxMIPLevel===0){let r=this.texture.value.image;Array.isArray(r)&&(r=r[0]),this.maxMIPLevel=r!==void 0?Math.log(Math.max(r.width,r.height))*Math.LOG2E:0}return this.maxMIPLevel},set:function(){}}});var dg=class extends je{constructor(e=new ze,t){super("f");this.nodeType="SpecularMIPLevel";this.roughness=e,this.texture=t}setTexture(e){return this.texture=e,this}generate(e,t){var n;if(e.isShader("fragment")){this.maxMIPLevel=(n=this.maxMIPLevel)!=null?n:new Tl,this.maxMIPLevel.texture=this.texture;let i=e.include(dg.Nodes.getSpecularMIPLevel);return e.format(i+"( "+this.roughness.build(e,"f")+", "+this.maxMIPLevel.build(e,"f")+" )",this.type,t)}else return console.warn("SpecularMIPLevelNode is not compatible with "+e.shader+" shader."),e.format("0.0",this.type,t)}copy(e){return super.copy(e),this.roughness=e.roughness,e.texture?this.texture?this.texture.copy(e.texture):this.texture=e.texture.clone():this.texture=void 0,e.maxMIPLevel?this.maxMIPLevel?this.maxMIPLevel.copy(e.maxMIPLevel):this.maxMIPLevel=e.maxMIPLevel.clone():this.maxMIPLevel=void 0,this}toJSON(e){let t=this.getJSONNode(e);return t||(t=this.createJSONNode(e),this.texture&&(t.texture=this.texture.toJSON(e).uuid),this.roughness&&(t.roughness=this.roughness.toJSON(e).uuid),this.maxMIPLevel&&(t.maxMIPLevel=this.maxMIPLevel.toJSON(e).uuid)),t.nodeType=this.nodeType,t}fromJSON(e,t){return super.fromJSON(e,t),e.roughness&&(this.roughness=t.getNode(e.roughness)),e.texture&&(this.texture=t.getNode(e.texture)),e.maxMIPLevel&&(this.maxMIPLevel=t.getNode(e.maxMIPLevel)),this}},Wd=dg;Wd.Nodes=function(){return{getSpecularMIPLevel:new Le(["float getSpecularMIPLevel( const in float roughness, const in float maxMIPLevelScalar ) {"," float sigma = PI * roughness * roughness / ( 1.0 + roughness );"," float desiredMIPLevel = maxMIPLevelScalar + log2( sigma );"," return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );","}"].join(` +`))}}();var NM={Int:it,Float:Te,Bool:mc,Vector2:In,Vector3:Un,Vector4:yc,Matrix3:zr,Matrix4:ug,FloatArray:Ba,Vector4Array:Ra,Normal:mn,Position:_n,Reflect:Qi,UV:bo,Attribute:lg,Const:rt,Struct:Ao,Varying:cg,SpecularMIPLevel:Wd,MaxMIPLevel:Tl,ColorSpace:Bt,Noise:Wa,TextureCubeUV:_o,TextureCube:vc,Operator:Yn,Math:Ye,Cond:rr,Fresnel:Ga,Rainbow:ka,Transmission:Va,Depth:qa,Blend:Xa,Raw:Qa,CubeTexture:xc,Texture:kn,CustomTexture:za,VertexDisplacement:Mo,CustomNormal:Ha,Gradient:ja,Matcap:Ya,Expression:yt,Color:ct,Phong:wc,Basic:bc,Lambert:Sc,Standard:Tc,Toon:Ac};var Jd=class{constructor(){this._nodes={};this._dataNodes={};this._textures={};this.uuid=Ee.generateUUID()}init(e,t){this._dataNodes=e,this._textures=t}clear(){this._nodes={},this._dataNodes={},this._textures={}}getNode(e){let t=this._nodes[e];return t||(t=this.createNode(e)),t}getNodeData(e){return this._dataNodes[e]}getTexture(e){let t=this._textures[e];return t||new bi}createNode(e){let t=this._dataNodes[e];if(!t)throw new Error("Failed to create Node from uuid: "+e+", its data does not seem to exist");let n=NM[t.nodeType];if(!n)throw new Error("Failed to create Node from uuid: "+e+" and nodeType: "+t.nodeType+", constructor for this not is not registered");let i=new n().fromJSON(t,this);return this._nodes[e]=i,i}};function CM(r){wF(r.geometries),SF(r.interactionStates),LM(r.object),MF(r.materials)}function wF(r){var e;if(r!==void 0){for(let t of r)if(((e=t.userData)==null?void 0:e.type)!==void 0){let n=t.userData.parameters;"extrudeDepth"in n||Object.assign(n,{extrudeDepth:0}),"extrudeBevelSize"in n||Object.assign(n,{extrudeBevelSize:0}),"extrudeBevelSegments"in n||Object.assign(n,{extrudeBevelSegments:1})}}}function SF(r){if(r!==void 0){for(let e of r)if(e.quaternion!==void 0){let t=new Tt().fromArray(e.quaternion);Object.assign(e,{rotation:new On().setFromQuaternion(t).toArray()})}}}function LM(r){var e,t,n,i;if(((e=r.userData)==null?void 0:e.type)===void 0)if(r.type==="OrthographicCamera"||r.type==="PerspectiveCamera"){let s=r;Object.assign(r,{objectType:"CombinedCamera",cameraType:s.type,isDefaultCamera:!0,hiddenMatrix:new me().toArray(),name:"Default Camera",far:1e5,zoomOrtho:s.zoom,zoomPersp:1,nearOrtho:-5e4,nearPersp:50}),delete r.type,s.typeCamera!==void 0&&(Object.assign(r,{cameraType:s.typeCamera}),delete r.typeCamera)}else r.type==="Scene"?(Object.assign(r,{objectType:r.type}),delete r.type):r.type==="HemisphereLight"?Object.assign(r,{isDefaultAmbientLight:!0}):r.type==="DirectionalLight"&&Object.assign(r,{isDefaultDirectionalLight:!0});if(r.userData!==void 0){let s=r.userData;s.type!==void 0&&(Object.assign(r,{objectType:s.type}),delete s.type),s.interaction!==void 0&&(Object.assign(r,{interaction:s.interaction}),delete s.interaction),s.isDefaultAmbientLight===!0?(Object.assign(r,{isDefaultAmbientLight:!0}),delete s.isDefaultAmbientLight):s.isDefaultDirectionalLight===!0?(Object.assign(r,{isDefaultDirectionalLight:!0}),delete s.isDefaultDirectionalLight):s.isDefaultCamera===!0&&(Object.assign(r,{isDefaultCamera:!0}),delete s.isDefaultCamera),Object.assign(r,{raycastLock:s.lock,scaleLock:s.scaleLock,hiddenMatrix:(n=(t=s.hiddenMatrix)==null?void 0:t.elements)!=null?n:new me().toArray()}),delete s.lock,delete s.scaleLock,delete s.hiddenMatrix,delete s.isEntity}if(((i=r.interaction)==null?void 0:i.events)!==void 0){for(let s of r.interaction.events)if(s.targets!==void 0)for(let o of s.targets)o.springControls!==void 0&&(Object.assign(o,{springParameters:{mass:o.springControls[0],stiffness:o.springControls[1],damping:o.springControls[2],velocity:o.springControls[3]}}),delete o.springControls)}if(r.children!==void 0)for(let s of r.children)LM(s)}function MF(r){if(r!==void 0)for(let e of r){let n=e.userData.layers.head;for(;n;){for(let i in n.uniforms){let s=`f${n.id}_tex`,o=`f${n.id}_texture`;i===s&&(n.uniforms[o]=n.uniforms[s],delete n.uniforms[s])}n=n.next}}}function IM(r){PM(r.object,r.object)}function PM(r,e){var t;if(r.type==="HemisphereLight"||r.isDefaultAmbientLight===!0?e.ambientLight=r.uuid:((t=r.userData)==null?void 0:t.isDefaultDirectionalLight)===!0||r.isDefaultDirectionalLight===!0?e.directionalLight=r.uuid:r.isDefaultCamera===!0&&(e.camera=r.uuid,e.activeCamera=r.uuid,Object.assign(r,{name:"Default Camera"})),r.children!==void 0)for(let n of r.children)PM(n,e)}function DM(r){AF(r.object)}function AF(r){var e,t,n,i,s,o,a;if(r.objectType==="Scene"){let l=r.userData,c=(e=l.rgb)!=null?e:{r:25,g:25,b:25},u=(t=l.fogColor)!=null?t:{r:25,g:25,b:25};Object.assign(r,{color:[c.r/255,c.g/255,c.b/255],alpha:l.alpha,enableFog:l.fogEnable,fogUseBGColor:l.fogUseBGColor,fog:{color:new fe().setRGB(u.r/255,u.g/255,u.b/255).getHex(),near:l.fogNear,far:l.fogFar},directionalLightState:l.directionalLightState,ambientLightState:l.ambientLightState,shadowsState:l.shadowsState,wireframeState:l.wireframeState,canvas:{mode:(n=l.canvasMode)!=null?n:1,size:{width:(s=(i=l.canvasCustomSize)==null?void 0:i.width)!=null?s:512,height:(a=(o=l.canvasCustomSize)==null?void 0:o.height)!=null?a:512}}}),delete l.rgb,delete l.alpha,delete l.fogEnable,delete l.fogUseBGColor,delete l.fogColor,delete l.fogNear,delete l.fogFar,delete l.directionalLightState,delete l.ambientLightState,delete l.shadowsState,delete l.wireframeState,delete l.canvasMode,delete l.canvasFullScreen,delete l.canvasCustomSize}}function RM(r){return{uuid:Ee.generateUUID(),type:"b",value:r,nodeType:"Bool"}}function Si(r,e){let t=new fe().set(r);return{uuid:Ee.generateUUID(),type:"c",r:t.r,g:t.g,b:t.b,value:r,alpha:e==null?void 0:e.uuid,nodeType:"Color"}}function BM(r,e){return{uuid:Ee.generateUUID(),type:"f[]",size:r,value:e,nodeType:"FloatArray"}}function mt(r){return{uuid:Ee.generateUUID(),type:"f",value:r,nodeType:"Float"}}function an(r){return{uuid:Ee.generateUUID(),type:"i",value:r,nodeType:"Int"}}function El(r){let{x:e,y:t}=r;return{uuid:Ee.generateUUID(),type:"v2",x:e,y:t,nodeType:"Vector2"}}function fg(r){let{x:e,y:t,z:n}=r;return{uuid:Ee.generateUUID(),type:"v3",x:e,y:t,z:n,nodeType:"Vector3"}}function OM(r,e){return{uuid:Ee.generateUUID(),type:"v4[]",size:r,value:e,nodeType:"Vector4Array"}}function FM(r){return{uuid:Ee.generateUUID(),type:"m3",elements:r.elements,nodeType:"Matrix3"}}function zM(r,e){return{uuid:Ee.generateUUID(),type:"v4",value:r,uv:e.uuid,project:!1,nodeType:"Texture"}}function GM(r){return{uuid:Ee.generateUUID(),type:"v2",index:r,nodeType:"UV"}}function pg(r,e){let t={uuid:Ee.generateUUID(),type:"v3",nodeType:"Blend",a:r==null?void 0:r.uuid,b:e.uuid};return"mode"in e&&(t.mode=e.mode),t}function UM(r,e){let t=r.uniforms,n=r.id,i=mt(t[`f${n}_alpha`].value),s=an(t[`f${n}_mode`].value);return[i,s].forEach(o=>e[o.uuid]=o),Object.assign(r,{uniforms:{[`f${n}_alpha`]:i.uuid,[`f${n}_mode`]:s.uuid}}),{uuid:Ee.generateUUID(),type:"v3",nodeType:"CustomTexture",alpha:i.uuid,mode:s.uuid}}function mg(r,e){let t=r.uniforms,n=r.id,i=an(t[`f${n}_mode`].value),s=mt(t[`f${n}_alpha`].value),o=Si(t[`f${n}_color`].value,s);return[o,s,i].forEach(a=>e[a.uuid]=a),Object.assign(r,{uniforms:{[`f${n}_color`]:o.uuid,[`f${n}_alpha`]:s.uuid,[`f${n}_mode`]:i.uuid}}),o}function kM(r,e){let t=r.uniforms,n=r.id,i=an(t[`f${n}_mode`].value),s=mt(t[`f${n}_alpha`].value),o=fg(t[`f${n}_cnormal`].value);return[o,s,i].forEach(a=>e[a.uuid]=a),Object.assign(r,{uniforms:{[`f${n}_cnormal`]:o.uuid,[`f${n}_alpha`]:s.uuid,[`f${n}_mode`]:i.uuid}}),{uuid:Ee.generateUUID(),type:"v3",nodeType:"CustomNormal",cnormal:o.uuid,alpha:s.uuid,mode:i.uuid}}function VM(r,e){let t=r.uniforms,n=r.id,i=an(t[`f${n}_mode`].value),s=mt(t[`f${n}_alpha`].value),o=mt(t[`f${n}_near`].value),a=mt(t[`f${n}_far`].value),l=mt(t[`f${n}_isVector`].value),c=fg(t[`f${n}_origin`].value),u=Si(t[`f${n}_colorA`].value),h=Si(t[`f${n}_colorB`].value);return[o,a,l,c,u,h,s,i].forEach(d=>e[d.uuid]=d),Object.assign(r,{uniforms:{[`f${n}_near`]:o.uuid,[`f${n}_far`]:a.uuid,[`f${n}_isVector`]:l.uuid,[`f${n}_origin`]:c.uuid,[`f${n}_colorA`]:u.uuid,[`f${n}_colorB`]:h.uuid,[`f${n}_alpha`]:s.uuid,[`f${n}_mode`]:i.uuid}}),{uuid:Ee.generateUUID(),type:"v3",nodeType:"Depth",near:o.uuid,far:a.uuid,isVector:l.uuid,origin:c.uuid,colorA:u.uuid,colorB:h.uuid,alpha:s.uuid,mode:i.uuid}}function HM(r,e){let t=r.uniforms,n=r.id,i=an(t[`f${n}_mode`].value),s=mt(t[`f${n}_alpha`].value),o=Si(t[`f${n}_color`].value),a=mt(t[`f${n}_bias`].value),l=mt(t[`f${n}_scale`].value),c=mt(t[`f${n}_intensity`].value),u=mt(t[`f${n}_factor`].value);return[o,a,l,c,u,s,i].forEach(h=>e[h.uuid]=h),Object.assign(r,{uniforms:{[`f${n}_color`]:o.uuid,[`f${n}_bias`]:a.uuid,[`f${n}_scale`]:l.uuid,[`f${n}_intensity`]:c.uuid,[`f${n}_factor`]:u.uuid,[`f${n}_alpha`]:s.uuid,[`f${n}_mode`]:i.uuid}}),{uuid:Ee.generateUUID(),type:"v3",nodeType:"Fresnel",color:o.uuid,bias:a.uuid,scale:l.uuid,intensity:c.uuid,factor:u.uuid,alpha:s.uuid,mode:i.uuid}}function jM(r,e){let t=r.uniforms,n=r.id,i=an(t[`f${n}_mode`].value),s=mt(t[`f${n}_alpha`].value),o=an(t[`f${n}_gl_type`].value),a=an(t[`f${n}_num`].value),l=RM(t[`f${n}_smooth`].value),c=OM(10,t[`f${n}_colors`].value),u=BM(10,t[`f${n}_steps`].value),h=El(t[`f${n}_offset`].value),d=El(t[`f${n}_morph`].value),f=mt(t[`f${n}_angle`].value);return[o,a,l,c,u,h,d,f,s,i].forEach(p=>e[p.uuid]=p),Object.assign(r,{uniforms:{[`f${n}_gl_type`]:o.uuid,[`f${n}_num`]:a.uuid,[`f${n}_smooth`]:l.uuid,[`f${n}_colors`]:c.uuid,[`f${n}_steps`]:u.uuid,[`f${n}_offset`]:h.uuid,[`f${n}_morph`]:d.uuid,[`f${n}_angle`]:f.uuid,[`f${n}_alpha`]:s.uuid,[`f${n}_mode`]:i.uuid}}),{uuid:Ee.generateUUID(),type:"v3",nodeType:"Gradient",gl_type:o.uuid,num:a.uuid,smooth:l.uuid,colors:c.uuid,steps:u.uuid,offset:h.uuid,morph:d.uuid,angle:f.uuid,alpha:s.uuid,mode:i.uuid}}function WM(r,e){let t=r.uniforms,n=r.id,i=Ee.generateUUID(),s=an(t[`f${n}_mode`].value),o=mt(t[`f${n}_alpha`].value),a=mt(t[`f${n}_crop`].value),l=GM(0),c=zM(t[`f${n}_texture`].value,l),u=FM(t[`f${n}_mat`].value);return[c,l,u,a,o,s].forEach(h=>e[h.uuid]=h),Object.assign(r,{uniforms:{[`f${n}_texture`]:c.uuid,[`f${n}_mat`]:u.uuid,[`f${n}_crop`]:a.uuid,[`f${n}_alpha`]:o.uuid,[`f${n}_mode`]:s.uuid}}),{uuid:i,type:"v3",nodeType:"CustomTexture",texture:c.uuid,crop:a.uuid,alpha:o.uuid,mode:s.uuid}}function JM(r,e){let t=r.uniforms,n=r.id,i=an(t[`f${n}_mode`].value),s=mt(t[`f${n}_alpha`].value),o=mt(t[`f${n}_scale`].value),a=mt(t[`f${n}_move`].value),l=El(t[`f${n}_fA`].value),c=El(t[`f${n}_fB`].value),u=El(t[`f${n}_distortion`].value),h=Si(t[`f${n}_colorA`].value),d=Si(t[`f${n}_colorB`].value),f=Si(t[`f${n}_colorC`].value),p=Si(t[`f${n}_colorD`].value),m=an(t[`f${n}_intA`].value),v=an(t[`f${n}_intB`].value),g=an(t[`f${n}_intC`].value),y=an(t[`f${n}_intD`].value);return[o,a,l,c,u,h,d,f,p,m,v,g,y,s,i].forEach(x=>e[x.uuid]=x),Object.assign(r,{uniforms:{[`f${n}_scale`]:o.uuid,[`f${n}_move`]:a.uuid,[`f${n}_fA`]:l.uuid,[`f${n}_fB`]:c.uuid,[`f${n}_distortion`]:u.uuid,[`f${n}_colorA`]:h.uuid,[`f${n}_colorB`]:d.uuid,[`f${n}_colorC`]:f.uuid,[`f${n}_colorD`]:p.uuid,[`f${n}_intA`]:m.uuid,[`f${n}_intB`]:v.uuid,[`f${n}_intC`]:g.uuid,[`f${n}_intD`]:y.uuid,[`f${n}_alpha`]:s.uuid,[`f${n}_mode`]:i.uuid}}),{uuid:Ee.generateUUID(),type:"v3",nodeType:"Noise",scale:o.uuid,move:a.uuid,fA:l.uuid,fB:c.uuid,distortion:u.uuid,colorA:h.uuid,colorB:d.uuid,colorC:f.uuid,colorD:p.uuid,intA:m.uuid,intB:v.uuid,intC:g.uuid,intD:y.uuid,alpha:s.uuid,mode:i.uuid}}function gg(r,e,t){let n=e.uniforms,i=e.id,s=mt(n[`f${i}_alpha`].value),o=an(n[`f${i}_mode`].value);return[s,o].forEach(a=>t[a.uuid]=a),Object.assign(e,{uniforms:{[`f${i}_alpha`]:s.uuid,[`f${i}_mode`]:o.uuid}}),{uuid:Ee.generateUUID(),type:"basic",nodeType:"Basic",shadingAlpha:s.uuid,shadingBlend:o.uuid}}function XM(r,e,t){var c,u;let n=e.uniforms,i=e.id,s=Si((c=r.specular)!=null?c:69905),o=mt((u=r.shininess)!=null?u:30),a=mt(n[`f${i}_alpha`].value),l=an(n[`f${i}_mode`].value);return[s,o,a,l].forEach(h=>t[h.uuid]=h),Object.assign(e,{uniforms:{[`f${i}_alpha`]:a.uuid,[`f${i}_mode`]:l.uuid}}),{uuid:Ee.generateUUID(),type:"phong",nodeType:"Phong",specular:s.uuid,shininess:o.uuid,shadingAlpha:a.uuid,shadingBlend:l.uuid}}function qM(r,e,t){var c,u;let n=e.uniforms,i=e.id,s=Si((c=r.emissive)!=null?c:0),o=mt((u=r.emissiveIntensity)!=null?u:1),a=mt(n[`f${i}_alpha`].value),l=an(n[`f${i}_mode`].value);return[o,s,a,l].forEach(h=>t[h.uuid]=h),Object.assign(e,{uniforms:{[`f${i}_alpha`]:a.uuid,[`f${i}_mode`]:l.uuid}}),{uuid:Ee.generateUUID(),type:"lambert",nodeType:"Lambert",emissiveIntensity:o.uuid,emissive:s.uuid,shadingAlpha:a.uuid,shadingBlend:l.uuid}}function YM(r,e,t){var c,u;let n=e.uniforms,i=e.id,s=Si((c=r.specular)!=null?c:69905),o=mt((u=r.shininess)!=null?u:30),a=mt(n[`f${i}_alpha`].value),l=an(n[`f${i}_mode`].value);return[s,o,a,l].forEach(h=>t[h.uuid]=h),Object.assign(e,{uniforms:{[`f${i}_alpha`]:a.uuid,[`f${i}_mode`]:l.uuid}}),{uuid:Ee.generateUUID(),type:"toon",nodeType:"Toon",specular:s.uuid,shininess:o.uuid,shadingAlpha:a.uuid,shadingBlend:l.uuid}}function KM(r,e,t){var u,h,d;let n=e.uniforms,i=e.id,s=mt((u=r.roughness)!=null?u:.3),o=mt((h=r.metalness)!=null?h:0),a=mt((d=r.reflectivity)!=null?d:.5),l=mt(n[`f${i}_alpha`].value),c=an(n[`f${i}_mode`].value);return[s,o,a,l,c].forEach(f=>t[f.uuid]=f),Object.assign(e,{uniforms:{[`f${i}_alpha`]:l.uuid,[`f${i}_mode`]:c.uuid}}),{uuid:Ee.generateUUID(),type:"standard",nodeType:"Standard",roughness:s.uuid,metalness:o.uuid,reflectivity:a.uuid,shadingAlpha:l.uuid,shadingBlend:c.uuid}}var QM=new me,_F=["RectangleGeometry","TriangleGeometry","PolygonGeometry","StarGeometry"];function ZM(r){let e={};NF(r.materials,e),EF(r.interactionStates,e),TF(r.geometries,r.object),Object.keys(e).length&&(r.nodes=IF(e))}function $M(r,e){let t=r.geometry;if(t&&t===e)return r;let n=r.children;if(n)for(let i=0,s=n.length;i0){i.width+=s*2,i.height+=s*2,i.extrudeDepth+=s*2;let o=$M(e,n.uuid);if(o!==void 0){let a=new Ke;QM.fromArray(o.matrix),a.applyMatrix4(QM),a.position.z-=s,a.updateMatrix(),o.matrix=a.matrix.toArray()}}}}}function EF(r,e){if(r!==void 0){for(let t of r)if(t.material)if(Array.isArray(t.material))for(let n of t.material)for(let i of n.layersList)pu(i,e);else for(let n of t.material.layersList)pu(n,e)}}function NF(r,e){if(r!==void 0)for(let t of r){let{beforeLayers:n,lightingLayer:i,afterLayers:s}=CF(t.userData.layers);if(!i){console.error("Material upgrade: could not find a ligthing layer");continue}let o=LF(t,i,e);if(e[o.uuid]=o,n.length>0){let a=pu(n[0],e);e[a.uuid]=a;for(let l=1,c=n.length;l0){let a;for(let l of s){let c=pu(l,e),u=pg(a,c);e[u.uuid]=u,e[c.uuid]=c,a=u}o.afterColor=a==null?void 0:a.uuid}Object.assign(t,{type:"ShaderMaterial",wireframeLinecap:"",wireframeLinejoin:"",vertex:o==null?void 0:o.uuid,fragment:o==null?void 0:o.uuid}),delete t.color,delete t.emissive,delete t.specular,delete t.shininess,delete t.roughness,delete t.metalness}}function CF(r){let e=[],t=[],n,i=r.head;for(;i;){if(i.type==="light"){n=i,i=i.next;break}e.push(i),i=i.next}for(;i;)t.unshift(i),i=i.next;return{beforeLayers:e,lightingLayer:n,afterLayers:t}}function LF(r,e,t){let n,i;switch(r.userData.type){case"BasicMaterial":n=gg(r,e,t),i="BasicNodeMaterial";break;case"PhongMaterial":n=XM(r,e,t),i="PhongNodeMaterial";break;case"LambertMaterial":n=qM(r,e,t),i="LambertNodeMaterial";break;case"ToonMaterial":n=YM(r,e,t),i="ToonNodeMaterial";break;case"PhysicalMaterial":n=KM(r,e,t),i="StandardNodeMaterial";break;default:console.warn(`Material upgrade: could not find a properly material node to ${r.userData.type}`),n=gg(r,e,t),i="BasicNodeMaterial"}return Object.assign(r.userData,{nodeType:i}),n}function pu(r,e){switch(r.type){case"light":return UM(r,e);case"color":return mg(r,e);case"depth":return VM(r,e);case"fresnel":return HM(r,e);case"gradient":return jM(r,e);case"noise":return JM(r,e);case"normal":return kM(r,e);case"texture":return WM(r,e);default:return console.warn(`Material upgrade: could not find a properly "layer" node to ${r.type}`),mg(r,e)}}function IF(r){let e=[];for(let t in r)e.push(r[t]);return e}function yg(r){let e=r.metadata;return console.info(`File format version ${e==null?void 0:e.version}`),(e==null?void 0:e.version)===void 0?(console.warn("Unknow file version"),!1):((e.version<=1.1||e.version===4.5)&&(CM(r),e.version=1.2,console.warn("File upgraded from v1.1 or inferior to v1.2")),e.version===1.2&&(IM(r),e.version=1.3,console.warn("File upgraded from v1.2 to v1.3")),e.version===1.3&&(DM(r),e.version=1.4,console.warn("File upgraded from v1.3 to v1.4")),e.version===1.4&&(ZM(r),e.version=1.5,console.warn("File upgraded from v1.4 to v1.5")),!0)}var nA=Cg(tA()),iA=new me,PF=new me,DF=new me,RF=new me,Nl=class extends Vn{constructor(e=Qn.create({}),t=new Ci){super(e,t);this.objectType="SubdivObject";this.resized=!1;this.newlyPasted=!1;this.matrixWorldRigid=new me;this.scaleMatrix=new me;this.hiddenMatrixOld=new me;this.isNegativeDeterminant=!1;this.isUniformScaling=!0;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1,this.subdivPointer=Qn.activeSubdivPtr}toJSON(e){let t=super.toJSON(e);return t.object.objectType="SubdivObject",t}updateGeometry(e){let t=this.geometry,n=Uc[t.userData.type],i=this.objectType==="SubdivObject"?Object.assign({},t.userData,{geometry:t,subdivPointer:this.subdivPointer,smoothShading:this.smoothShading}):t.userData,s=n.build(n.normalizeInputs(e,i));this.geometry.dispose(),this.geometry=s}clone(e){var a,l;if(this.resized){this.resized=!1;let c;this.geometry.userData.parameters.subdivisions>0?c=this.geometry.originalGeometry:c=this.geometry,Qn.allocate(c),this.subdivPointer=Qn.activeSubdivPtr}let t=this.material.clone(),n=Qn.clone(Ue({},this.geometry.userData.parameters),this.subdivPointer,this.smoothShading),i=(a=this.geometry.originalGeometry)!=null?a:this.geometry,s=(l=n.originalGeometry)!=null?l:n;s.boundingSphere=i.boundingSphere.clone();let o=new Nl(n,t).copy(this,e);return o.subdivPointer=Qn.activeSubdivPtr,o}raycast(e,t){let n=this.geometry.originalGeometry;if(n){let i=this.geometry;this.geometry=n,Vn.prototype.raycast.call(this,e,t),this.geometry=i}else Vn.prototype.raycast.call(this,e,t)}applySVDScaling(){let e=this.matrixWorld.elements,t=[[e[0],e[4],e[8]],[e[1],e[5],e[9]],[e[2],e[6],e[10]]],{u:n,v:i,q:s}=(0,nA.SVD)(t);this.isNegativeDeterminant=this.matrixWorld.determinant()<0,this.isUniformScaling=s.every(h=>Math.abs(s[0]-h)<.01);let o,a,l=iA.set(n[0][0],n[0][1],n[0][2],0,n[1][0],n[1][1],n[1][2],0,n[2][0],n[2][1],n[2][2],0,0,0,0,1),c=PF.set(i[0][0],i[0][1],i[0][2],0,i[1][0],i[1][1],i[1][2],0,i[2][0],i[2][1],i[2][2],0,0,0,0,1),u=DF.copy(c).transpose();if(o=RF.makeScale(s[0],s[1],s[2]).multiply(u).premultiply(c),a=l.multiply(u),!this.isUniformScaling){this.geometry.applyMatrix4(o);let h=this.geometry.originalGeometry;h?(h.applyMatrix4(o),h.getAttribute("positionWASM").applyMatrix4(o)):this.geometry.getAttribute("positionWASM").applyMatrix4(o),this.resized=!0}return{scaleMatrix:o,matrixWorldRigid:a}}revertSVDScaling(e){let t=this.geometry.originalGeometry;t?Qn.getTopologicalMesh(t):Qn.getTopologicalMesh(this.geometry);let n=e.elements,i=[n[0],n[5],n[10]];if(!i.every(o=>Math.abs(i[0]-o)<.01)){let o=iA.copy(this.scaleMatrix).invert();this.geometry.applyMatrix4(o),t?(t.applyMatrix4(o),t.getAttribute("positionWASM").applyMatrix4(o)):this.geometry.getAttribute("positionWASM").applyMatrix4(o),this.resized=!0}}};var vg=class{constructor(){this._buffers=[]}parse(e){var n;let t=new we;if(this._vertexData=e.vertexData,this._loadBuffers(this._vertexData.buffers),t.uuid=e.uuid,this._vertexData.accessors)for(let i=0,s=this._vertexData.accessors.length;i{let a={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(o,a).then(t).catch(i)},n,i)}decodeDracoFile(e,t,n,i){let s={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:i||this.defaultAttributeTypes,useUniqueIDs:!!n};this.decodeGeometry(e,s).then(t)}decodeGeometry(e,t){for(let l in t.attributeTypes){let c=t.attributeTypes[l];c.BYTES_PER_ELEMENT!==void 0&&(t.attributeTypes[l]=c.name)}let n=JSON.stringify(t);if(xg.has(e)){let l=xg.get(e);if(l.key===n)return l.promise;if(e.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let i,s=this.workerNextTaskID++,o=e.byteLength,a=this._getWorker(s,o).then(l=>(i=l,new Promise((c,u)=>{i._callbacks[s]={resolve:c,reject:u},i.postMessage({type:"decode",id:s,taskConfig:t,buffer:e},[e])}))).then(l=>this._createGeometry(l.geometry));return a.catch(()=>!0).then(()=>{i&&s&&this._releaseTask(i,s)}),xg.set(e,{key:n,promise:a}),a}_createGeometry(e){let t=new we;e.index&&t.setIndex(new Re(e.index.array,1));for(let n=0;n{n.load(e,i,void 0,s)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let e=typeof WebAssembly!="object"||this.decoderConfig.type==="js",t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then(n=>{let i=n[0];e||(this.decoderConfig.wasmBinary=n[1]);let s=FF.toString(),o=["/* draco decoder */",i,"","/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join(` +`);this.workerSourceURL=URL.createObjectURL(new Blob([o]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.lengths._taskLoad?-1:1});let n=this.workerPool[this.workerPool.length-1];return n._taskCosts[e]=t,n._taskLoad+=t,n})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e{let h=u.draco,d=new h.Decoder,f=new h.DecoderBuffer;f.Init(new Int8Array(l),l.byteLength);try{let p=t(h,d,f,c),m=p.attributes.map(v=>v.array.buffer);p.index&&m.push(p.index.array.buffer),self.postMessage({type:"decode",id:a.id,geometry:p},m)}catch(p){console.error(p),self.postMessage({type:"error",id:a.id,error:p.message})}finally{h.destroy(f),h.destroy(d)}});break}};function t(o,a,l,c){let u=c.attributeIDs,h=c.attributeTypes,d,f,p=a.GetEncodedGeometryType(l);if(p===o.TRIANGULAR_MESH)d=new o.Mesh,f=a.DecodeBufferToMesh(l,d);else if(p===o.POINT_CLOUD)d=new o.PointCloud,f=a.DecodeBufferToPointCloud(l,d);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!f.ok()||d.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+f.error_msg());let m={index:null,attributes:[]};for(let v in u){let g=self[h[v]],y,x;if(c.useUniqueIDs)x=u[v],y=a.GetAttributeByUniqueId(d,x);else{if(x=a.GetAttributeId(d,o[u[v]]),x===-1)continue;y=a.GetAttribute(d,x)}m.attributes.push(i(o,a,d,v,g,y))}return p===o.TRIANGULAR_MESH&&(m.index=n(o,a,d)),o.destroy(d),m}function n(o,a,l){let u=l.num_faces()*3,h=u*4,d=o._malloc(h);a.GetTrianglesUInt32Array(l,h,d);let f=new Uint32Array(o.HEAPF32.buffer,d,u).slice();return o._free(d),{array:f,itemSize:1}}function i(o,a,l,c,u,h){let d=h.num_components(),p=l.num_points()*d,m=p*u.BYTES_PER_ELEMENT,v=s(o,u),g=o._malloc(m);a.GetAttributeDataArrayForAllPoints(l,h,v,m,g);let y=new u(o.HEAPF32.buffer,g,p).slice();return o._free(g),{name:c,array:y,itemSize:d}}function s(o,a){switch(a){case Float32Array:return o.DT_FLOAT32;case Int8Array:return o.DT_INT8;case Int16Array:return o.DT_INT16;case Int32Array:return o.DT_INT32;case Uint8Array:return o.DT_UINT8;case Uint16Array:return o.DT_UINT16;case Uint32Array:return o.DT_UINT32}}}function Cl(r){let e;return r instanceof Array?(e={},r.forEach(t=>{e[t.uuid]=t})):e=r,e}function rA(r,e){return r[e]===void 0&&console.warn("ObjectLoader > getGeometry: undefined geometry",e),r[e]}function sA(r,e){if(e!==void 0){if(e instanceof Array){let t=[];for(let n=0,i=e.length;n getMaterial: undefined material",s),t.push(r[s])}return t}return r[e]===void 0&&console.warn("ObjectLoader > getMaterial: undefined material",e),r[e]}}var wg=class extends gx(Ap){constructor(){super(...arguments);this.path="";this.resourcePath=""}async loadFromFile(e){var s;let t=await LS(e,this.manager,Ds.TEXT),{object:n,materials:i}=this.parse(JSON.parse(t));return n.name=(s=e.name.split(".").shift())!=null?s:e.name,this.manager.itemEnd(e.name),{scene:n,materials:i}}load(e,t,n,i){let s=this.path===""?Ei.extractUrlBase(e):this.path;this.resourcePath=this.resourcePath||s;let o=new Xn(this.manager);o.setPath(this.path),o.load(e,a=>{let l=null;try{l=JSON.parse(a)}catch(u){i!==void 0&&i(u),console.warn(`ObjectLoader > load: can't parse ${e}.`),console.error(u);return}let c=l.metadata;if(c===void 0||c.type===void 0||c.type.toLowerCase()==="geometry"){console.error("ObjectLoader: Can't load "+e);return}this.parse(l,t)},n,i)}parse(e,t){var d;if(yg(e)===!1)return console.error("File can not be parser"),{object:new zs,materials:{}};let n={},i=this.parseGeometries(e.geometries),s=this.loader.parseImages(e.images,()=>{t!==void 0&&t(u)}),o=this.parseTextures(e.textures,s),a=new Jd;a.init(Cl((d=e.nodes)!=null?d:[]),Cl(o));let l=Cl(this.loader.parseMaterials(e.materials,o)),c=this.customParseMaterials(l,e.materials,a),u=this.parseObject(e.object,i,c,n);this.upgradeNoise(u);let h=this.parseInteractionStates(e.interactionStates,a);return this.parseInteractions(e.object,n,h),(e.images===void 0||e.images.length===0)&&t!==void 0&&t(u),{object:u,materials:c}}upgradeNoise(e){e.traverseEntity(t=>{var n;if(t.type==="Mesh"){let i=t,s=i.material;if(!s.userData)return;let o=(n=s.userData.layers)==null?void 0:n.head;for(;o;){if(o.type===lt.NOISE&&o.uniforms[`f${o.id}_size`].value.equals(new M(-1,-1,-1))&&(i.geometry.boundingBox||i.geometry.computeBoundingBox(),i.geometry.boundingBox)){let a=o.uniforms[`f${o.id}_scale`].value,{x:l,y:c,z:u}=i.geometry.boundingBox.max,h=Math.max(l,Math.max(c,u))/(a*a);o.uniforms[`f${o.id}_size`].value.x=h,o.uniforms[`f${o.id}_size`].value.y=h,o.uniforms[`f${o.id}_size`].value.z=h}o=o.next}}})}parseGeometries(e){var n,i;let t={};if(e!==void 0)for(let s=0,o=e.length;s parseGeometries: error parsing geometry of type .",(i=a.userData)==null?void 0:i.type),console.error(c)}}return t}async parseAsync(e){var h;if(yg(e)===!1)return console.error("File can not be parser"),new zs;let t=new Jd,n={},i=await this.parseGeometriesAsync(e.geometries),s=this.loader.parseImages(e.images,()=>{}),o=this.parseTextures(e.textures,s);t.init(Cl((h=e.nodes)!=null?h:[]),Cl(o));let a=Cl(this.loader.parseMaterials(e.materials,o)),l=this.customParseMaterials(a,e.materials,t),c=await this.parseObjectAsync(e.object,i,l,n),u=this.parseInteractionStates(e.interactionStates,t);return this.parseInteractions(e.object,n,u),c}async parseGeometriesAsync(e){var n,i;let t={};if(e!==void 0)for(let s=0,o=e.length;s{this.gltfLoader.parse(JSON.stringify(a.gltf),"",d)}),h=[];u.scene.traverse(d=>{let f=d;f.isMesh&&h.push(f.geometry)}),h.length===1?l=h[0]:(h=Jm(h,d=>d.userData.groupIndex),l=tl.mergeBufferGeometries(h,!0),l.groups.forEach((d,f)=>{d.materialIndex=h[f].userData.materialIndex}))}else l=this.loader.parseGeometries([a])[a.uuid];l.userData={};let c=Object.assign({},a.userData,{geometry:l});l=Lo.create(c);break;default:l=kc(a.userData)}l.uuid=a.uuid,a.name!==void 0&&(l.name=a.name),t[a.uuid]=l}catch(c){console.warn("ObjectLoader > parseGeometries: error parsing geometry of type .",(i=a.userData)==null?void 0:i.type),console.error(c)}}return t}parseTextures(e,t){let n=this.loader.parseTextures(e,t);return Object.keys(n).forEach(i=>{let s=new bi().copy(n[i]);s.uuid=i,n[i]=s}),n}customParseMaterials(e,t,n){let i={};if(t!==void 0)for(let s=0,o=t.length;s{}).catch(()=>{});break;case"VectorObject":s=new Ps(o,a).fromJSON(e);break;case"SubdivObject":s=new Nl(o,a).fromJSON(e),s.subdivPointer=o.subdivPointer;break;default:console.warn("ObjectLoader > parseObject: unsupported object type",e.objectType);return}a||(s.name+=" (Recovered)")}else s=new Pi().fromJSON(e),s.name+=" (Recovered)",console.warn("An empty object is created instead")}else switch(e.objectType){case"Scene":s=new zs().fromJSON(e);break;case"CombinedCamera":s=new Sr().fromJSON(e);break;case"LightDirectional":s=new Rd().fromJSON(e);break;case"LightPoint":s=new Bd().fromJSON(e);break;case"LightSpot":s=new Od().fromJSON(e);break;case"EmptyObject":s=new Pi().fromJSON(e);break;default:if(e.type==="HemisphereLight"||e.type==="DirectionalLight")s=this.loader.parseObject(e,t,n);else{console.warn("ObjectLoader > parseObject: unsupported object type",e.objectType);return}}if(ei(s)&&(i[e.uuid]=s),e.children!==void 0)for(let o of e.children){let a=this.parseObject(o,t,n,i);a!==void 0&&s.add(a)}return s instanceof zs&&s.initFromObjectLoader(e),s}async parseObjectAsync(e,t,n,i){let s;if(e.geometry!==void 0){let o=rA(t,e.geometry),a=sA(n,e.material);if(o){switch(e.objectType){case"Mesh2D":s=new Ml(o,a).fromJSON(e);break;case"Mesh3D":s=new Al(o,a).fromJSON(e);break;case"NonParametric":s=new Fd(o,a).fromJSON(e);break;case"TextFrame":s=new Os(o,a);try{await s.fromJSONasync(e)}catch(l){console.log(l)}break;case"VectorObject":s=new Ps(o,a).fromJSON(e);break;case"SubdivObject":s=new Nl(o,a).fromJSON(e),s.subdivPointer=o.subdivPointer;break;default:console.warn("ObjectLoader > parseObject: unsupported object type",e.objectType);return}a||(s.name+=" (Recovered)")}else s=new Pi().fromJSON(e),s.name+=" (Recovered)",console.warn("An empty object is created instead")}else switch(e.objectType){case"Scene":s=new zs().fromJSON(e);break;case"CombinedCamera":s=new Sr().fromJSON(e);break;case"LightDirectional":s=new Rd().fromJSON(e);break;case"LightPoint":s=new Bd().fromJSON(e);break;case"LightSpot":s=new Od().fromJSON(e);break;case"EmptyObject":s=new Pi().fromJSON(e);break;default:if(e.type==="HemisphereLight"||e.type==="DirectionalLight")s=this.loader.parseObject(e,t,n);else{console.warn("ObjectLoader > parseObject: unsupported object type",e.objectType);return}}if(ei(s)&&(i[e.uuid]=s),e.children!==void 0)for(let o of e.children){let a=await this.parseObjectAsync(o,t,n,i);a!==void 0&&s.add(a)}return s instanceof zs&&s.initFromObjectLoader(e),s}parseInteractionStates(e,t){let n={};if(e!==void 0)for(let i=0,s=e.length;i{this._raycaster.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._handleMouseDownEvent()};this._onMouseUp=e=>{this._raycaster.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._handleMouseUpEvent()};this._onMouseMove=e=>{this._raycaster.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._camera.getWorldDirection(this._normal),this._normal.negate(),this._handleMouseHoverEvent(),this._handleLookAtEvent(),this._handleFollowEvent()};this._onTouchStart=e=>{e.touches.length===1&&(e.preventDefault(),this._raycaster.setFromCamera(this._getPointer(e.touches[0].clientX,e.touches[0].clientY),this._camera),this._camera.getWorldDirection(this._normal),this._normal.negate(),this._handleMouseDownEvent(),this._handleMouseHoverEvent(),this._handleLookAtEvent(),this._handleFollowEvent())};this._onTouchEnd=()=>{this._handleMouseUpEvent(),this._handleMouseHoverEvent(!0)};this._onTouchMove=e=>{e.touches.length===1&&(e.preventDefault(),e.stopPropagation(),this._raycaster.setFromCamera(this._getPointer(e.touches[0].clientX,e.touches[0].clientY),this._camera),this._camera.getWorldDirection(this._normal),this._normal.negate(),this._handleMouseHoverEvent(),this._handleLookAtEvent(),this._handleFollowEvent())};this._onKeyDown=e=>{this._handleKeyDownEvent(e.key)};this._onKeyUp=e=>{this._handleKeyUpEvent(e.key)};this._domElement=e,this._scene=t,this._camera=n,this._app=i}activate(){this.isEnable=!0,this._scene.traverseEntity(e=>{if(e.interaction!==void 0){e.interaction.start();for(let t of e.interaction.events){let n=t.type;this._enableEvent[n]=!0,(n===Ze.KEY_DOWN||n===Ze.KEY_UP||n===Ze.START||n===Ze.LOOK_AT||n===Ze.FOLLOW)&&(this._map[n]===void 0&&(this._map[n]=[]),this._map[n].push(e))}}}),this._enableEvent[Ze.START]!==void 0&&this._handleStartEvent(),this._enableEvent[Ze.MOUSE_DOWN]!==void 0&&(this._domElement.addEventListener("pointerdown",this._onMouseDown,!1),this._domElement.addEventListener("touchstart",this._onTouchStart,!1)),this._enableEvent[Ze.MOUSE_UP]!==void 0&&(this._domElement.addEventListener("pointerup",this._onMouseUp,!1),this._domElement.addEventListener("touchend",this._onTouchEnd,!1)),(this._enableEvent[Ze.MOUSE_HOVER]!==void 0||this._enableEvent[Ze.LOOK_AT]!==void 0||this._enableEvent[Ze.FOLLOW]!==void 0)&&(this._domElement.addEventListener("pointermove",this._onMouseMove,!1),this._domElement.addEventListener("touchstart",this._onTouchStart,!1),this._domElement.addEventListener("touchend",this._onTouchEnd,!1),this._domElement.addEventListener("touchmove",this._onTouchMove,!1)),this._enableEvent[Ze.KEY_DOWN]!==void 0&&document.addEventListener("keydown",this._onKeyDown,!1),this._enableEvent[Ze.KEY_UP]!==void 0&&document.addEventListener("keyup",this._onKeyUp,!1)}deactivate(){this._scene.traverseEntity(e=>{e.interaction!==void 0&&e.interaction.end(),e.interaction.cache=void 0}),this._domElement.removeEventListener("pointerdown",this._onMouseDown),this._domElement.removeEventListener("pointerup",this._onMouseUp),this._domElement.removeEventListener("pointermove",this._onMouseMove),this._domElement.removeEventListener("touchstart",this._onTouchStart),this._domElement.removeEventListener("touchend",this._onTouchEnd),this._domElement.removeEventListener("touchmove",this._onTouchMove),document.removeEventListener("keydown",this._onKeyDown),document.removeEventListener("keyup",this._onKeyUp),this._enableEvent={},this._map={},this.isEnable=!1}reset(){this._scene.traverseEntity(e=>{e.interaction.start()}),this._handleStartEvent()}_getPointer(e,t){let n=this._domElement.getBoundingClientRect();return{x:(e-n.left)/n.width*2-1,y:-((t-n.top)/n.height)*2+1}}_handleStartEvent(){var e;(e=this._map[Ze.START])==null||e.forEach(t=>{var n;(n=t.interactionCache.start)==null||n.dispatch()})}_handleMouseDownEvent(){var t;let e=this._raycastMesh(this._raycaster);for(let n=0,i=e.length;n{var a;o instanceof Pi&&((a=o.interactionCache.mouseDown)==null||a.dispatch())}),!s.interactionCache.follow)break}}_handleMouseUpEvent(){var t;let e=this._raycastMesh(this._raycaster);for(let n=0,i=e.length;n{var a;o instanceof Pi&&((a=o.interactionCache.mouseUp)==null||a.dispatch())}),!s.interactionCache.follow)break}}_handleMouseHoverEvent(e=!1){var t,n;if(this._enableEvent[Ze.MOUSE_HOVER]!==void 0){let i;if(!e){let o=this._raycastMesh(this._raycaster).find(a=>!a.object.interactionCache.follow);i=o?o.object:void 0}if(this._prevObject!==i){this._prevObject!==void 0&&((t=this._prevObject.interactionCache.mouseHover)==null||t.dispatchReverse()),i!==void 0&&((n=i.interactionCache.mouseHover)==null||n.dispatch());let s=[];i==null||i.traverseAncestors(l=>{l instanceof Pi&&l.interactionCache.mouseHover&&s.push(l)}),this._prevAncestors.filter(l=>{var c;return s.includes(l)?!1:((c=l.interactionCache.mouseHover)==null||c.dispatchReverse(),!0)});let o=s.filter(l=>{var c;return this._prevAncestors.includes(l)?!1:((c=l.interactionCache.mouseHover)==null||c.dispatch(),!0)}),a=this._prevAncestors.filter(l=>s.includes(l));this._prevAncestors=[...a,...o]}this._prevObject=i}}_handleLookAtEvent(){var e;(e=this._map[Ze.LOOK_AT])==null||e.forEach(t=>{var i;let n=(i=t.interactionCache.lookAt)==null?void 0:i.distance;n!==void 0&&(this._plane.set(this._normal,-n),this._raycaster.ray.intersectPlane(this._plane,this._intersection),t.interaction.lookAt(this._intersection))}),this._app.skipRender=!1}_handleFollowEvent(){var e;(e=this._map[Ze.FOLLOW])==null||e.forEach(t=>{this._plane.setFromNormalAndCoplanarPoint(this._normal,t.getWorldPosition(this._position)),this._raycaster.ray.intersectPlane(this._plane,this._intersection),t.interaction.follow(this._intersection)}),this._app.skipRender=!1}_handleKeyDownEvent(e){var t;(t=this._map[Ze.KEY_DOWN])==null||t.forEach(n=>{var s;let i=(s=n.interactionCache.keyDown)==null?void 0:s.find(o=>o.key===e);i==null||i.dispatch()})}_handleKeyUpEvent(e){var t;(t=this._map[Ze.KEY_UP])==null||t.forEach(n=>{var s;let i=(s=n.interactionCache.keyUp)==null?void 0:s.find(o=>o.key===e);i==null||i.dispatch()})}_raycastMesh(e){let t=[],n=i=>{for(let s of i.children)ei(s)&&!s.raycastLock&&s.visible&&(wS(s)&&e.intersectObject(s,!1,t),n(s))};return n(this._scene),t}};var Mg=class{constructor(e,t,n,i,s){this._aspect=1;this._renderer=e,this._camera=t,this._frameSize=new O().copy(n),this._editorSize=new O().copy(i),this._aspect=t.aspect,this._fov=s!=null?s:t.fov}set frameSize(e){this._frameSize.copy(e)}updateRenderer(){!this._renderer||this._renderer.setSize(this._frameSize.x,this._frameSize.y)}updateViewport(){if(!this._renderer||!this._camera||this._camera.cameraType!=="PerspectiveCamera")return;let e=this._frameSize.x,t=this._frameSize.y,n=this._editorSize.x,i=this._editorSize.y,s=0,o=0,a=e,l=t;et){let i=zF(e,1080,2160,1,15)/100;n*=e/t,n*=1-i}this._camera.aspect=this._aspect,this._camera.fov=n,this._camera.updateProjectionMatrix()}else this._camera.setViewplaneSize(this._frameSize.x,this._frameSize.y)}revert(){let e=window.innerWidth,t=window.innerHeight;this._renderer&&(this._renderer.setViewport(0,0,e,t),this._renderer.setSize(e,t)),this._camera&&(this._camera.aspect=e/t,this._camera.fov=this._fov,this._camera.setViewplaneSize(e,t),this._camera.updateProjectionMatrix())}};function zF(r,e,t,n,i){return(r-e)/(t-e)*(i-n)+n}var ko;(function(t){t[t.FULLSCREEN=1]="FULLSCREEN",t[t.CUSTOM=2]="CUSTOM"})(ko||(ko={}));var GF=class{constructor(){this._needsTransmission=!0;this._viewportMode=1;this._viewportWidth=window.innerWidth;this._viewportHeight=window.innerHeight;this.skipRender=!0;this.render=()=>{var t;requestAnimationFrame(this.render);let e=Ls.isAllAnimationsEnded;if(!(this.skipRender&&(e===void 0||e))){if(!this._renderer){console.error("Application::render >>> tried to renderer without a renderer");return}this._controls&&(this._controls.enableDamping||this._controls.autoRotate)?this.skipRender=!this._controls.update():this.skipRender=!0,this._playmode&&!this._playmode.isEnable&&this._playmode.activate(),this._scene&&this._camera&&(this._renderer.autoClear=!1,this._needsTransmission&&this.renderTransmissionTarget(),((t=this._scene.postprocessing)==null?void 0:t.enabled)?(this._renderer.autoClear=!1,this._scene.postprocessing.render()):(this._renderer.autoClear=!0,this._renderer.render(this._scene,this._camera)))}};this.resize=()=>{var e,t,n,i;this.skipRender=!1,!!this._renderer&&(this._viewportMode===1&&(this._viewportWidth=window.innerWidth,this._viewportHeight=window.innerHeight,this._frameView&&(this._frameView.frameSize=new O(this._viewportWidth,this._viewportHeight))),(e=this._frameView)==null||e.updateRenderer(),((t=this._scene)==null?void 0:t.postprocessing)&&this._scene.postprocessing.resize(this._viewportWidth,this._viewportHeight),this._viewportMode!==1&&((n=this._frameView)==null||n.updateViewport()),this._camera&&((i=this._frameView)==null||i.updateCamera(),this._camera.cameraType==="PerspectiveCamera"&&this._viewportMode===1&&(this._camera.aspect=this._viewportWidth/this._viewportHeight),this._camera.updateProjectionMatrix()))};window.addEventListener("resize",Wm(this.resize,200))}async load(e){let n=await(await fetch(e,{credentials:"include",mode:"no-cors"})).json();await this.start(n)}async start(e){this._editorData=e.editor,this._needsTransmission=e.needsTransmission!==void 0?e.needsTransmission:!0;let n=await new wg().parseAsync(e);this._scene=n,this._camera=this._scene.activeCamera,this.init(),this.resize(),this.render()}renderTransmissionTarget(){!this._renderer||!this._transmissionRenderTarget||!this._scene||!this._camera||(this._renderer.setRenderTarget(this._transmissionRenderTarget),this._renderer.clear(),this._camera.layers.enable(0),this._camera.layers.disable(3),this._renderer.render(this._scene,this._camera),this._renderer.setRenderTarget(null),this._camera.layers.enable(3))}init(){var n,i,s,o;let e=document.getElementById("canvas3d");if(!this._scene||!this._camera)return;((n=this._scene.postprocessing)==null?void 0:n.enabled)?(this._renderer=new wt({canvas:e,antialias:!1,alpha:!0,stencil:!1,depth:!1,powerPreference:"high-performance"}),this._scene.postprocessing.init({renderer:this._renderer,camera:this._camera,scene:this._scene})):this._renderer=new wt({canvas:e,antialias:!0,alpha:!0,stencil:!0,depth:!0,powerPreference:"high-performance"}),this._needsTransmission&&(this._transmissionRenderTarget=new bt(2048,2048,{generateMipmaps:!0,minFilter:Ai,magFilter:$e,wrapS:Zt,wrapT:Zt}),this._transmissionRenderTarget.depthTexture=new so(2048,2048),this._scene.traverseEntity(a=>{if(!(!(a instanceof Vn)||!this._transmissionRenderTarget)&&!Array.isArray(a.material)){let l=a.material.userData.layers.getLayersOfType(lt.TRANSMISSION);for(let c of l)c.uniforms[`f${c.id}_transmissionSamplerMap`].value=this._transmissionRenderTarget.texture,c.uniforms[`f${c.id}_transmissionDepthMap`].value=this._transmissionRenderTarget.depthTexture}})),this._viewportMode=(i=this._scene.canvas.mode)!=null?i:1,this._viewportWidth=(s=this._scene.canvas.size.width)!=null?s:window.innerWidth,this._viewportHeight=(o=this._scene.canvas.size.height)!=null?o:window.innerHeight,this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.setSize(this._viewportWidth,this._viewportHeight),this._scene.postprocessing&&this._scene.postprocessing.resize(this._viewportWidth,this._viewportHeight),this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=qd,this._renderer.setClearColor(this._scene.color,this._scene.alpha),this._frameView=new Mg(this._renderer,this._camera,new O(this._viewportWidth,this._viewportHeight),new O(this._scene.canvas.editorSize.width,this._scene.canvas.editorSize.height)),!0&&(this._controls=new Gp(this._camera,this._renderer.domElement),this._editorData&&(this._controls.fromJSON(this._editorData.orbitControls),this._controls.useKeyEvents=!1),this._controls.addEventListener("change",()=>this.skipRender=!1),this._controls.addEventListener("start",()=>this.skipRender=!1)),this._playmode=new Sg(this._renderer.domElement,this._scene,this._camera,this)}};ui.FONTS_PATH="_assets/_fonts/";export{GF as Application}; diff --git a/daostar-website/public/scripts/scene.json b/daostar-website/public/scripts/scene.json new file mode 100644 index 00000000..1d019c4b --- /dev/null +++ b/daostar-website/public/scripts/scene.json @@ -0,0 +1 @@ +{"object":{"uuid":"B6BEBD25-292C-4ECC-9729-2C0233CBC257","objectType":"Scene","name":"DAOstar","matrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"layers":1,"children":[{"uuid":"A77F82BC-D501-4E9E-BA86-5C1F38538A1D","objectType":"EmptyObject","name":"Empty Object","matrix":[1,0,0,0,0,1,0,0,0,0,1,0,null,null,null,1],"layers":1,"hiddenMatrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"interaction":{"uuid":"9068B24A-46BC-4974-9BD9-C8936195AB57"},"enableHelper":true},{"uuid":"E75FA206-8C9D-424B-8604-FC6EE5B82356","objectType":"EmptyObject","name":"Empty Object 2","matrix":[1,0,0,0,0,1,0,0,0,0,1,0,null,null,null,1],"layers":1,"hiddenMatrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"interaction":{"uuid":"36F2AB23-1DE8-4D7A-9DAC-F1578C8BD7EB"},"enableHelper":true},{"uuid":"4A5F0F23-FE0B-4A1C-95A8-5675D5DC7503","objectType":"EmptyObject","name":"Empty Object 3","matrix":[1,0,0,0,0,1,0,0,0,0,1,0,null,null,null,1],"layers":1,"hiddenMatrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"interaction":{"uuid":"00488F76-1546-487E-9867-C9A465FC1CE9"},"enableHelper":true},{"uuid":"0E471CB7-60B4-40C3-8220-BA75835D4D77","objectType":"EmptyObject","name":"Empty Object 4","matrix":[1,0,0,0,0,1,0,0,0,0,1,0,null,null,null,1],"layers":1,"hiddenMatrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"interaction":{"uuid":"1615BC89-DE3D-4511-AD8A-E4CFD96F6D32"},"enableHelper":true},{"uuid":"3E4BB3A9-6B04-4B25-9455-BF6676DC9678","objectType":"CombinedCamera","name":"Camera","matrix":[1,0,0,0,0,1,-6.391973563523154e-17,0,0,6.391973563523154e-17,1,0,-25.489890133425586,-39.37860139762105,1031.5492686998193,1],"layers":1,"children":[{"uuid":"E3F6D54D-4262-4F48-815D-87A431E15474","type":"DirectionalLight","name":"Default Directional Light","layers":1,"matrix":[1,0,0,0,0,1,0,0,0,0,1,0,850000,1300000,1000000,1],"color":16777215,"intensity":0.75,"shadow":{"camera":{"uuid":"A365B353-F1AA-4566-BF6A-A7B546E473F0","type":"OrthographicCamera","layers":1,"zoom":1,"left":-5,"right":5,"top":5,"bottom":-5,"near":0.5,"far":500}}}],"hiddenMatrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"interaction":{"uuid":"D14726F7-B469-4855-9601-806954BC0516","selectedState":0,"states":["1805D7C9-7B7A-4365-91D3-E744CAC3ECC4"],"events":[{"type":0,"ui":{"isCollapsed":false},"targets":[{"easing":4,"duration":1000,"delay":0,"cubicControls":[0.5,0.05,0.1,0.3],"springParameters":{"mass":1,"stiffness":80,"damping":10,"velocity":0},"object":"3E4BB3A9-6B04-4B25-9455-BF6676DC9678"}]}]},"enableHelper":true,"cameraType":"OrthographicCamera","targetOffset":1000.4554240233972,"isUpVectorFlipped":false,"angleOffsetFromUp":0,"left":-720,"right":720,"top":409.5,"bottom":-409.5,"zoomOrtho":4.27763920656302,"nearOrtho":20,"far":1000,"aspect":1.7582417582417582,"fov":45,"focus":10,"filmGauge":35,"filmOffset":0,"zoomPersp":1,"nearPersp":50},{"uuid":"FD446B60-FB9B-45BD-8A68-2E9807C16AD2","objectType":"LightDirectional","name":"Directional Light","matrix":[null,null,null,0,null,null,null,0,null,null,null,0,-105.14298722510102,92.78045277101589,254.30837711395876,1],"castShadow":true,"layers":1,"hiddenMatrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"interaction":{"uuid":"FA20EB06-4199-4793-B473-984F94FFB316"},"enableHelper":true,"color":15590885,"intensity":10,"shadow":{"mapSize":[1024,1024],"camera":{"uuid":"352B90D8-2635-4860-A44F-6F4A96DB27E1","type":"OrthographicCamera","layers":1,"zoom":1,"left":-250,"right":250,"top":250,"bottom":-250,"near":1,"far":500}}},{"uuid":"DE0E80CC-3BE3-40F2-ABE1-89CB22CD23A8","objectType":"Mesh3D","name":"Sphere 2","matrix":[1.0000000000001248,0,0,0,0,1.0000000000001248,0,0,0,0,1.0000000000000864,0,-24.728249227619106,-41.8539343414921,73.90448828361204,1],"castShadow":true,"receiveShadow":true,"layers":1,"hiddenMatrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"interaction":{"uuid":"756957D9-1860-437D-8529-EA467DD1D184","events":[{"type":9,"ui":{"isCollapsed":false},"distance":500,"targets":[{"easing":4,"duration":1000,"delay":0,"cubicControls":[0.5,0.05,0.1,0.3],"springParameters":{"mass":1,"stiffness":80,"damping":10,"velocity":0},"object":"DE0E80CC-3BE3-40F2-ABE1-89CB22CD23A8"}]}]},"geometry":"C78C591F-D1AF-4B5F-8482-F962EE8921CA","material":"6B0574EB-4D2A-4179-9E45-5C1DE9333591"},{"uuid":"3B695796-4617-4F45-BF86-E0B33A41DF6B","objectType":"CombinedCamera","name":"Default Camera","matrix":[1,0,0,0,0,1,-6.123233995736766e-17,0,0,6.123233995736766e-17,1,0,0,6.123233995736766e-14,1000,1],"layers":1,"hiddenMatrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"interaction":{"uuid":"B2468481-CBDD-4F0F-B576-73B5F8EA49C6"},"enableHelper":false,"cameraType":"OrthographicCamera","targetOffset":1000,"isUpVectorFlipped":false,"angleOffsetFromUp":0,"left":-720,"right":720,"top":409.5,"bottom":-409.5,"zoomOrtho":1,"nearOrtho":-50000,"far":50000,"aspect":1.7582417582417582,"fov":45,"focus":10,"filmGauge":35,"filmOffset":0,"zoomPersp":1,"nearPersp":50},{"uuid":"36878CE4-1A1A-40E5-B27A-7718B3714A24","type":"HemisphereLight","name":"Default Ambient Light","visible":false,"layers":1,"matrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1],"color":13882323,"intensity":0.75,"groundColor":8553090}],"activeCamera":"3E4BB3A9-6B04-4B25-9455-BF6676DC9678","camera":"3B695796-4617-4F45-BF86-E0B33A41DF6B","directionalLight":"E3F6D54D-4262-4F48-815D-87A431E15474","ambientLight":"36878CE4-1A1A-40E5-B27A-7718B3714A24","color":[0.09803921568627451,0.09803921568627451,0.09803921568627451],"alpha":0,"directionalLightState":true,"canvas":{"mode":1,"editorSize":{"width":1440,"height":819},"color":[0,0,0,0.5]},"postprocessing":{"enabled":false,"bloom":{"enabled":false,"opacity":1,"blendFunction":16,"intensity":1,"luminanceThreshold":0.9,"luminanceSmoothing":0.025,"blurScale":1,"kernelSize":3},"chromaticAberration":{"enabled":false,"opacity":1,"blendFunction":13,"offset":[10,10]},"vignette":{"enabled":false,"opacity":1,"blendFunction":13,"eskil":false,"darkness":0.5,"offset":0.5},"noise":{"enabled":false,"opacity":1,"blendFunction":14},"colorAverage":{"enabled":false,"opacity":1,"blendFunction":13},"hueSaturation":{"enabled":false,"opacity":1,"blendFunction":13,"_hue":0,"hue":0,"saturation":0},"brightnessContrast":{"enabled":false,"opacity":1,"blendFunction":13,"contrast":0,"brightness":0},"depthOfField":{"enabled":false,"opacity":1,"blendFunction":13,"focalLength":0.1,"focusDistance":0,"bokehScale":1},"pixelation":{"enabled":false,"opacity":1,"blendFunction":13,"granularity":30}}},"metadata":{"version":1.5,"type":"Object","generator":"Object3D.toJSON"},"geometries":[{"uuid":"C78C591F-D1AF-4B5F-8482-F962EE8921CA","userData":{"parameters":{"width":137,"widthSegments":64,"heightSegments":64,"phiStart":0,"phiLength":6.283185307179586,"thetaStart":0,"thetaLength":3.141592653589793,"height":137,"depth":137},"type":"SphereGeometry"}}],"materials":[{"uuid":"6B0574EB-4D2A-4179-9E45-5C1DE9333591","type":"ShaderMaterial","emissiveIntensity":{"uuid":"6AAC8744-2922-42D8-A37D-412E084F3172","type":"f","value":1,"nodeType":"Float"},"transparent":true,"depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"dithering":true,"wireframeLinecap":"","wireframeLinejoin":"","userData":{"type":"LambertMaterial","category":"Lambert","nodeType":"LambertNodeMaterial","layers":{"id":6,"uuid":"269AC735-DBC8-4640-8B23-FC93517094FA","head":{"id":0,"type":"color","defines":{},"uniforms":{"f0_color":"E3F238B1-55CD-49BA-B150-F35204BFB86A","f0_alpha":"433A8519-3B33-41ED-A81C-8C801138DE64","f0_mode":"45FC5ACD-10E1-4797-BBA4-856755015D5A"},"next":{"id":1,"type":"light","defines":{},"uniforms":{"f1_alpha":"B468E6BB-593D-42A2-B78E-7462D60B472B","f1_mode":"C263A1A8-826C-41C2-911C-672232CED7F9","f1_emissive":"428AE8F3-8154-46D4-A29F-43B6994F46AF"},"next":{"id":2,"type":"texture","defines":{},"uniforms":{"f2_texture":"05872F48-DE18-4DF7-B7F1-AE44CF8861D4","f2_textureSize":"8DC8C298-0162-4491-9E8A-4E264B570A12","f2_crop":"EFB6F36E-87DD-4D02-A2C7-C5BD081216BB","f2_projection":"C6A29065-4B4D-4778-8F29-17D511059124","f2_axis":"5459175B-22D6-4A6E-964F-829E044218F2","f2_size":"2442E97E-9FA5-425C-BFDB-2E8245AB397C","f2_mat":"9BDFFF1D-F3C4-41F1-8A26-D7E95991FAB4","f2_alpha":"06E9527D-58F9-44AD-9A2B-0F7DFAF7622D","f2_mode":"F41315AA-B6C8-40DC-99B8-3E1A2BF8CFD0"},"next":{"id":3,"type":"fresnel","defines":{},"uniforms":{"f3_color":"C447DF6A-5385-4157-9AD6-C310450BCFE4","f3_bias":"06FF5D77-F604-41E8-8EE6-AFF825A3DA83","f3_scale":"1A2BDAF6-E98D-4080-854D-97F5EA78A600","f3_intensity":"3DCF196A-911D-44A2-A784-5ADCEA7F768B","f3_factor":"FA299DAA-B9B0-497C-8290-0397698BFF5E","f3_alpha":"58B23FE5-CF3B-435C-86E9-345AFB204578","f3_mode":"1FB66632-A3CA-421B-92B9-8FE0F5702480"},"next":{"id":4,"type":"noise","defines":{},"uniforms":{"f4_scale":"578662B0-977E-4FE6-A499-45E4085FE986","f4_size":"0C2949E4-DC5E-470C-A080-4FB84061A514","f4_move":"AF59D974-4F1C-4D48-9D6A-5372B8D27266","f4_fA":"3CAB538A-2B37-477A-9C2A-B4DE56FB8D0F","f4_fB":"EED94726-580C-4C05-924B-74AAEBCB3E5A","f4_distortion":"40C7EF50-5CE0-4324-99B9-04B9C541567F","f4_colorA":"7D7BB378-F4F5-48FD-8728-F0E1352C4206","f4_colorB":"1EA007E8-FF2B-4111-91DC-7CD1EE0E63B7","f4_colorC":"03555DE4-1A26-405E-9A97-B457D81DE4E5","f4_colorD":"19455C3F-B1A7-4602-B7A3-1E8131CBE61B","f4_intA":"98E1B656-E9DF-4FB8-8EE9-5329C04CEFF1","f4_intB":"10398B50-A75D-4272-98DF-68AE1D5F4C52","f4_intC":"72ECFFC5-1AC5-461A-AA87-036AC8FEB614","f4_intD":"3963D3E3-1335-417E-BB2F-CD2091A5BD96","f4_alpha":"AF7F6D6E-AF23-4420-A841-269AC319D658","f4_mode":"33BEB11E-4CA4-4497-AEBE-6D9E958ED043","f4_noiseType":"4922EEF8-C7C6-48DF-8773-8AE3701E8B04"}}}}}}}},"glslVersion":null,"defines":{"LAMBERT":1,"GRAD_MAX":10},"extensions":{"derivatives":true,"shaderTextureLOD":true},"vertex":"6A80E13B-2720-4B9B-81E3-A90055579C31","fragment":"6A80E13B-2720-4B9B-81E3-A90055579C31"}],"textures":[{"uuid":"2BE42925-79EE-46EC-89A2-3BCC955B6FEB","name":"","mapping":300,"repeat":[1,1],"offset":[0,0],"center":[0,0],"rotation":0,"wrap":[null,null],"format":1023,"type":1009,"encoding":3000,"minFilter":1008,"magFilter":1006,"anisotropy":1,"flipY":true,"premultiplyAlpha":false,"unpackAlignment":4,"image":"4BBF1E35-5467-46A9-A263-5E4D631245D6"}],"images":[{"uuid":"4BBF1E35-5467-46A9-A263-5E4D631245D6","url":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAZADIADASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAUGAwQHAgEI/8QARxAAAQQCAQMDAgQEBQQBAQIPAQACAwQFEQYSITETQVEiYQcUMnEVI0KBUpGhwdEWJDOxYuFD8XIXJTTwJlOCNTZUkkRjov/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwDpyIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgI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dnonZPJAve1/YOB7n5QRFHi97PZJ9uz1NovO2F/uPsr5g8JXwkEkVdzn+o8u6neR9v2UkxjY2BjGhrR2AHsvSAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiDFa/wDzWX6er6T9PyubcfsNi5fG17QwvJADey6cqFy/ATw2mZPHsf1Ru6iW93A/ZBfUXMK+cz35E1YpLPrxtLpDKCX6Xhue5IL8sMbpJJDBroI3rv5/dB1JFzR/I85G0V2F/qk+m50n9LvK+OzHJ32orDGS6gb0uY1p08ff5KDpiLlUnJs85koL52tAAPSwhzT8JBmeUsPoF1hxkAcHO8gIOqouW2cvyaVzWCSeMMcOssXwcg5NEw9fql4eGt2w/U3/AJQdSc5rRtzgB9yvhkYCAXtBPjZXLrQ5JbbDPO6d4af0N32Ptse6808byTIQC7/OPS7s150R99IPXOZHP5IxhcDECA5m9g9/KubOL4izUrEV2NLGgh0Y1vsqI3jGWsZ4RWI5HhwD3yOPttdVqRGGrFEfLGgIMFLFU6LWivEB0Ekfba3URAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAWvapVbkXp2YGSM+HBbCIImXjuLkcxwqtYWb7t7b9u6g7/4fULb9iV0bQPpA+furkiDl1r8M7ra8kcNuCTey0dJBCQ/hjYkLDNaEYMXcdyWu1/6XUUQc5q/h1Yrx+n+bb9TwX9IOiAtur+GtFlmV9qYvjd+kN7EK9oggaPD8FSdI6OhG4yaB6hvQ+ymoIIq8Yjgjaxg8NaNBZEQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERBjEEQmMwjZ6hGi7Xcr42vC2czNiYJSOkvA7kfG1lRBgfTrSEmSCNxJ2dtB2Vla1rN9LQN9+y9IgxGvASSYmHZ2e3kr16UZcHdDdt8HXhe0QYxDE1xcI2gu8nXlfXRRuO3MaTvfcL2iD4AAdgDa+oiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiI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VamJjyFjbWPIGvg/CCVRQ7OTYiSWGNtthdMPp1/6VZ5xy+1Uc/H4ljjIRp0ze5b+yC3ZDM0cfHI6edu4+7mg7IVOuclyPIprmOwtYGJugJdkO1vyoDAcWy2afBYuPkbA523l5O9LquPx1TG12wVIWxsb8DuUFZ49weKl/Oykz7Ux39LnEtG1YLWJr2om15GBtdn6WN+fupFEGvUp16cTY68TGAfAAJWV8Ucn642u+5CrvKG5eCzXv0JdwQHckP8AiUvi8pWydYS15AXDQe33afhAyNunQgEloNDR423elCce5YM1kZK0NTpiZ4ePhTObxv8AFaJrdfRs7J+VixmFp4mrH6cbeqFhHUPf3QSqKt0M3Zyt0iqGRwtPhx+ot+VY9jW9hB9Raj8lSjtMqusxiZ/6Wb7lbRIHcnSD6iefCiM7moMZXI6wZnA9IHt90EuqVn7eUwLmvjle+Eu20jvsfBXijzO1cycGPrQMe947vdvRP9vZW7IU236ElaUD6263rwUFA5HhmcmwwzeKaHXdbljae/7D7qL4nya5gJhj7zy+AP6S13lpUrh70vHM7ZqTsDInu7x9+lo/xBRXMZambyEBxFZge87e9vlx+6DqLcnTfB6rZ2FutnR7rn3JuXGe0W48yMMT+h3UdDt7quXpcjgiyt6jmPkaBrvtaUFSzeudLGl7+nb+x7uQT8XIsneMpZZeT2YGg+D8qVbluQSiKqY5HyNaemXuN/c/sqxT4/nDI51eJ5dEQ8Fo8kLr+CNmTFQPvt/7jX1bABQVPEXeSyZaCK6yQjfc6/pV8bstG/KaG96G19QEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBfHDqaWn3Gl9RBzLkeKyVK7NNUj+nwOgb31KGjwctDCuyORa+OR0oPS7yuuy3KkdhteSVnqu8MPkqt/iNUnsYBr60Tnuila5/SPDfclBR8Vblx18ejL3jka93zohX3kmdmr4qs+q0tdZGwT/6VLxkuLoVHyZOvLNLsFuh3P3/YLNzK/HParz1XOd1RgxM3+lqDWuSZKSd1lpfLIz6yOo/V+y6Bwya7NgY33iS7f09XnSjO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zYx1+PvG0bd38LUwnJ6GankhrktkZ7E+VSaedho8VuVZ2D+aeljR38qJ4SfQ5FVIcR1PDWtHuCg7OiIgIiICIiAiIg5xz7D23ZCS7C0mF7A5xA3ohWjieZrZPHtigLQ6FoboDW+3nS+ZnkmLrRz1Xu9aTXSWDwf7qj8azNPHcllks7rRH6WtaO3f5QdYWGWpXmlbJLCx72+HEdwlWxHbrMniO2PGxtZXENaXHwBsoAAaAGjQHgLQyuYpYmuZrkzWgdgN9yqxyXlk7asrMV0jp7epvZP7KsWeP53kXQ8klwYH/V4O/v8AKDK5lzlmYNlh3C6Xocek/SzfZdPb+WxePa1zmRQwtA2ew7LQ4zhxh8XHC5oE7mj1CPlc555kchHI+pLNI5s0hPSXdm6PbQ9kEJk738Qzkr3SdQfKep3/AMd9v9F0rj+fxdmnFjZY26hbo9WtLm/H6Txj8hfkjaYWxGLbz4J+ArBguNHI1nXKMzvV0Hhh7dx21v2QdCx+OxEjfzdGJnQ8a23wojnz6jMVFHN7P21rexVb9fMYeWERxWI2Al3pA9j7d/lZ4qeXz8rDdrOb6bQC539Z3/ppBZuEiSPFvZK55+vqaHDXSPhWRamMqOpUY4Hyule0fU8+5+y20BERAREQEREBERAREQEREBERAREQEREBERAREQY52h0D2lvUC09vlU/gjg25kYAQ1zZC50fkjZ91a5b1WOcV5J2NkcOzS5VLjMgh5XkYmxsYZHHY99BBdkREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAUTybGjKYeSDpc5zSHt6To7ClkQUnhORiinmoPjcLDnjrJPfYGldlzrIwy4PmhuxfVDMQACPBP3XRGHqY13yNoPqIiAiIgIiICIiAoTknIa+CrsL9OlkOms/9qZleI43PPho2uYZaSXkPKa8MsYZ0no0O+27QLBy/JLj7NQSGATO6Gn+lvt3VxwfGYMfYZemDX3AzpLh7KYpU4KFZsFZnTGO+lsICIiAiIgIiICIiAiIgIiICIiAiIg+AAeABtfURAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERBp5PHw5Oo6vP1Bp7gtOi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Gh7E/KuF+/Xx8BlsSBo9hvyqNdu1eQXHz3/TgrQM2zvtxJQdCa5r2hzHBzT4IO9r6q9xGaVuF3bLGRiQiIuOvp9gt7O5aPE4x9vQkI0AAflBJoqji+aw2GtddjMAf2b28q1xSsmibJGdtcNgoPaIiDxLI2KN0jzprRslVyXnWEZIGiYuGyHHX6VNZaF1jGzxM6tuaQOk6K5Ne4ZlIQJJYnOje4AFnnf3CDpMfLsI+Bs351jQ46APnazwcixFiYxRXoi8DqIPbsuQ2uMZWOyIBBL0eztErQmpXqrZOtrw0ODZC4Ht8IO/xPikaHROY5p77aV7XFeL5y5QyVcetI+v1dLmA9gD7rrEecx8k7YmzAueQG/coJJERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAXwgEaI2D7L6iCpcs44ZaslrFtLbTtNLW+HD3WjxvkE2Nijp5h7mhoLSXHZafYK9qr8i4tDkJXWoeoSOGnNB7fugszHtkY17CC1w2CF6VE4lm5KFo4fIPc4B3TG8nevsVe0BERAREQEREBERAREQEREFX56SMOwt+ol4b067EH5XN74hq491eGDTnHqkJPcfsuic43DXjnfI/099IjB7E/dUG9j7M0THvhe4TnpHSfBP6d/ZBKfhpWEll/XvTXhzHfI14XVlXOGYD+CYpgmH/AHMg28/CsaAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgLn/NjH/HazyzqLANjfg+xXQFzTnjJos9+a+kxsa3pbvyfuPdB0asSasRd5LB/6WVYKTi+lA8jRdG0kf2WdAREQYrMDLNeSGQAte0tO1zfGWDx7lDa8/dgeYyfcg9h/ZdNVQ5xiInwDJRtIli31OHx7ILcCCNg7BX1V7huVfk8O31QBJF9J0fI9lYUBERAREQEREBERAREQEREBERAREQEREBYbdeO3Vkgmb1MeNELMiDnWDmlwfKJqk+2RPcfp+B7LobHNe0OYQWnwQqxzPEzTwNyFHQswA70O5avHCswyxUbUkk+t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dXhdGWGJnSRrQasMmMpSRsjdXj0zx27rbRBqxY+pD0+lAxvTvWh8raRVvO8liozPqxODZoyOpz+zRtBZEWpSutnqQyzFjHyD9O/dbaCN5BIyPDzteQOtvSNrT4aR/AmsB2WPLS7/ABH5WPnDXHAPLHlrwdtAH6j8L7wiTrwLQ7QkDz1t/wAJQWFERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAUdnIon4yeSSESGNhI7bKkV8IDgQRsH2QUP8AD/KSy5C5SeCIddcex47+FfVQM1Hb47ljaoRl0L3Dt0j6RvuFeKdhlurHOzWnjf7IM6IiAiIgIiICIiAiIg0c0QMVYJAOmnz7Ks8B7tlId9IJ1o9jtWy+2N1GYTDcfQer9lTvw+sQepYgaNO63Fv3bvttBeUREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAXPueiIZeu4AlxAa74HwugrnXMrOuSxwSBgiHS4E+5+EF8x7Q2hAAdgMHf8AstlYaYaKcXQNN6Br/JZkBERAREQfHND2lrhsEaI+Vy/lUdnBZ6O1A1vdwdEA0AHXsF1FV/luEGVqNlYC6auCWAe6CWxtxl6jFYa5pLmguAPg+4W0ud8FyMtfLyYuYloc0uId7ELoiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgqHMca8WYsnCO8fZ3bxpTHHstHk6mvUY+WMDq6T434UnPEJoJIjrT2kdxvS5/6MmAzrInO6YiQ4uHbev8AlB0RFirWIrUDZoHhzHeCFlQEREBF5kkZFGZJHBrWjZJ8BQN3lVKIuZT3akA/o8IJkQV4pXz9DGvfoOd42oXkPKqWIaYWv67RH0tHfX7qlcm51bs1m1I65rPH1SHZ8HxpV3jzIspnohmZ3dDm/qPuPhB0OhzuF0tatabuWV3S5wGgF9/EHISsr16ML+lk/wBT3NPfQ9lr5LiNQ4WZuHcZ5DI1zNa2zXsCq3kTlJH1RbhdYbED9HuAOx2gljHe4tRrZFwc+ST6AN9tHxtZstmK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EfZa/wDC8jbqSNxsEjgHdTyPceyD7k7TZsfWrkjorb6wfLt+/wDdeX5+e5jYcTTrvjaCekNG+olbMPFnY7HyZTOvLIC3pYxp+pzj4/yU7xeKPEmhZkpuex5cG6bsjfglB5/guShvtkp4kO/7YMPX8kdz+60a2H5DdoyBzn14DJ1OLn9m67d++11wgSRkHsHBVCPi92vn5poLHVTnYQ8PJP8AZBBf9PYL8z+YflpJbYc0uih9tfupHkPJGvIxGAAkfINSemDtqs9XjuNrXBajrt9UN0N+AobNcffQmlyuGl9Cd7v5m/Ab9kEPiuLW7+XqzXq5grQRDr3/APaO34V7t4+KfHPpxsaxhH0jXYFROE5Abln8o8er0tG5QOxKsSCJwuEixzA+Rsb7PgyAeylkRAREQEREEdlMLSyoZ+ai25nhw8hR9viGMs12RkPa6PfQ8HuFYV5lkbEwvedNHkoISjxinXMTrBdYfH3HWdjfyp3wtLH5OtkfU/Lv2YndLh8LdQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQeXMa8ae0OHwRtY7MjIKsjy8Rta0nq9gsyp/OrdyvHGGN3VHeT7oNThNWe3kpsjK7rhjc5rCR5JPlOQgf8AVsDbIa2HYcHO8H7KzccbVjxELKrmEEdRA9ie6i+bUJLFaOxAOqRn06I2B77QWdmuhuvGuy9Kt8SzzslV/L22tjsRDXx1AKyICIiAiIgKOzoL8TMwPDA8dJJ9gpFVPkN8Xr9bG1LB05/S/o8g/f7IJDA1WYvFOsWv5bnDqkcfGvZSGOyEORjfJBvpa7p2ff8AZRecZJS4lNHLIZHsZoke6ycOe1/Ha+iCQNHSCcRFisWYarA+xI1jSQAT8lBlVf5ZnTiKYZX0bMvZo9wPcqwDuqZzLF2DdZlIjtsYG2/YeUEf/C87kmMviw5gcw99kdlIcMvWbtezQv8A8wMJa0nv2WCxydtvi0/puZBYYQ0tb7tKiMXnG1OPOgxbnm/K/Zdr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lYIr1SaYxRWInvHsHAoNhERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBaeUx0GUpOq2Qehx32PutxEHPHRy8b5QyNsjvy8nTon3Huugjpkj7jbXDwqhz+tG9lSzK/0xC79f8AhUpj+SY6VkNd83RP0gFpCCF5fjDi4osnjSWGI92Dwe6snH7st/Ewzzt6ZCPqG1D83yvoY91Ou1skkmg8b/SFKcYpS0sRGycae76iCdkIJdERARFA8pzE2LhhbDE53rP6S8f0oNbkvIDBN/CqYJsztPS8dwPss+C46yjI23YkdLYcA49Xs5YOP4GvFaGRktfmZXA63/TtWdBEcqqy3MBaihkLH9Oxr3+y0eCvD8HroDHNeQ4D5U5kInTUJ4mn6nMICqfAH6kuRydTZOrfST21tBdVSOdXPUkiqQuLnscCWAe6u6pGYhlsc3rMa0CLtv8AcfKC348ObQgD99QYN78rLNFHPE6KVocxw0Qfde0QUXKcC9WzJ/D5hDXlH1NPna0uF1q9DKTQ2A1rYj0tD/c/O10dUPnsVerPVfEwsfIepzgO3YoL4NEbHhFqYuY2MbXlP9TAttAREQEREBERAREQQPLso7GYwGN3S+Q9II8hRPHONwX4v4rlonSTT9w17tjXytLk0/57lsFF8zQxh19m/ur1RjjhpxRRPD2MaACDvaDVxOGqYn1vygcBK7qIJ8KRREBERBrX6cd6o6CQdj3B+CucW4M9Xrz0umWL1pNNY0EjX7hdQXwjaCpcQysrZpMTesCSWH6WE9j+33Vkv5Cvj4RLZf0tPhUrkGN/gGajzkcb5gX7aN/oPyflaV/PzciyMFOKsTG/TQP/AGd/sg1uTTjP3jfxEj2vY3pf1O0C1vfe1ZOBZu1kKohuO6i1v0H5AUTyzBwYmvHDRe4Q2B0PYfPbvvatHEKDK+Fge6Nofo9JHwgn0REBERAREQFTebutNmhLZQ2ANJHyO3dWq7chowmawSIx5IG9KrcsuUr+CingIc2bY6w7Rb9iglcJh8eyCC9Gz1JJI2kOd7dvYeynFCcQsyWePwOlb09G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0hb+Hox47HsaX9TnDqe8+5PlBG8XfulayEkfS2SQuA13AHlRma5XXtQT4+JrmTPOmfcLJyzPwxVfyuNmb17+os8BRfEuLy3az7d/bA+XriPkkf8A3oLHwuo6HGOsSRhsk7uon5VjXmNjY42saNBo0AF6QEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERARFgu3K9Cs6xblbFE3y5xQZ0VHl5tNfuGtg63qdOwXO8k/ZadifljmNMUFh7uv6mtHYEoOiIqVQ5dNVYa2Tgd60btOJ86UdLnMxya46rj4jFHE7+nY38ElBZcny3H0bbarNyyuOuofob+5URb536FyHdfphk+k9fbvvyvknH8bgcHNNlJRNIXdenHy74CqArXOU5v8zWg6mBwHpnsAB7/ALIOp28/QpxF00v1NjEhY0bOlWrnLJ8vJ+Qw7XtdO3THgdwPk/C28Xw0B/5jLWHTSu7lg8fsrDj8Rj8a0CnWZHr3A7oKnQ4ZYstf/Fp3EdIDe+3H7lVvkMWPoWK+OxEhL2zEPJP1dX/G11x7euNzd62CFVsPxBlPNSZG09kpBPpt1v8Az2gjqsXI8lIwOMkLWN6H9Y0HBSGL4ZQpskkyBE73kkg+ArYoTl880HH5nQSdDiQCfsgp3J8thi1tKjUYTJuMykaDO6n+AzURiWQRsjjst2CP6nD5VVFvBUsXVhNJtuzK1z3vcTtjt9ltVMa3I1v4nBcZj3/4XO0P3/ZB0exYihhc97gWhpOh7qkcUd+bz8tqpH/2hcSNf0rLX46681jW5ZstZvclrzs/P9lhmzMeFm/hmDrAhp0Zdb6yg+c4iEWYrzSvLmPI7b7aCuWMhptqxzU4mNbI0EOaPIXPsnmrd7HTV8xU6ZWHqjcG92hWPgD7BxTmylxjJ6mE/f2QWtERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBeJWl8L2A6LmkBe0Qcfbx66MvOyWyIHQklj3nQcpDh0sOPzUsGSaX2LL+vrcOw+CrdnuMx5J0k0c5he/wDWfYhUrFVZ7WW/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REQEREBERAREQEREBERAREQEREBERAREQEREBERARFqZC/BQiDpngOcdMafcoPOUyMGNqOnmcNgfS33cVS4Tc5lkWukb00oT7HsD/uvletf5XloZrDOmlXcQ92zp/fwFeqVGvQh9KrGI2eSB7oMeMxtbGVxDWZoe59ytxEQEREBFH3szQosa6edo6ndI13Wn/wBV4k+p0zk+mNnt5/ZBOIqy/nGHZXim3MRIddIZ3H7rTyHNvSqvNOsJZQ7QOz0huvKC5Kic1e5mfoMEZbG8jb2s3337rHQ5NyGZh/7EyOf4+nQatXMUM9m8vWhli9BsoDi7Z0wDz/dB0djeljWk7IGtr0sVWH8vWjh63P8ATaG9R8lZUBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQfHNa9vS9ocPgja8CCEN6RFGG/HSNLIiD41ob2aAP2X1EQEREBERB5LGE7LRs/ZDHGfLG/wCS9Ig8elFvfps389IXkV4A3pEMevjpGllRBp2cXRtRGKatGWEa0BpareOYpu/+1B2NdypZEEecJjjE6I1mFrho7+EOFxxYxhqs0wAA676HhSCII/8AguN6Cz8pHouLvHuVgs8axNpwdLVGwNfSSP8A0pdEEM7i+HeSX1A7Y6e5PhbUGGx0EHoxVIgz46Vvog1v4fS//pYdb3roGtr22pWa7rbXiDvkMG1mRB5MbCWksaS3wdeF6REBERAREQEREBERAREQaeUxdPK1vy96ISR7Dh7EFRcvDsNI7ZgOta1tWBEFcdw3GGUFoLYR/wDZa/3WQ8Pw/ptZ6LtD/wCXcqfRBFwcexNcNEdNmm+Nja3WUqrNdFaIa8fQFnRB86WjWmjt47eEAA8ABfUQEREBERAREQFo2MRj7BcZazD1HZ7eVvIgw160FZnTBExg8fSNLMiICIiAiIgIiIC+aBOyPC+ogKPzlw0cTPO3fUG/ToeCpBVvmV6KKiyiZQyWwe2/8PughuJYWHLyWMrlQ2aQyfy2+zRr4Vnj45i42lrINAyeoe/usPE6xrYgb6ul56m9Q0dKcQR82Exs5HqVI+zuoaGu6zDHUgzoFWIDe+zR5W0iDCKtcAgQR6cdkdA7o2rXaNNgiA+zAsyIKtlOR1cdkY682P3G/e3dHfsoW3y2vNZDDi4zAx2y73IV4u42nfAFuBsmvG/K+tx1JrCwVYukjR+geEFMsZjBXarrgxrfWA6WDXSP7qOfQlts/OSCOpE46Y550Cr43BYxsbIxUj6WHbQsmRxNLJQMgtxB0bDsNHYIKXhc9cxEwo2oo3R/paW9gD+6n8tyilWovYJN2Hx9g3uGkj5ULyfFsx1n8w0kV5OwHk7+ApXF8Xx8taCzZYXvcA8td8+yCP4hx9lmKW7lYXSSSEdPWfHyrm2vC1oaImAAaA6R4WQNDRpoAA9gvqD4AGgAAAD4X1EQEREBfNDWtDS+ogIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIRsEH3QV3NcqrY6ZteBvrTOOvt/mq1His/yC4ZLpfDCX9QDvDR/yrQzimPblfz7y95B6gx3gH5U+grmJ4hRx73ySudZeTsOeNaVia1rGhrQAB27L6iAiIgIiICIvhIAJPYDygi+SVGXcJYikOgB1edeFyejVqTZSF1iTpiae7R57fPwrFzXkbslPJh8e/bNtPqNJ3seQt3j/AAo/+e6/+VI1rg0eT8oMFehlMvP+UbG5lCu/bWvP0kefPurhjMDSx7GlkQdK09XWR32pKKNkUbWMADWjQC9oC5fyzkk9zMy4tkcjYmnoLRsdS6gtJ+JoSXhdfVjNgDXWQg5tR4tkL1uvLHD6NeTu5x+3ddAxmAp0H+t0B8/+MjWv2ClWtDWhrQAB4AX1AREQEREBFzbO8wu4Tk92EM9VrXt6GO3ro13/AL7Uhh/xBrWpzDahewg6PbuPv+yC8otSDJ0bEhjhsxueBvQPsttAREQEREBERAREQEREBERAREQEREBERAXPOeYuWKw21X+p07w3pHYke66GoDltYux5ttHU6AEhvygr/wCHOSLX2aEpI+v6ABsD5Cv642yZ2MFS1HO1kjn9ZDT3I37rreOtNu0IbLAQJGg9/KDZREQEREBERBz7mDXu5XSYfDiHMJ8DSv0X/iZ4/SPCofKp2O5bTYWjbXAHZ8k+FfWfob+yD0iIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgo34jB3pRAyhrS0kA/byo38NWySXPVDg5gYQRrx91Fc8sXclyF1FrnOa0hrGjwrHwDjlzE3p5rReAGANHsdj/ZBfUREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQUb8Six0FYRuZ+YaS4jf1FqmuFWzc47C8uc7oJZs+eyief0IuqvkjvraDGfjp8rf4JLNLhtvYxsJcTH0/HwgsyIiAiIgIiICIiAiIgIiICIiAiIgKuc7/AP5ZlJOh6jN/5qxqs/iFG6Xi0rWnR9Rh/wBUEZ+G1f0/4hLvRe8bb/6V5VG/Deo+Nl2y54c2Qta0D2I8q8oCIiAiIgIiICIiAiIgIiICIiAiIgIiICIsbp4WjbpYwCdd3BBkRaM+YxtdwbNciaT47rGc9iw9zDcj62nRagkkUUzkWKdCZTbY1oOjv2Vey3JrORsPo4Nsj2hoJlZ7/ZBM5rktPHQyNZI187ewaPYqv4aje5BNFayL5HVg4uDHdukqQxHGBZq+vmQ507/1NPwrXHG2KNsbGhrWgAAIMVKnBRrNr1mBkbfAWdEQEREBfCNgg+CvqIKvkeG1sjefPNZlDCNBg9l5r8FxkMXpvklkHtv2VqRBBDiWH6GxurB0bfDT8rdr4TGVpfUhqRtdrW9b7KQRB5DGN/S1o/YL7ob3pfUQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERARFDcmy5xWP6o+88h6WBB8zXJKOJj09/qTH9Mbe5KqzBY5Xn4JpIHxwRjuCP0fcKQ41gGXIo791zZWlxc1v3332rjHHHG3pjY1o+w0gRxtijbGwaa0aAXpEQEREBERAREQEREEXyLHx5HDzxPHdrS9p+CFE8FzD7+P/LTHboR9LvkK0uAc0gjYPYqn4xn5Hl0tdjmND9/QPOvbSC4oiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAvEzDJC5jTokdivaIKrieGVatuS3eInme/q6dfSPhWkAAaA0F9RAREQEREBERAREQEREETl+P0co17pGCOZw16rQCR/muf8g4faxNV09cOma86kewdw37rqy+OaHNLXAEHyCg4dXjtUpnQjqdI4/S4OOwrfgOXXILEFPIESscCC89i0Ab2svMOMvjs/xWgzqY3ZkiHt91occgqcoxvo3gY7VdzvSczsXj4KDo1O3BdrtnrSB7HDYIWdcwxmSv4HNNxji2CAP6n+pvRaV02ORkrA+Nwc0+CPdB6REQEREBERAREQEREBERAREQEREBeJY2yxOjcOzhor2iDjHJ6jsdekqdJ9RknVE4eA33XROE3WWcQIw8F0eh0g+FDfiXRZ+WhugdJ30OcPOz4UX+HVw180+mXba9mtb90HUEREBERAREQc55FJDPzKD8n2kiIDn+QXLoke/TbvzobXPstG8c3DWQs6y9rt6P1BdCb+kdtdkH1ERAREQEREBERAREQEREBERAREQFG5fN0sREXWZPq1sMHkqSXMPxGsNbZd6Egc7q6ZAPLUFxg5dhp+kNtND3DfQfIW9WzeMtPayC7C97vDeruuMVrVBzHTWnSNe1nSzp8k/JWalSv3a77FMFzoxr6d+/bsg7gHNLdhwI+QVglvVIY/UlsRtbvWyfdUPC4jkMuCjbHPNWkie7bHn9YWyzi+Vfcb6k4EZZsnfg/CCzy8gxkcDJxZY+N7ukOb37pLyDFxwsmdbj9Nx11b7D91XK3B547T3y243RPaWhrQdgn3Xt/BeosebLS8H6mnfSQgm7nJsXVpOt+uJYmvDCY+/c91r2eZYeAAtmMrSN7YNhRr+A13dbG3JGwyHbmfB+yzO4FjTGI2ySBm9/dBnk5lTa7qZC90XT1E+6+Sc3xcdeGQlxdIzqLB5Z9isbuC48vafWl6Wt0W+zj8leGcCx4iYySaRxbrZ+ft+yD6OfYvqjBjmHWQCddmrM7m+MbKWBsh0SOr218p/wBD4sl3UZHAnsDrQHwvsXCMSx5c5rnAggt327oPrOa4l9hsIc/uwvLtdgAvR5piBEyTrf8AU7Rbru37lYv+hsUZo3vMjhGCOnfYj7rHNwPGyPj9OSWONhJIb/UgyV+c4iWNznucxwf0hpH6v2WX/rTEAlrpHtOtgEeVpngGMIcTLKXE7+2/ZfGcBoiX1fXe1z2dEgb4P3CDbk5tiIw/bpOoDbW67u/ZeTzbHiZzfTl6Gs6urXv8LWdwChIwF88gkHu1eY+AUxP1vtSlpcXEfKD3NzuqysZGV3ueACQfGiq/keVZjKV5m1IXxRuc3p6QeoK0V+EYmKdsjw+QNP6HHsf3VhhqVoBqKFjNDXYIOc0uKX7E9aZ4f/M290h8tP3XSYWenCxnnpaBv5XsdvCICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIK5zmJz8A+Ru/5Z2f2Wt+H9psuJdA2J0bYztu/GlK8pkbFx6298XqtDO7flVr8NLUz22q0rC0MAc0H4JQXxERAREQEREBERAREQEREBERAREQFBc0jbJxuwHDeiD/AJFTqhOX/wD8vzjYHjygg/wzkLqNoaIaHggb7K7qjfhxE5kE73aYHnszfc/2V5QEREBERAREQEREBERAREQEREBERAREQRfI322Yaw6j2kDf76+y4xcbft2BRjmlkmD99HUQN/K705oc0tcNg+QqLy7idia9/E8RqF8cJ6gzs57t+f8AJBS8a70LMhyjZpYa46XiM/pPydq7YDHYvO1gPQkhdAe5addf3K5/F+ejMv5qOYNn0Hgf1aPurVxrP3IrclSjVaYy5rWbb3I33QWg8KoujLJLE524kad2A+FNY/F0scwNqwNYdAF2u5W6PHdEBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBVrmld81KJwI6WHqdv4VlUdnaDchi5YizqeB1MH3CD7g5oZ8RXfXAEfToAKQVL4Lk+n1MVYb0StJLRvsNdtK6ICIiAiIgIiICIiAiIgKj2miDnLJYR6shPceTo/wDCs2bysOMpve57fVIPQ3fkqB4ZXktSyZOyHhxJDQ759yEFwREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQeZGCWJ8bvDgQf7rlGUx9jjGZ66z3sDDuKT/EPcLrKhuTYdmYx4YTp8W3M+/bwgrvIaNfkGHiysDgLIjHWAsnBMvJHG3EW2uL2ElryfA9go3jWVioXHY+/F0seeguJBA34C085BPx7Ox2KzydSNdsDs4H2QdVRa2Pttu047DR09Y3re9LZQEREBERAREQEREBERAREQEREBERBEcmom9iJGtb1Pj+to+SFyeq92NzcL3FzZCephB7+V29cb5rGzH5kkd5A/Y7ePsg65QnNqlDO5paXtBIPsthV/hWSfk8DHK8AdH0jSsCAiIgIiIOdz33xfiC2V02mO+jpcOzQuhg7AIXPc3G3/AKxh9Qak9VpcG+Hj7LoTf0jXwg+oiICIiAiIgIiICIiAiIgIiICIiD4d6OvK5hznB33ZA2vTJqudvbfAK6gq7zS4a+GfE1xDpux/ZBzKHFfncuaTGdLWj9+o/wBl1bjOIGKxjI3tb6rh9Wh7fCi+E4KOpCb0ha+V/ZvbuxW1AREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQaGbdA3D2nWgDEGHqBVI/D+QS5y0WydPSzp6PkbV3zbWOw1oSw+s0xn6PlUL8O5G18lYM0RMjxoEeB39kHTEREBERAREQEREBERAREQEREBERAUPyoQnAzmwdMbp39weymFF8jbG/CWGygFpHgoKb+H9l787ZilAHUzqb+y6Mud/hzFH/E7RIPXENN6j30V0RAREQEREBERAREQEREBERAREQEREBERARFC8nzgwtFsjWdckh00b0g0uTZWniy2NtSKWaTfUekfTvt/mvfEMY+rWfZnhYx0p3Hodw1a2Exs2TvTZPIRh1eYB0TT5CtgAA0BoBB9REQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREFC5FSdhsh/EKzegGQPEhd2HyFbcPlq2WqCas/etBw+DpZMrja+VpPq2m7Y7v29iqXkeLZPFSRS4Kw9wdINs3oNQdAXwnQ2fCoEeU5WLDIzA/0Wu7n0+//wBUsnlktmH143GEu7hnbYPbuguoyVIu6W2I3O6unQO+62mua5oc0gg+CCqU3gsjGh8V90cpJcdD3PkLQsV+S4a40VnPkgY3QA7g68oOhSSxx9PqSNZ1HQ6iBsqItcnxdeaeD1w6aFvUWj3+21WIcHnOQzNs5Cd0FcnqYN92/sPZQ3JcXHhJ/SYHT9w+SQjv3QXXEcyoZK3+We11eQ/p6yNO/urKO42FyDBux8dsXck8hsRB6Gt3vavn/WWIbF6ge/0g3senv/kgsEkjIhuR7Wj7nSrd3mFPrlgpOc+Zo7Et7E/CpvI8xPmsgyLFzyyeqdNZrXSfsrhxviVShWr2LbHPuAdTup2wD+yCOxeEu5ud9rMhzAyXqbv+ofGvhXeKJkMbY4mBjGjQaPAXtEBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQcx55jJquSdLXhDYLA2149n++1vZSD+P8ACYJa7i6zSAEg38eVbs/RbfxE8LiAQ3qBI3rXdUfiL3MzcuMcdQ2ID1fG9dkEp+HmZbZgkx7yA6PvG0D29+6uy5Oz1OM8qBhiLOt/Ront0+5/uurRu642u/xAFB6REQEREBERAREQEREBERAREQEREBcy/FmFhdXlLQH67Ee4+66aql+ImL/iGFDmg9cTt7A8BBFfhRcc+lPT7dDAHj9/C6EuT/h7aNbNxRRgH8wOl4B8Ae66wgIiICIiDnuRsPscvY6MNLmytHzoBdBb4C5TbifQ5OYq8pe59oOjcffe9g/ba6qzfpt6vOu6D0iIgIiICIiAiIgIiICIiAiIgIiICrHP6zpcAZ2yNZ+Xd1kH+r20rOojlNevYwNllo6YG77eUEN+H9yWapLBM8v6QH7P3+6uCo34eyA2rkcDHeg1o089xvfhXlAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQYbbPUqSs1slh0ubcMM5zv80tbK2Vwkj+P2C6bIemNzvgErmHFZ45+dTSaIdK92vZB1FERAREQEREBERAREQEREBERAREQFoZyP1cTOzYG2+T7LfWlmfT/hFr1SA0Rk9zr2QUzggBy0vqf+ZjS3fjqHyugLnv4e+l+fkEhJshpO/YNPhdCQEREBERAREQEREBERAREQEREBERAREQY55mQROklcGtaN7JVMgbZ5NkfzDXN/LMk8OHZrR8fPde+Y5V0z/4ZUifJY6h09HfZViwmMZjaTG9IEzmgyEeCUEgxjY2BjAA1o0AF6REBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERATyiIA7BaeQxlPJRGO3EHA+dditxEENHxjER9OqwPT42UHGMQ2F8QqjpednZ2plEEbjMHj8Wxratdgc3w8jZ/zUkiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIPhAI0RsFcx5JEMFyCK7EXMaJOtwb4d9l09Ub8RKMYrxXdkFrhseeo+yDU5rAXSVcqR1QzBhB92HXhW/jVyS7hYJZ9eprRA/0/0VHybrOS4pA58LXth/qa89v7Kx/h+8tw7q0mvUicNneydjfdBakREBERAREQEREBERAREQEREBERAURypnXxy72cdRk6b5Kl1htjqqSjp6vpPb5Qca4NZdV5GWCPqfMOlp/wAI2u1jwuFWLUsXIPVrMMU/5jY0PB2u4VXOfWie/wDUWgn90GVERAREQc9yr4GcsjdNFv6ttcz3K6Aw7Y0/IXOrj4X85hZAW9MczW6cf1E9yujjwgIiICIiAiIgIiICIiAiIgIiICIiAork0TZsDaY5wY0s7uPspVaObhjsYa1FKNsdGdoKZwSdtfL2KofprhpjfnXfa6CudcFLJMw4HRLWlwP+ml0VAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQeJTqJ5+GlcswBnHNgXwtjYXlxJ7Ag+CCupza9CTY2OkrlGFiZd5U0WHGOPr+hrnkbAOwg60iIgIiICIiAiIgIiICIiAiIgIiICi+SVzZwdmMOLfp3seeylFqZQhuNnJZ16YSB90FH/AA9Z15KVzm/VE0jqPk7XQ1zfgjbMfIZHyvEYma4mL/F9wukICIiAiIgIiICIiAiIgIiICIiAiIgKE5TkPymKljiePWkHSAD3APuFKXLUdOrJYmd0sYNkqnYapPnspLdtS+pWY/bSPDvgIJPi2BjqtN6w71ppNOje7y0a8Kyr40BoAA0AvqAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAozkVaO1hbDJGB4Deob9iFJrDcgFmpNXJ0JGFu/jYQc14o976uRxUkrmtljMkPv48rZ4DI+HJvrmTqe7fXs+NKI47G+pyo1CTsudXJ/wATT2/2W7goXxcyYIXvaBMWub/8QSO6DqKIiAiIgIiICIiAiIgIiICIiAiIgL479J/ZfUPcaQcJzVdsOclZFL1sdIfrb+67Jx2UTYKo8b/8Y8+VynlFY47k9z0xqtM7oJHge+l0fhJP8CaCQdOPYeyCwoiICIiDnGTdXpc3ZO5run1m/wAxo7ArozTtoI8ELnuWMZ5pHXskPYZWuc0fPsuhDQA14QfUREBERAREQEREBERAREQEREBERAWC7r8nN1HQ6Cs68SjqiePlpQc64NZruz9glrmvc4gAj+r/AO5dIXNONE1eVOhZGGudsFrffvva6WgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIPMh1G4712K5dj7XVy3cELDIZNNkP79yupEBwIPg9iuSZ1n5PmPpVQIoxI0fSex7hB1xF5j/8bfq6u3n5XpAREQEREBERAREQEREBERAREQFrZIkY2yW+RE4j99LZWjmp218VYke0uBYW6B157IKP+HUvVk5xJoyEEnq8j7BdGXNuFN9XkokDgAyMggf1dvddJQEREBERAREQEREBERAREQEREBETwgq/LLshlhxkbm9Nns7Q2QpjCYqDEUG1q5cR5Jd5JVTxU5yvM5bEcv0RdTQzWwSPdXseO/lB9REQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREHLuWltPl7X1gGSV3MkZ7fUe/dYJ7M2N5MHumDerRklZ4aHdypT8SsYPzdXIxtPU76Hn2PwoS62PIw1pBtrzpjgfDT7aQdchcHwse13UHNBB+V7WjhH9eIrEb7MA7/AG7LeQEREBERAREQEREBERAREQEREBERByrnvV/FvQggE239Tw7wD9lZvw+mnNGWCV7SI/6AO7D8FV3nYkqZiy5rx/NYH9/LfbYUvwC51AxEOc9363k/qPyUF6REQEREHL+WTNg5m2wC7cYDu/h5HsF0urKZqsUpb0l7AdfC5Ly14yHMPpe4RB4awjt3Hn/VdWx7mvoQlhcR0AbcO/ZBsoiICIiAiIgIiICIiAiIgIiICIiAvMgBjcD40V6Xx/djh9kHLsNH+U5nG4S+ozrIZ9gfldSXLInsx/MAN9bTLtp13O11NAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQFzPm3HrDbk2QDumEdwd9yV0DLXhjcbNbLev0xvp+VzXMXcjyXItbVLnRkDTG+Gg9u6C1cAvz2sa6CcvcYtEOd8FWxRfHsUMTjWVz0mT+ogeVKICIiAiIgIiICIiAiIgIiICIiAtLMxNmxFprgD/KcRv5AW6o3kDZnYadsA24jR/b3QUj8Ni5998jms6i1wdryNLpK5z+HYbHmbbNdPbTQujICIiAiIgIiICIiAiIgIiICIiAtbINkdRmEIJk6T0gHyfhbKIOZYezkMH+ZfHj3CWWUA7YdHfwpiPkedjLJJ6BdH3Dg2M737FXRzWuGnAEfdffCCkN5lej3DZx72zHu13SdEfstyTlVlleIig90jxo6H6XfCskgrSOJkETnM7HethQeV5JRxNwV5Ym9T+7C3R6igiJuT5mxTklhpSQyRSdgWE7HwpfjfJP4tcnpzMEc0DA5w+59lEZP8QIIWtiq19zP89Xhv7rU446pJyb8zZL47M7iWBo0Hfug6Ki+AgjYOwvqAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIKp+IkYdx71C5w6JG60exK57etSxw1DGAXRN24tHY/H9107msH5jjkzNEkODgB8hczERgx7HzDqa5/UWg68IOsccd14KqerqJZ3OlJqK40XHBVutoaenwPGlKoCIiAiIgIiICIiAiIgIiICIiAiIg51+ItR9ufbIXANb0mT2P9lj4FC2DJxQyyvbOI+sgg6P2Uh+ItqZgrV42/qPUCPPZQ/EpDluRVrZkkZJFv1IwNeyDqKIiAiIg5Hy6SCPmsUHdohO3kHWt99rqtP/APM4e+/oHdcg5zHK7m1l+mtcAxzeo7B0F1+jv8jX2AD6bdgePCDOiIgIiICIiAiIgIiICIiAiIgIiIC+HuCvqHwUHK/WDObSGUBzY7HQQB/6XVPAXL8h0Sctfr6R6wIDRrZ2P811BAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQamTpx5DHzVZd9MjSNg9wue8SldhORPoTuGnvLevXc/C6YRsEfK5blKzo+XNhaHgsm6g53uP3QdTReWEOYC07BHlekBERAREQEREBERAREQEREBERAWll5fRxdh4A/QR39trdWjmWyOxVhsQaXFhH1fCCk/h9WfFlrEj5GO6gdfVsldEXOOAADP2GNbtrWEbJ7gro6AiIgIiICIiAiIgIiICIiAiIgwXbUdOq+xLvoYNnSpY5fkp/W/L12noeOnoHVsHwrnf3+Rm1D630n6P8AEubcZ5AMVetwWqoETpNuGu8aCbmu8utPjdWhbG1wJ0W60fuVmq1+QWJGzWuqORrSOzuxd7dvhTtPPYy41hjtMa5/6WPOnH+yk0FGpcTzEjp/z14xNm31Fj+olYLPBLUjZpfXEk57R9TvC6AiDmsn4f2I45ZNiR5b1M+r+r4Wz/0defXq2YXuitNZ0uaX/oPuQfuugog08VUfRx8VeSUyvYO7j7lbiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiCB5p1/wDTk5jcWuBB2DpcxdH10Hv6nP6NDpB358rpvNQ48cm6HNH1DfUe2lzCzCPy0T45RGCQHAHyg6nw8/8A6uVWE7LG6OyptV/hU7ZuPxaDupvZxI1tWBAREQEREBERAREQEREBERAREQEREFI/EOyyBtchgdIAf3I+FVeISPj5RAIQ9sdgbIcVY/xLlbJ+UqhrfUG3jv8AUR/worh8sLMrS2QZZezWkeB+6DqaIiAiIg4lzeX1eWXC892ub0n2/Zdmo7/IV9nZ9Jv/AKXJTjv4pzSURkyxixo7Hgd9ldfY0MjaweGgBB6REQEREBERAREQEREBERAREQEREBfH/oOvOl9Xxw20j5CDmVCtI3nTPzO3OdIXeO2l05cuqdY5t6Esh1HMWdRPcAd11FAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQFzjm73Q8hG5OlpjDgAO5K6OuZ89fCzksMrtuDWjY+6DoOJeZMVVe7y6Np/0W2tTFvbLjK0jGhrXRggDwFtoCIiAiIgIiICIiAiIgIiICIiAtPLRMmxdlj/HpuI7676W4tHNuazDWy53T/Kdo/fXZBRPw5n1lZYHt+stOiO47fJXSVzj8LzIZrBawgEfzCfn2XR0BERAREQEREBERAREQEREBEUXmMzFig3rjc9zvACCUXMuY4q2MhdyE8LGMLQ1j29g74H7qYbnM9YkkFeuxzCT0OZ9lrtockzNp7cnF0VZGdIa/+k/I+6CO/wCjJslUr2MZkWl7GNOndug68dlfMBQnxuKjq2ZfVezy7ZKzYrHxYyhHUh2WsHk+SVuICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgrvNoZJsIfTeG9LgSD4IXNGwiFsbZQXGR3UuzW6le7XdBaiEkTvLT7rRPG8MQ0HHxENGh57f6oMPDw08drSNaW9YJIP76U2sdeCKtC2GBgZGwaa0eAsiAiIgIiICIiAiIgIiICIiAiIgIiIKB+IzKjJYrDmu/NhmmH5HwoThscbuQ0pIo+khuw13sV0vI4bG5NzXX6jJ3MGml2+yw0+O4ejMyapRjikZ+lzSe3+qCVREQF5eQ1hJ8AL0vL2NkYWPG2kaIQc641Ugi5pOKtv1QHF5dH3B330V0dR1DB4vGzumo044ZHb6nN3s7UigIiICIiAiIgIiICIiAiIgIiICIiAvMhIjcR5AK9L4QCCD4KDlOFgdd5hK+04wSulOwfcjuurqMg4/ia9wXIaUbbAOw/Z3v/ADUmgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIC5vziq2TlEBkc0BzW6H910hRt7A4rIWW2LtNksrfDiTsf6oNuk1rKcLWDTQwaCzrzHG2KNscY01o0B8L0gIiICIiD/2Q=="}],"interactionStates":[{"uuid":"1805D7C9-7B7A-4365-91D3-E744CAC3ECC4","name":"Base State","position":[-25.489890133425586,-39.37860139762105,1031.5492686998193],"rotation":[-6.391973563523154e-17,0,0,"XYZ"],"scale":[1,1,1],"hiddenMatrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"camera":{"zoomPersp":1,"zoomOrtho":5.251818763285144,"targetOffset":1000.4554240233972}}],"nodes":[{"uuid":"E3F238B1-55CD-49BA-B150-F35204BFB86A","type":"c","r":0.16470588235294117,"g":0.16470588235294117,"b":0.16470588235294117,"value":2763306,"alpha":"433A8519-3B33-41ED-A81C-8C801138DE64","nodeType":"Color"},{"uuid":"433A8519-3B33-41ED-A81C-8C801138DE64","type":"f","value":1,"nodeType":"Float"},{"uuid":"45FC5ACD-10E1-4797-BBA4-856755015D5A","type":"i","value":0,"nodeType":"Int"},{"uuid":"B468E6BB-593D-42A2-B78E-7462D60B472B","type":"f","value":1,"nodeType":"Float"},{"uuid":"C263A1A8-826C-41C2-911C-672232CED7F9","type":"i","value":0,"nodeType":"Int"},{"uuid":"428AE8F3-8154-46D4-A29F-43B6994F46AF","type":"c","r":0,"g":0,"b":0,"value":0,"nodeType":"Color"},{"uuid":"05872F48-DE18-4DF7-B7F1-AE44CF8861D4","type":"v4","value":"2BE42925-79EE-46EC-89A2-3BCC955B6FEB","uv":"5253A539-5F81-4B42-9863-D7D738D3C509","project":false,"nodeType":"Texture"},{"uuid":"5253A539-5F81-4B42-9863-D7D738D3C509","type":"v2","index":0,"nodeType":"UV"},{"uuid":"8DC8C298-0162-4491-9E8A-4E264B570A12","type":"v3","x":2048,"y":1024,"z":0,"nodeType":"Vector3"},{"uuid":"EFB6F36E-87DD-4D02-A2C7-C5BD081216BB","type":"f","value":0,"nodeType":"Float"},{"uuid":"C6A29065-4B4D-4778-8F29-17D511059124","type":"i","value":0,"nodeType":"Int"},{"uuid":"5459175B-22D6-4A6E-964F-829E044218F2","type":"i","value":0,"nodeType":"Int"},{"uuid":"2442E97E-9FA5-425C-BFDB-2E8245AB397C","type":"v2","x":100,"y":100,"nodeType":"Vector2"},{"uuid":"9BDFFF1D-F3C4-41F1-8A26-D7E95991FAB4","type":"m3","elements":[1,0,0,0,1,0,0,0,1],"nodeType":"Matrix3"},{"uuid":"06E9527D-58F9-44AD-9A2B-0F7DFAF7622D","type":"f","value":1,"nodeType":"Float"},{"uuid":"F41315AA-B6C8-40DC-99B8-3E1A2BF8CFD0","type":"i","value":1,"nodeType":"Int"},{"uuid":"C447DF6A-5385-4157-9AD6-C310450BCFE4","type":"c","r":0.19607843137254902,"g":0.19607843137254902,"b":0.19607843137254902,"value":3289650,"nodeType":"Color"},{"uuid":"06FF5D77-F604-41E8-8EE6-AFF825A3DA83","type":"f","value":0.1,"nodeType":"Float"},{"uuid":"1A2BDAF6-E98D-4080-854D-97F5EA78A600","type":"f","value":1,"nodeType":"Float"},{"uuid":"3DCF196A-911D-44A2-A784-5ADCEA7F768B","type":"f","value":2,"nodeType":"Float"},{"uuid":"FA299DAA-B9B0-497C-8290-0397698BFF5E","type":"f","value":1,"nodeType":"Float"},{"uuid":"58B23FE5-CF3B-435C-86E9-345AFB204578","type":"f","value":0.65,"nodeType":"Float"},{"uuid":"1FB66632-A3CA-421B-92B9-8FE0F5702480","type":"i","value":0,"nodeType":"Int"},{"uuid":"578662B0-977E-4FE6-A499-45E4085FE986","type":"f","value":0.01,"nodeType":"Float"},{"uuid":"0C2949E4-DC5E-470C-A080-4FB84061A514","type":"v3","x":100,"y":100,"z":100,"nodeType":"Vector3"},{"uuid":"AF59D974-4F1C-4D48-9D6A-5372B8D27266","type":"f","value":1,"nodeType":"Float"},{"uuid":"3CAB538A-2B37-477A-9C2A-B4DE56FB8D0F","type":"v2","x":1.7,"y":9.2,"nodeType":"Vector2"},{"uuid":"EED94726-580C-4C05-924B-74AAEBCB3E5A","type":"v2","x":8.3,"y":2.8,"nodeType":"Vector2"},{"uuid":"40C7EF50-5CE0-4324-99B9-04B9C541567F","type":"v2","x":1,"y":1,"nodeType":"Vector2"},{"uuid":"7D7BB378-F4F5-48FD-8728-F0E1352C4206","type":"c","r":0.19607843137254902,"g":0.19607843137254902,"b":0.19607843137254902,"value":3289650,"nodeType":"Color"},{"uuid":"1EA007E8-FF2B-4111-91DC-7CD1EE0E63B7","type":"c","r":0.4,"g":0.4,"b":0.4,"value":6710886,"nodeType":"Color"},{"uuid":"03555DE4-1A26-405E-9A97-B457D81DE4E5","type":"c","r":1,"g":1,"b":1,"value":16777215,"nodeType":"Color"},{"uuid":"19455C3F-B1A7-4602-B7A3-1E8131CBE61B","type":"c","r":1,"g":1,"b":1,"value":16777215,"nodeType":"Color"},{"uuid":"98E1B656-E9DF-4FB8-8EE9-5329C04CEFF1","type":"f","value":1,"nodeType":"Float"},{"uuid":"10398B50-A75D-4272-98DF-68AE1D5F4C52","type":"f","value":1,"nodeType":"Float"},{"uuid":"72ECFFC5-1AC5-461A-AA87-036AC8FEB614","type":"f","value":1,"nodeType":"Float"},{"uuid":"3963D3E3-1335-417E-BB2F-CD2091A5BD96","type":"f","value":1,"nodeType":"Float"},{"uuid":"AF7F6D6E-AF23-4420-A841-269AC319D658","type":"f","value":0.8,"nodeType":"Float"},{"uuid":"33BEB11E-4CA4-4497-AEBE-6D9E958ED043","type":"i","value":3,"nodeType":"Int"},{"uuid":"4922EEF8-C7C6-48DF-8773-8AE3701E8B04","type":"i","value":0,"nodeType":"Int"},{"uuid":"6A80E13B-2720-4B9B-81E3-A90055579C31","type":"lambert","color":"E3F238B1-55CD-49BA-B150-F35204BFB86A","emissiveIntensity":"6AAC8744-2922-42D8-A37D-412E084F3172","shadingAlpha":"B468E6BB-593D-42A2-B78E-7462D60B472B","shadingBlend":"C263A1A8-826C-41C2-911C-672232CED7F9","afterColor":"4B1B415B-519E-4CCB-B82D-DA2CBCE296B9","alpha":"30F4359A-37DF-42B2-961F-E9E3F94ED72D","emissive":"428AE8F3-8154-46D4-A29F-43B6994F46AF","nodeType":"Lambert"},{"uuid":"6AAC8744-2922-42D8-A37D-412E084F3172","type":"f","value":1,"nodeType":"Float"},{"uuid":"4B1B415B-519E-4CCB-B82D-DA2CBCE296B9","type":"v3","a":"A150A67D-E2B1-4140-B2FE-9A44799FF0B9","b":"ABEA06FC-FFF3-45D1-99E3-A681C1AF1AB0","alpha":"6852ADD3-061B-4254-8190-6587FB51652D","mode":"33BEB11E-4CA4-4497-AEBE-6D9E958ED043","nodeType":"Blend"},{"uuid":"A150A67D-E2B1-4140-B2FE-9A44799FF0B9","type":"v3","a":"06AAFCA5-C43C-4510-A922-48E0772CC2CC","b":"CFDC7907-1EAA-4288-B409-B5754954B3D9","alpha":"E0B2DDDC-07A8-4A06-92A6-1093F6505AEE","mode":"1FB66632-A3CA-421B-92B9-8FE0F5702480","nodeType":"Blend"},{"uuid":"06AAFCA5-C43C-4510-A922-48E0772CC2CC","type":"v3","a":"DAB900F3-0DBB-450C-9C41-5F71538320D7","b":"AAC1DBE1-6A79-4146-820F-24462CFB1A96","alpha":"92264A8B-8905-4C16-9D9C-DF9298EE32C8","mode":"F41315AA-B6C8-40DC-99B8-3E1A2BF8CFD0","nodeType":"Blend"},{"uuid":"DAB900F3-0DBB-450C-9C41-5F71538320D7","type":"f","src":"outgoingLight","isMethod":false,"useKeywords":true,"extensions":{},"keywords":{},"nodeType":"Expression"},{"uuid":"AAC1DBE1-6A79-4146-820F-24462CFB1A96","type":"v3","texture":"05872F48-DE18-4DF7-B7F1-AE44CF8861D4","textureSize":"8DC8C298-0162-4491-9E8A-4E264B570A12","crop":"EFB6F36E-87DD-4D02-A2C7-C5BD081216BB","projection":"C6A29065-4B4D-4778-8F29-17D511059124","axis":"5459175B-22D6-4A6E-964F-829E044218F2","size":"2442E97E-9FA5-425C-BFDB-2E8245AB397C","alpha":"06E9527D-58F9-44AD-9A2B-0F7DFAF7622D","mode":"F41315AA-B6C8-40DC-99B8-3E1A2BF8CFD0","calpha":"gAAC1DBE16A794146820F24462CFB1A96_calpha","nodeType":"CustomTexture"},{"uuid":"92264A8B-8905-4C16-9D9C-DF9298EE32C8","type":"f","src":"gAAC1DBE16A794146820F24462CFB1A96_calpha","isMethod":false,"useKeywords":true,"extensions":{},"keywords":{},"nodeType":"Expression"},{"uuid":"CFDC7907-1EAA-4288-B409-B5754954B3D9","type":"v3","color":"C447DF6A-5385-4157-9AD6-C310450BCFE4","bias":"06FF5D77-F604-41E8-8EE6-AFF825A3DA83","scale":"1A2BDAF6-E98D-4080-854D-97F5EA78A600","intensity":"3DCF196A-911D-44A2-A784-5ADCEA7F768B","factor":"FA299DAA-B9B0-497C-8290-0397698BFF5E","alpha":"58B23FE5-CF3B-435C-86E9-345AFB204578","mode":"1FB66632-A3CA-421B-92B9-8FE0F5702480","calpha":"gCFDC79071EAA4288B409B5754954B3D9_calpha","nodeType":"Fresnel"},{"uuid":"E0B2DDDC-07A8-4A06-92A6-1093F6505AEE","type":"f","src":"gCFDC79071EAA4288B409B5754954B3D9_calpha","isMethod":false,"useKeywords":true,"extensions":{},"keywords":{},"nodeType":"Expression"},{"uuid":"ABEA06FC-FFF3-45D1-99E3-A681C1AF1AB0","type":"v3","scale":"578662B0-977E-4FE6-A499-45E4085FE986","size":"0C2949E4-DC5E-470C-A080-4FB84061A514","move":"AF59D974-4F1C-4D48-9D6A-5372B8D27266","fA":"3CAB538A-2B37-477A-9C2A-B4DE56FB8D0F","fB":"EED94726-580C-4C05-924B-74AAEBCB3E5A","distortion":"40C7EF50-5CE0-4324-99B9-04B9C541567F","colorA":"7D7BB378-F4F5-48FD-8728-F0E1352C4206","colorB":"1EA007E8-FF2B-4111-91DC-7CD1EE0E63B7","colorC":"03555DE4-1A26-405E-9A97-B457D81DE4E5","colorD":"19455C3F-B1A7-4602-B7A3-1E8131CBE61B","intA":"98E1B656-E9DF-4FB8-8EE9-5329C04CEFF1","intB":"10398B50-A75D-4272-98DF-68AE1D5F4C52","intC":"72ECFFC5-1AC5-461A-AA87-036AC8FEB614","intD":"3963D3E3-1335-417E-BB2F-CD2091A5BD96","alpha":"AF7F6D6E-AF23-4420-A841-269AC319D658","noiseFunction":{"uuid":"4922EEF8-C7C6-48DF-8773-8AE3701E8B04","type":"i","value":0,"nodeType":"Int"},"nodeType":"Noise"},{"uuid":"6852ADD3-061B-4254-8190-6587FB51652D","type":"f","src":"alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","isMethod":false,"useKeywords":true,"extensions":{},"keywords":{"alpha":"AF7F6D6E-AF23-4420-A841-269AC319D658"},"nodeType":"Expression"},{"uuid":"30F4359A-37DF-42B2-961F-E9E3F94ED72D","type":"f","value":1,"nodeType":"Float"}],"frames":{"currentId":"default-frame-id","coords":[308.84718498659515,180],"frames":{"default-frame-id":{"id":"default-frame-id","name":"Frame","preset":"fullscreen","size":[1920,1119],"coords":[0,0],"editorScale":1,"backgroundColor":{"r":25,"g":25,"b":25,"a":0},"color":{"r":0,"g":0,"b":0,"a":0.5},"guides":true,"hasSceneScaling":false,"sceneScale":1}}},"assets":{"materials":{}},"needsTransmission":false,"editor":{"orbitControls":{"useKeyEvents":false,"enableDamping":true,"enablePan":false,"enableZoom":false,"enableRotate":false,"rotationLimitsMode":0,"rotationVerticalOffset":{"min":0.3490658503988659,"max":0.3490658503988659},"rotationHorizontalOffset":{"min":0.3490658503988659,"max":0.3490658503988659},"autoRotate":false,"autoRotateSpeed":0.5,"autoRotateClockwise":true},"helperState":true,"publish":{"type":2,"web":{"logo":true}},"settings":{"wireframe":false,"helpers":true}}} \ No newline at end of file diff --git a/daostar-website/src/App.css b/daostar-website/src/App.css new file mode 100644 index 00000000..997b25a3 --- /dev/null +++ b/daostar-website/src/App.css @@ -0,0 +1,547 @@ +@import "~@blueprintjs/core/lib/css/blueprint.css"; +@import "~@blueprintjs/icons/lib/css/blueprint-icons.css"; +@import "~@blueprintjs/popover2/lib/css/blueprint-popover2.css"; +@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&display=swap'); + +/* Font imports */ +@font-face { + font-family: 'Geogrotesque'; + src: url('./fonts/Geogrotesque-Medium.woff2') format('woff2'), + url('./fonts/Geogrotesque-Medium.woff') format('woff'); + font-weight: bold; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Geogrotesque'; + src: url('./fonts/Geogrotesque-Regular.woff2') format('woff2'), + url('./fonts/Geogrotesque-Regular.woff') format('woff'); + font-weight: normal; + font-style: normal; + font-display: swap; +} + +/* Global settings */ +*, +*::before, +*::after { + box-sizing: border-box; +} + +:root, * { + --clr-light: rgb(233, 233, 233); + --clr-dark: #191919; + --clr-accent: #F8E441; + --clr-secondary: rgba(66, 142, 255, 1); + --font: 'IBM Plex Mono', 'Roboto Condensed', 'Roboto', 'Arial', sans-serif; + --heading-font: 'Space Mono', 'IBM Plex Mono', 'Roboto Condensed', 'Roboto', 'Arial', sans-serif; + font-family: 'Geogrotesque'; +} + + +/* Typography */ +html { + scroll-behavior: smooth; +} + +body { + width: 100%; + height: 100%; + margin: 0; + background-color: var(--clr-dark); + color: var(--clr-light); + font-family: var(--font); + font-size: 20px; + line-height: 24px; + font-weight: normal; + overflow-x: hidden; + background-image: url('./img/stars.jpg'); + background-repeat: repeat; + background-attachment: fixed; +} + +@media (max-width: 800px) { + body { + font-size: 16px; + } +} + +h1 { + font-size: 2.5rem; + line-height: 2.5rem; + font-weight: normal; +} +h2 { + font-size: 2rem; + line-height: 1.25em; + font-weight: bold; + text-transform: uppercase; + margin: 0; + text-align: center; + color: var(--clr-light); + /* border-bottom: 2px solid var(--clr-light); */ +} +h3 { + font-size: 1.2rem; + line-height: 2em; + font-weight: 500; + text-transform: uppercase; + margin: 0.5rem auto; +} +h4 { + font-size: 1.2rem; + line-height: 2em; + font-weight: 500; +} +p { + font-size: 1.2rem; + line-height: 2rem; + font-weight: normal; + color: var(--clr-light); + margin: 0; +} +p.small { + font-size: 1rem; + line-height: 1.4rem; + font-weight: normal; + color: var(--clr-light); +} + +a, a:link, a:visited { + color: var(--clr-light); + text-decoration: none; + border-bottom: 1px solid rgb(255,255,255); +} +a:hover, a.active { + color: var(--clr-accent); + transition: 0.2s; + border-bottom: 1px solid var(--clr-accent); + transition: 0.5s; +} + +a.underline:hover { + text-decoration: underline; +} + +a.no-underline, +a.no-underline:hover { + border-bottom: none; + text-decoration: none; +} + + +.wrapper { + margin: 0 auto; + display: flex; + flex-direction: column; + /* position: absolute; + top: 0; */ +} +.parallax--wrapper { + height: 100vh; + perspective: 1px; + overflow-x: hidden; + overflow-y: auto; +} +.parallax { + position: absolute; + top: 0; right: 0; bottom: 0; left: 0; +} +.parallax--base { + transform: translateZ(0px); + z-index: 1; +} +.parallax--minus1 { + transform: translateZ(-4px) scale(5); + z-index: 0; +} +.parallax--minus2 { + transform: translateZ(-100px) scale(101); + z-index: 0; +} + +section { + position: relative; + transform-style: preserve-3d; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + max-width: 1024px; + width: 80%; + margin: 3rem auto; + padding: 20vh 0; + gap: 30px; +} +iframe { + width: 100%; + height: 400px; + border: 1px double var(--clr-light); + box-shadow: 10px 10px 0px 0px var(--clr-light); +} + +#title { + width: 100%; + min-height: 90%; + margin: 0 auto; + padding: 0; + gap: 20px; + text-align: center; + z-index: 999; +} +#title > div { + position: absolute; + top: 50vh; + align-self: center; +} + +.rows { + display: flex; + flex-direction: row; + justify-content: space-around; + align-items: flex-start; + gap: 20px; + /* flex-wrap: wrap; */ + margin: 24px auto; +} +.rows > div { + display: flex; + flex-direction: column; + /* align-items: center; */ + gap: 20px; + width: 50%; +} + +.Typewriter { + display: inline; +} + +@media screen and (max-width: 600px) { + .rows { + flex-direction: column; + } + .rows > div { + width: 100%; + } +} + + + +/** Header **/ +header { + display: flex; + flex-direction: row; + padding: 2rem 1rem 1rem; + width: 100%; + margin: 0; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + position: fixed; + top: 0; + z-index: 100; + background-image: linear-gradient(rgba(0,0,0,1), rgba(0,0,0,0)); +} +.logo { + height: 30px; + margin: 0 auto; +} +.logo:hover { + fill: var(--clr-accent); + transition: 0.5s; + cursor: pointer; +} + +/** Menu **/ +nav, .nav { + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 25px; + padding: 0 15px; + align-items: center; + justify-content: center; + font-size: 1.4rem; +} + +@media (max-width: 640px) { + header { + justify-content: center; + gap: 5px; + } + nav, .nav { + font-size: 1.2rem; + gap: 15px; + } +} + + + + +/* Footer */ +footer { + margin: 0; + padding: 0; + z-index: 1; + color: var(--clr-dark); + position: relative; + min-height: 80vh; +} +.credits { + margin: 0 auto; +} +.cube { + position: absolute; + bottom: 0; + width: 100%; +} +.bottom { + position: absolute; + bottom: 0rem; + padding: 2rem; + width: 100%; + z-index: 100; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + text-align: center; + flex-wrap: wrap; + gap: 25px; +} +.bottom p { + color: var(--clr-dark); +} +.bottom > .right { + display: flex; + gap: 15px; +} +.bottom .logo { + display: flex; + flex-direction: row; + gap: 15px; + align-items: center; + margin: 0; +} +.bottom .logo a { + display: flex; + align-items: center; + gap: 15px; + border-bottom: 0; + background: none; + color: var(--clr-dark); + padding: 0; +} +.bottom .logo a:hover { + border-bottom: 0; +} +.bottom a { + color: var(--clr-light); + background-color: var(--clr-dark); + padding: 2px 5px; +} +.bottom a:hover { + color: var(--clr-dark); + background-color: var(--clr-accent); + transition: 0.5s; +} +@media (min-width: 800px) { + footer { + min-height: 80vh; + } +} +@media (min-width: 1024px) { + footer { + min-height: 100vh; + } +} +@media (min-width: 1280px) { + footer { + min-height: 120vh; + } +} + +/* mobile */ +@media (max-width: 1024px) { + .credits { + display: none; + } +} +@media (max-width: 800px) and (orientation: portrait) { + .bottom { + justify-content: center; + } + footer { + height: auto; + } + .cube { + height: 80vh; + width: auto; + object-position: center; + } +} + + + +/* Buttons */ +.buttons { + display: flex; + gap: 20px; + text-align: center; + justify-content: center; +} +.btn { + font-family: var(--font); + text-decoration: none; + text-align: center; + padding: 0.5rem 1rem; + margin: 0; + position: relative; + font-size: 1.25rem; + line-height: 2rem; + display: inline-block; + border: 1px solid var(--clr-light) !important; + color: var(--clr-light); + background-color: var(--clr-dark); +} +.btn:hover { + color: var(--clr-accent); + background-color: var(--clr-dark); + border: 1px solid var(--clr-accent) !important; + box-shadow: 5px 5px 0 0 var(--clr-accent); + transition: 0.5s; +} +.btn.inactive { + color: #999; + border: 1px solid #999 !important; +} +.btn.inactive:hover { + box-shadow: 0 0 0 0; + color: #999; +} +.btn.primary { + border: 1px solid var(--clr-accent) !important; + color: var(--clr-accent); +} +.btn.secondary { + border: 1px solid var(--clr-secondary) !important; + color: var(--clr-secondary); +} +.btn.secondary:hover { + box-shadow: 5px 5px 0 0 var(--clr-secondary); +} + +/* Spline */ +canvas { width: 100%; height: 100%; outline: none; z-index: 10; } +#container { width: 100%; height: 100%; position: relative; } + + +#stars { + width: 100%; + height: 100%; + background-image: url('./img/stars.jpg'); + background-repeat: repeat; + background-attachment: fixed; +} + +#mesh { + width: 100%; + height: 140%; + display: flex; + align-items: stretch; + overflow-x: hidden; +} +#mesh img { + opacity: 0.10; + object-fit: cover; + width: 100%; +} + +#hand { + position: absolute; + z-index: 0; + width: 100%; +} +#hand img { + width: 60%; + display: block; + margin: 0 auto; +} + + +.logos { + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 16px; + justify-content: center; +} +.logos a, .menu a, header a { + border-bottom: 0 !important; +} +.logos img { + width: 80px; +} + + +@media (max-width: 600px) { + .logo { + display: none; + } + .menu { + gap: 10px; + padding: 0; + } + #hand img { + margin-left: 50%; + transform: translateX(-50%); + width: auto; + max-height: 50vh; + } +} + +@media (min-width: 601px) and (max-width: 1599px) { + #hand img { + margin: 0 auto; + width: auto; + max-height: 50vh; + } +} + +@media (min-width: 1600px) { + #hand img { + margin: 0 auto; + max-width: 600px; + } +} + +table { + border-collapse: collapse; + border: 2px solid rgb(200,200,200); + letter-spacing: 1px; + font-size: 0.9rem; + color:#000000; +} + +td, th { + border: 1px solid rgb(190,190,190); + padding: 10px 20px; +} + +th { + background-color: rgb(235,235,235); +} + +td { + text-align: center; +} + +tr:nth-child(even) td { + background-color: rgb(250,250,250); +} + +tr:nth-child(odd) td { + background-color: rgb(245,245,245); +} diff --git a/daostar-website/src/App.js b/daostar-website/src/App.js new file mode 100644 index 00000000..5129c4df --- /dev/null +++ b/daostar-website/src/App.js @@ -0,0 +1,59 @@ +import { Route, Routes } from 'react-router-dom'; +import Homepage from './components/Homepage/Homepage'; +import Register from './components/Register/Register'; +import TopNavigation from './components/TopNavigation/TopNavigation'; +import RegistrationPage from './components/RegistrationPage/RegistrationPage'; +import ExplorePage from './components/ExplorePage/ExplorePage'; +import { WagmiConfig, createClient } from "wagmi"; +import { ConnectKitProvider, getDefaultClient } from "connectkit"; + +import './App.css'; +import './bp4-theme.css'; +import Eye from './components/Homepage/Eye/Eye'; + +const alchemyId = process.env.ALCHEMY_ID; + +const client = createClient( + getDefaultClient({ + appName: "Your App Name", + alchemyId, + }), +); + +function App() { + + return ( + + +
+ + + {/* */} + + + } /> + } /> + } /> + } /> + } /> + +
+ +
+
+ ); +} + +export default App; + \ No newline at end of file diff --git a/daostar-website/src/abi/RegistrationContract.js b/daostar-website/src/abi/RegistrationContract.js new file mode 100644 index 00000000..2ec422f4 --- /dev/null +++ b/daostar-website/src/abi/RegistrationContract.js @@ -0,0 +1,73 @@ +const RegistrationContract = [ + { + "inputs": [ + { "internalType": "address", "name": "_template", "type": "address" } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { "inputs": [], "name": "ArrayLengthsMismatch", "type": "error" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "daoAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "daoURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "address", + "name": "registration", + "type": "address" + } + ], + "name": "NewRegistration", + "type": "event" + }, + { + "inputs": [ + { "internalType": "address", "name": "by", "type": "address" }, + { "internalType": "bytes32", "name": "salt", "type": "bytes32" } + ], + "name": "registrationAddress", + "outputs": [ + { "internalType": "address", "name": "addr", "type": "address" }, + { "internalType": "bool", "name": "exists", "type": "bool" } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, + { "internalType": "string", "name": "daoURI_", "type": "string" }, + { "internalType": "address", "name": "manager", "type": "address" }, + { "internalType": "address[]", "name": "contracts", "type": "address[]" }, + { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } + ], + "name": "summonRegistration", + "outputs": [ + { "internalType": "address", "name": "registration", "type": "address" }, + { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "template", + "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + } +] + +export default RegistrationContract; \ No newline at end of file diff --git a/daostar-website/src/bp4-theme.css b/daostar-website/src/bp4-theme.css new file mode 100644 index 00000000..a1cfec7f --- /dev/null +++ b/daostar-website/src/bp4-theme.css @@ -0,0 +1,136 @@ +body { + --card-bg: rgb(41,41,41); + --card-bg-hover: rgb(52, 52, 52); + --card-border: rgb(78,78,78); + --card-border-hover: rgb(111, 111, 111); + --placeholder-color: rgb(156,156,156); + --card-font: 'IBM Plex Mono', monospace; + --primary-color: rgb(66,142,255); + --primary-color-hover: rgb(98, 159, 250); +} + +.bp4-card { + background-color: var(--card-bg); + border: 1px solid var(--card-border); + border-radius: 2px; + transition: background-color 0.3s, border 0.3s; +} + +.bp4-card.wizard-card { + padding-left: 0; + padding-right: 0; + /* padding-bottom: 0; */ +} + +.bp4-divider { + border-bottom: 1px solid var(--card-border); + border-right: 1px solid var(--card-border); + margin: 0; +} + +.bp4-label { + font-size: 12px; + line-height: 16px; +} + +.bp4-input, +.bp4-html-select select { + background-color: var(--card-bg); + border: 1px solid var(--card-border); + font-family: var(--card-font); + box-shadow: none; + color: #fff; +} + +.bp4-html-select select { + transition: background-color 0.3s; +} + +.bp4-html-select select:hover { + background-color: var(--card-bg-hover); +} + +.bp4-input::placeholder { + color: var(--placeholder-color); + font-family: var(--card-font); +} + +.bp4-button { + font-family: var(--card-font); +} + +.bp4-button:not([class*=bp4-intent-]) { + color: #fff; + background: var(--card-bg); + border: 1px solid var(--card-border) +} + +.bp4-button:not([class*=bp4-intent-]):hover { + background: var(--card-bg-hover); +} + +.bp4-button.bp4-intent-primary { + background-color: var(--card-bg); + border: 1px solid var(--primary-color); + color: var(--primary-color); + transition: background-color 0.3s, color 0.3s, border 0.3s; +} + +.bp4-button.bp4-intent-primary:not(.bp4-disabled):hover { + background-color: var(--card-bg); + color: var(--primary-color-hover); + border: 1px solid var(--primary-color-hover) +} + +.bp4-button .bp4-icon { + color: #fff; +} + +.bp4-callout.bp4-intent-danger { + background: rgba(226, 68, 68, 0.4); + color: #E24444; +} + +.bp4-callout ul { + color: #fff; + padding: 0px 14px; +} + +* .bp4-text-small { + font-size: 12px; +} + +.bp4-text-muted { + color: #9C9C9C; +} + +.bp4-editable-text:hover { + background-color: var(--card-bg-hover); + border-radius: 4px; +} + +.bp4-editable-text input, +.bp4-editable-text-editing input { + background-color: black; +} + +.bp4-editable-text-editing, +.bp4-editable-text-editing .bp4-editable-text-content { + background-color: black; +} + +.bp4-tooltip2 .bp4-popover2-content { + background-color: #000; + font-size: 14px; + font-family: var(--card-font); + padding: 4px 12px; +} + +.bp4-tooltip2 .bp4-popover2-arrow-border, +.bp4-tooltip2 .bp4-popover2-arrow-fill { + fill: #000; +} + +textarea.bp4-input { + resize: vertical; +} \ No newline at end of file diff --git a/daostar-website/src/components/ExplorePage/ExplorePage.css b/daostar-website/src/components/ExplorePage/ExplorePage.css new file mode 100644 index 00000000..3f6dee26 --- /dev/null +++ b/daostar-website/src/components/ExplorePage/ExplorePage.css @@ -0,0 +1,29 @@ +.explore-page { + margin: 20vh auto; + max-width: 900px; +} + +.explore-page .dao-cards { + display: flex; + flex-wrap: wrap; + gap: 24px; +} + +.explore-page .dao-cards .bp4-card { + max-width: 438px; +} + +.explore-page .filter { + margin-bottom: 56px; +} + +@media (max-width: 950px) { + .explore-page { + max-width: 80%; + } + + .explore-page .dao-cards .bp4-card { + max-width: none; + } + +} \ No newline at end of file diff --git a/daostar-website/src/components/ExplorePage/ExplorePage.js b/daostar-website/src/components/ExplorePage/ExplorePage.js new file mode 100644 index 00000000..b9f287fd --- /dev/null +++ b/daostar-website/src/components/ExplorePage/ExplorePage.js @@ -0,0 +1,59 @@ +import React, { useState } from 'react'; +import RegistrationCard from '../RegistrationCard/RegistrationCard'; +import { mockExploreData } from './mockExploreData'; +import './ExplorePage.css'; +import validator from 'validator'; +import { useQuery } from '@apollo/client'; +import REGISTRATIONS from './queries/registrations'; +import { InputGroup } from '@blueprintjs/core'; + +export const filterRegistrations = (registration, filterVal = '') => { + if (!registration.daoName) { + return false; + } + if (filterVal !== '') { + return registration.daoName.toLowerCase().includes(filterVal.toLowerCase()); + } + return true; +} + +const ExplorePage = ({ + +}) => { + + const [filterVal, setFilterVal] = useState(''); + const onChangeFilter = (e) => setFilterVal(e.target.value); + + const { loading, error, data } = useQuery(REGISTRATIONS); + if (error) return 'error'; + if (loading) return 'loading...'; + + const daoCards = data.registrationInstances + .filter(reg => filterRegistrations(reg, filterVal)) + .map((registration, i) => { + return ( + + ) + }) + + return ( +
+
+ +
+
+ {daoCards} +
+
+ ) +} + +export default ExplorePage; \ No newline at end of file diff --git a/daostar-website/src/components/ExplorePage/mockExploreData.js b/daostar-website/src/components/ExplorePage/mockExploreData.js new file mode 100644 index 00000000..acb2d937 --- /dev/null +++ b/daostar-website/src/components/ExplorePage/mockExploreData.js @@ -0,0 +1,68 @@ +export const mockExploreData = [ + { + "@context": "", + "type": "DAO", + "name": "SampleDAO", + "description": "The community of core contributors to DAOhaus", + "membersURI": "https://sample.dao/members.json", + "proposalsURI": "https://sample.dao/proposals.json", + "activityLogURI": "https://sample.dao/activityLog.json", + "governanceURI": "https://sample.dao/governance.md", + "daoURI": "https://api.daostar.org/immutable/QmRj4AasAEWg45vBmNzAJ5MLVnVUDEZqdbF9yTKhgsswcK" + }, + { + "@context": "", + "type": "DAO", + "name": "SampleDAO", + "description": "The community of core contributors to DAOhaus", + "membersURI": "https://sample.dao/members.json", + "proposalsURI": "https://sample.dao/proposals.json", + "activityLogURI": "https://sample.dao/activityLog.json", + "governanceURI": "https://sample.dao/governance.md", + "daoURI": "https://api.daostar.org/immutable/QmRj4AasAEWg45vBmNzAJ5MLVnVUDEZqdbF9yTKhgsswcK" + }, + { + "@context": "", + "type": "DAO", + "name": "SampleDAO", + "description": "The community of core contributors to DAOhaus", + "membersURI": "https://sample.dao/members.json", + "proposalsURI": "https://sample.dao/proposals.json", + "activityLogURI": "https://sample.dao/activityLog.json", + "governanceURI": "https://sample.dao/governance.md", + "daoURI": "https://api.daostar.org/immutable/QmRj4AasAEWg45vBmNzAJ5MLVnVUDEZqdbF9yTKhgsswcK" + }, + { + "@context": "", + "type": "DAO", + "name": "SampleDAO", + "description": "The community of core contributors to DAOhaus", + "membersURI": "https://sample.dao/members.json", + "proposalsURI": "https://sample.dao/proposals.json", + "activityLogURI": "https://sample.dao/activityLog.json", + "governanceURI": "https://sample.dao/governance.md", + "daoURI": "https://api.daostar.org/immutable/QmRj4AasAEWg45vBmNzAJ5MLVnVUDEZqdbF9yTKhgsswcK" + }, + { + "@context": "", + "type": "DAO", + "name": "SampleDAO", + "description": "The community of core contributors to DAOhaus", + "membersURI": "https://sample.dao/members.json", + "proposalsURI": "https://sample.dao/proposals.json", + "activityLogURI": "https://sample.dao/activityLog.json", + "governanceURI": "https://sample.dao/governance.md", + "daoURI": "https://api.daostar.org/immutable/QmRj4AasAEWg45vBmNzAJ5MLVnVUDEZqdbF9yTKhgsswcK" + }, + { + "@context": "", + "type": "DAO", + "name": "SampleDAO", + "description": "The community of core contributors to DAOhaus", + "membersURI": "https://sample.dao/members.json", + "proposalsURI": "https://sample.dao/proposals.json", + "activityLogURI": "https://sample.dao/activityLog.json", + "governanceURI": "https://sample.dao/governance.md", + "daoURI": "https://api.daostar.org/immutable/QmRj4AasAEWg45vBmNzAJ5MLVnVUDEZqdbF9yTKhgsswcK" + } +] \ No newline at end of file diff --git a/daostar-website/src/components/ExplorePage/queries/registrations.js b/daostar-website/src/components/ExplorePage/queries/registrations.js new file mode 100644 index 00000000..e88affdd --- /dev/null +++ b/daostar-website/src/components/ExplorePage/queries/registrations.js @@ -0,0 +1,21 @@ +import { gql } from "@apollo/client"; + +const REGISTRATIONS = gql` + query Registrations { + registrationInstances(first: 5) { + id + daoAddress + daoURI + daoName + daoDescription + membersURI + proposalsURI + governanceURI + activityLogURI + registrationAddress + network + } + } +` + +export default REGISTRATIONS; \ No newline at end of file diff --git a/daostar-website/src/components/Homepage/Eye/Box.js b/daostar-website/src/components/Homepage/Eye/Box.js new file mode 100644 index 00000000..8b62cc81 --- /dev/null +++ b/daostar-website/src/components/Homepage/Eye/Box.js @@ -0,0 +1,30 @@ +import { useRef, useState, useMemo } from 'react' +import { useFrame } from '@react-three/fiber' +import { Color } from 'three' + +export default function Box({ text, ...props }) { + const ref = useRef() + const black = useMemo(() => new Color('black'), []) + const lime = useMemo(() => new Color('lime'), []) + const [hovered, setHovered] = useState(false) + + useFrame(({ mouse, viewport }) => { + const x = (mouse.x * viewport.width) / 2.5 + const y = (mouse.y * viewport.height) / 2.5 + ref.current.lookAt(x, y, 1) + ref.current.material.color.lerp(hovered ? lime : black, 0.05) + }) + + return ( + setHovered(true)} + onPointerOut={() => setHovered(false)} + > + + + {props.children} + + ) +} \ No newline at end of file diff --git a/daostar-website/src/components/Homepage/Eye/Eye.css b/daostar-website/src/components/Homepage/Eye/Eye.css new file mode 100644 index 00000000..ee07c18b --- /dev/null +++ b/daostar-website/src/components/Homepage/Eye/Eye.css @@ -0,0 +1,8 @@ +.eye-canvas canvas { + height: 400px; + width: 400px; + display: block; + background: red; + position: fixed; + top: 0; +} \ No newline at end of file diff --git a/daostar-website/src/components/Homepage/Eye/Eye.js b/daostar-website/src/components/Homepage/Eye/Eye.js new file mode 100644 index 00000000..91677c16 --- /dev/null +++ b/daostar-website/src/components/Homepage/Eye/Eye.js @@ -0,0 +1,55 @@ +import React, { useEffect, useRef, useState } from "react"; +import { Canvas, useFrame, useThree } from '@react-three/fiber'; +import * as THREE from "three"; +import { Vector3 } from 'three' +import eyeIllustration from './eye_illustration.jpeg'; +import './Eye.css'; +import Box from "./Box"; + +function Rig() { + const { camera, mouse } = useThree() + const vec = new Vector3() + + return useFrame(() => { + camera.position.lerp(vec.set(-mouse.x, -mouse.y, camera.position.z), 0.5) + camera.lookAt(0, 0, 0) + }) +} + +const Sphere = () => { + + const ref = useRef() + const base = new THREE.TextureLoader().load(eyeIllustration) + + // useFrame(() => console.log('executing')); + + return ( + + + + + ); + }; + +const Eye = () => { + + return ( +
+ + + + + + + +
+ ); +}; + +export default Eye; \ No newline at end of file diff --git a/daostar-website/src/components/Homepage/Eye/Screen Shot 2022-12-30 at 4.34.34 PM.png b/daostar-website/src/components/Homepage/Eye/Screen Shot 2022-12-30 at 4.34.34 PM.png new file mode 100644 index 00000000..81859de1 Binary files /dev/null and b/daostar-website/src/components/Homepage/Eye/Screen Shot 2022-12-30 at 4.34.34 PM.png differ diff --git a/daostar-website/src/components/Homepage/Eye/eye_illustration.jpeg b/daostar-website/src/components/Homepage/Eye/eye_illustration.jpeg new file mode 100644 index 00000000..5ebb80c3 Binary files /dev/null and b/daostar-website/src/components/Homepage/Eye/eye_illustration.jpeg differ diff --git a/daostar-website/src/components/Homepage/Homepage.css b/daostar-website/src/components/Homepage/Homepage.css new file mode 100644 index 00000000..8b1ed284 --- /dev/null +++ b/daostar-website/src/components/Homepage/Homepage.css @@ -0,0 +1,75 @@ +.space-mono, .space-mono * { + font-family: var(--heading-font); +} + +.Typewriter__wrapper { + font-family: var(--heading-font); +} + +.font-700 { + font-weight: 700; +} + +.no-transform { + text-transform: none; +} + +.info-section .info-container { + display: flex; + gap: 48px; +} + +.info-container .main-content { + flex-grow: 2; +} + +.info-container .sidebar { + flex-grow: 2; +} + +.sidebar.one-third { + min-width: 33%; +} + +.sidebar h3 { + margin-top: 0; + line-height: 1.4; +} + +.sidebar .btn { + width: 100%; + margin-bottom: 12px; +} + +.info-container .bp4-card { + max-width: 438px; +} + +.button-info-group { + margin-bottom: 24px; +} + +.button-info-group .btn { + margin-bottom: 8px; +} + +.button-info-group p { + text-align: center; + margin-top: 0; + font-size: 16px; + line-height: 1.3; +} + +.quote { + text-align: center; +} + +.quote-author { + font-size: 16px; +} + +@media screen and (max-width: 900px) { + .info-section .info-container { + flex-direction: column; + } +} \ No newline at end of file diff --git a/daostar-website/src/components/Homepage/Homepage.js b/daostar-website/src/components/Homepage/Homepage.js new file mode 100644 index 00000000..5bfc02dc --- /dev/null +++ b/daostar-website/src/components/Homepage/Homepage.js @@ -0,0 +1,282 @@ +import React from 'react'; +import Typewriter from 'typewriter-effect'; + +// Homepage Graphics +import mesh from '../../img/mesh.png'; +import hand from '../../img/hand_final.png'; +import cube from '../../img/cube.png'; +import metagovSVG from '../../img/metagov.svg'; +import MemberLogos from './MemberLogos/MemberLogos'; + +import molochLogo from '../../img/logos/moloch.jpeg'; +import daoStackLogo from '../../img/logos/daostack.jpeg'; +import compoundLogo from '../../img/logos/compound.png'; +import Eye from './Eye/Eye'; +import { Link } from 'react-router-dom'; +import './Homepage.css'; +import { useQuery } from '@apollo/client'; +import REGISTRATIONS from '../ExplorePage/queries/registrations'; +import RegistrationCard from '../RegistrationCard/RegistrationCard'; +import { filterRegistrations } from '../ExplorePage/ExplorePage'; + +const Homepage = (props) => { + + const { loading, error, data } = useQuery(REGISTRATIONS); + + const daoCards = data ? ( + data.registrationInstances + .filter(reg => filterRegistrations(reg)) + .filter((reg, i) => i < 2) + .map((registration, i) => { + return ( + + ) + }) + ) : null; + + return ( +
+
+
+
+ +
+
+
+

+ The DAO standard,
+ built by + +

+
+ Upgrade your DAO + Explore the ecosystem +
+
+
+ +
+

+ An API for your DAO +

+
+
+

+ DAO* (or DAOstar) defines a common interface for DAOs, akin to + tokenURI for NFTs, so that DAOs of all shapes and sizes are easier + to discover, more legible to their members, and more compatible with future tooling. +


+

Many DAOs already publish their data in various ways. We've standardized these + existing best-practices, making it easy for people to create and maintain new DAOs + and DAO tooling. +

+
+ +
+
+ {daoCards} +
+ Explore DAOs +
+ + + +
+

+ The story so far... +

+
+
+

It is a period of creative turmoil. DAOs, or decentralized autonomous organizations, represent one possible future for the internet. But that future is fragile. Use-cases are immature. Speculation is rampant. The first DAO exploded, almost taking down Ethereum. DAOs are far, far from disrupting the deathstars of WEB2.

+
+
+

For years, the ecosystem was fragmented by competition. Now, a new alliance of DAO builders is racing to build standards that will realize the promise of this emerging technology...

+
+
+
+ +
+

+ Contribute to standards +

+
+

💡 “Let’s challenge each other not to build empires.”

+

+ - Spencer Graham @ Roundtable #1 +

+
+
+
+

+ DAOstar One is a roundtable of key organizations in the DAO ecosystem. We build interoperable standards and other public infrastructure for DAOs and DAO tooling. +


+

+ Each roundtable meeting includes representatives from key organizations in the DAO ecosystem, and each organization can send up to two representatives per meeting. The private roundtable is regularly attended by DAO leaders, founders, and CEOs, and the discussions are professionally moderated and summarized. The roundtable meets monthly. +

+
+
+
+ + Join our Discord + +

For questions and discussion, go to #daostar or #daostar-one.

+
+
+ + Sign up for community call + +

Every two weeks on Thursday, 11am ET.

+
+
+ + Learn more + +

Visit daostar.one for more information about joining the roundtable

+
+
+
+
+ +{/* +
+ +

The DAO Standard

+ +

DAOstar defines a common interface for DAOs, akin to tokenURI for NFTs, so that DAOs of all shapes and sizes are easier to discover, more legible to their members, and more compatible with future tooling.

+

Many DAOs already publish their data in various ways. We've standardized these existing best-practices, making it easy for people to create and maintain new DAOs and DAO tooling.

+ Read the standard +
*/} + + {/*
+

Upgrade

+ +
+
+ Create Endpoint (alpha) + +

You can create a DAOstar endpoint here or set up your own.

+
+
+ Explore Endpoints (alpha) + +

You can explore existing endpoints here.

+
+
+ Upgrade Contract +

We do not recommend modifying your contract until the standard is finalized.

+
+
+ +

Sample Implementations

+ +
+ {/* Gnosis + Moloch + DAOstack + Compound Governor Bravo +
+
*/} + + {/*
+

Join the discussion

+ +
+

Have questions about upgrading? Come join our Discord or sign up for one of the upcoming community calls.

+
+ +
+
+ Join our Discord +

For questions and discussion, go to #daostar or #daostar-one.

+
+
+ Sign Up for Community Call +

Every two weeks on Thursday, 11am ET. Next calls: May 19, June 2, June 16.

+
+
+ +
*/} + + +
+

Governed by DAOstar One

+

DAOstar One is a roundtable of key organizations in the DAO ecosystem.

+ +
+ + +
+ +
+ +
+ ) +} + +export default Homepage; \ No newline at end of file diff --git a/daostar-website/src/components/Homepage/MemberLogos/MemberLogos.js b/daostar-website/src/components/Homepage/MemberLogos/MemberLogos.js new file mode 100644 index 00000000..90f4cf70 --- /dev/null +++ b/daostar-website/src/components/Homepage/MemberLogos/MemberLogos.js @@ -0,0 +1,154 @@ +import React, { Fragment } from 'react'; + +// Logos +import molochLogo from '../../../img/logos/moloch.jpeg'; +import daoStackLogo from '../../../img/logos/daostack.jpeg'; +import compoundLogo from '../../../img/logos/compound.png'; +import _0xLogo from '../../../img/logos/0x.jpeg'; +import _1hiveLogo from '../../../img/logos/1hive.png'; +import abridgedLogo from '../../../img/logos/abridged.jpeg'; +import aDAOlogo from '../../../img/logos/adao.png'; +import agoraLogo from '../../../img/logos/agora.png'; +import aragonLogo from '../../../img/logos/aragon.png'; +import avenueLogo from '../../../img/logos/avenue.png'; +import balancerLogo from '../../../img/logos/balancer.png'; +import boardroomLogo from '../../../img/logos/boardroom.jpeg'; +import bribeLogo from '../../../img/logos/bribe.jpg'; +import ceramicLogo from '../../../img/logos/ceramic.png'; +import charmverseLogo from '../../../img/logos/charmverse.png'; +import coinbaseLogo from '../../../img/logos/coinbase.png'; +import colonyLogo from '../../../img/logos/colony.png'; +import commonwealthLogo from '../../../img/logos/commonwealth.png'; +import consensysLogo from '../../../img/logos/consensys.png'; +import consensysMeshLogo from '../../../img/logos/consensys-mesh.png'; +import curveLabsLogo from '../../../img/logos/curvelabs.jpeg'; +import daodaoLogo from '../../../img/logos/daodao.png'; +import daoMastersLogo from '../../../img/logos/daomasters.jpeg'; +import developerDAOLogo from '../../../img/logos/developerdao.jpg'; +import daoCollectiveLogo from '../../../img/logos/daoresearchcollective.png'; +import deepDAOlogo from '../../../img/logos/deepdao.jpeg'; +import dOrgLogo from '../../../img/logos/dorg.png'; +import ethereumLogo from '../../../img/logos/ethereumfoundation.png'; +import etherscanLogo from '../../../img/logos/etherscan.png'; +import figmentLogo from '../../../img/logos/figment.jpeg'; +import galaxyDigitalLogo from '../../../img/logos/galaxydigital.jpeg'; +import gitcoinLogo from '../../../img/logos/gitcoin.png'; +import githubLogo from '../../../img/logos/github.png'; +import gnosisLogo from '../../../img/logos/gnosis.png'; +import govrnLogo from '../../../img/logos/govrn.png'; +import interchainLogo from '../../../img/logos/interchain.png'; +import klerosLogo from '../../../img/logos/kleros.png'; +import kycdaoLogo from '../../../img/logos/kycdao.jpg'; +import litProtocolLogo from '../../../img/logos/litprotocol.png'; +import logosLogo from '../../../img/logos/logos.jpg'; +import messariLogo from '../../../img/logos/messari.jpeg'; +import metacartelLogo from '../../../img/logos/metacartel.png'; +import metagovLogo from '../../../img/logos/metagov.png'; +import mirrorLogo from '../../../img/logos/mirror.png'; +import nearLogo from '../../../img/logos/near.png'; +import olympusLogo from '../../../img/logos/olympusdao.jpeg'; +import openZepellinLogo from '../../../img/logos/openzeppelin.jpeg'; +import opolisLogo from '../../../img/logos/opolis.png'; +import orcaLogo from '../../../img/logos/orca.jpeg'; +import otherInternetLogo from '../../../img/logos/otherinternet.png'; +import otterspaceLogo from '../../../img/logos/otterspace.png'; +import paladinLogo from '../../../img/logos/paladin.png'; +import polygonLogo from '../../../img/logos/polygondao.webp'; +import protocolLogo from '../../../img/logos/protocol.png'; +import rabbitholeLogo from '../../../img/logos/rabbithole.jpg'; +import radicalxchangeLogo from '../../../img/logos/radicalxchange.png'; +import radicleLogo from '../../../img/logos/radicle.png'; +import sismoLogo from '../../../img/logos/sismo.png'; +import smartContractResearchLogo from '../../../img/logos/scrf.png'; +import snapshotLogo from '../../../img/logos/snapshot.jpeg'; +import solanaLogo from '../../../img/logos/solana.png'; +import spruceLogo from '../../../img/logos/spruce.jpeg'; +import stationLogo from '../../../img/logos/station.jpg'; +import superDAOlogo from '../../../img/logos/superdao.png'; +import syndicateLogo from '../../../img/logos/syndicate.jpeg'; +import tallyLogo from '../../../img/logos/tally.jpeg'; +import tenderlyLogo from '../../../img/logos/tenderly.jpeg'; +import tributeLogo from '../../../img/logos/tribute.png'; +import utopiaLogo from '../../../img/logos/utopialabs.webp'; +import wildfireLogo from '../../../img/logos/wildfiredao.png'; +import wonderverseLogo from '../../../img/logos/wonderverse.png'; + +const MemberLogos = (props) => { + return ( +
+ 0x + 1Hive + Abridged + ADAO + Agora Space + Aragon + Avenue + BalancerDAO + Boardroom + Bribe + Ceramic + Charmverse + Coinbase + Colony + Commonwealth + Compound + Consensys + Consensys Mesh + Curve Labs + DAO DAO + DAO Masters + Developer DAO + DAO Research Collective + DAOstack + DeepDAO + dOrg + Ethereum Foundation + Etherscan + Figment + Galaxy Digital + Gitcoin + GitHub + Gnosis + Govrn + Interchain Foundation + Kleros + kycDAO + Lit Protocol + Logos + Messari + MetaCartel Ventures + Metagov + Mirror + Moloch + NEAR + OlympusDAO + OpenZeppelin + Opolis + Orca Protocol + Other Internet + Otterspace + Paladin + Polygon DAO + Protocol Labs + Rabbit Hole + RadicalxChange + Radicle + Sismo + Smart Contract Research Forum + Snapshot + Solana + Spruce + Station + Superdao + Syndicate + Tally + Tenderly + Tribute Labs + Utopia Labs + Wildfire DAO + Wonderverse +
+ ) +} + +export default MemberLogos; \ No newline at end of file diff --git a/daostar-website/src/components/Register/Register.css b/daostar-website/src/components/Register/Register.css new file mode 100644 index 00000000..9881dca0 --- /dev/null +++ b/daostar-website/src/components/Register/Register.css @@ -0,0 +1,60 @@ +.centered-wizard { + max-width: 640px; + margin: 20vh auto; +} + +.centered-wizard * { + font-family: 'IBM Plex Mono', monospace; +} + +.wizard-card h3 { + text-transform: none; + font-size: 20px; + line-height: 32px; + margin: 0 24px 20px; + font-weight: 400; + color: #fff; +} + +.wizard-row { + margin: 16px 24px; +} + +.wizard-row-flex { + display: flex; + gap: 6px; + align-items: end; +} + +.wizard-card p { + font-size: 14px; +} + +.wizard-card p.bp4-text-small { + font-size: 12px; +} + +.wizard-row .bp4-form-group { + margin-bottom: 0; +} + +.wizard-row .bp4-text-small { + font-size: 12px; +} + +.wizard-center { + text-align: center; +} + +.wizard-no-margin { + margin: 0; +} + +.wizard-margin-bottom-8 { + margin-bottom: 8px; +} + +.wizard-side-padding { + padding-left: 24px; + padding-right: 24px; +} \ No newline at end of file diff --git a/daostar-website/src/components/Register/Register.js b/daostar-website/src/components/Register/Register.js new file mode 100644 index 00000000..268357c2 --- /dev/null +++ b/daostar-website/src/components/Register/Register.js @@ -0,0 +1,46 @@ +import React, { useState } from 'react'; +import { Card } from '@blueprintjs/core'; +import RegistrationForm from './RegistrationForm/RegistrationForm'; +import RegistrationReceived from './RegistrationReceived/RegistrationReceived'; +import './Register.css'; + +const mockRegistrationData = { + daoURI: `https://api.daostar.org/immutable/Qme7ss3ARVgxv6rXqVPiikMJ8u2NLgmgszg13pYrDKEoiu`, + daoContractAddress: `0xb794f5ea0ba39494ce839613fffba74279579268`, + daoManagerAddress: `0xb794f5ea0ba39494ce839613fffba74279579268`, + name: "MyDAO", + description: "Demonstrates DAOstar setup process", + membersURI: "ipfs://Qme7ss3ARVgxv6rXqVPiikMJ8u2NLgmgszg13pYrDKEoiu", + proposalsURI: "https://mydao.github.io/proposals", + activityLogURI: "https://mydao.com/activityLog.json", + governanceURI: "https://github.com/MyDAO/MyDAO/governance.md" +} + +const Register = (props) => { + + const [registrationScreen, setRegistrationScreen] = useState('REGISTER'); // REGISTER | REG_RECEIVED + const onToggleRegScreen = (screen) => setRegistrationScreen(screen); + + const [registrationData, setRegistrationData] = useState(null); + + return ( +
+
+ + {registrationScreen === 'REGISTER' && ( + + )} + {registrationScreen === 'REG_RECEIVED' && ( + + )} + +
+
+ + ) +} + +export default Register; \ No newline at end of file diff --git a/daostar-website/src/components/Register/RegistrationForm/FRAMEWORK_URIs.js b/daostar-website/src/components/Register/RegistrationForm/FRAMEWORK_URIs.js new file mode 100644 index 00000000..812cd0e5 --- /dev/null +++ b/daostar-website/src/components/Register/RegistrationForm/FRAMEWORK_URIs.js @@ -0,0 +1,28 @@ +const FRAMEWORK_URIs = { + custom: { + membersURI: '', + activityURI: '', + proposalsURI: '', + governanceURI: '' + }, + moloch: { + membersURI: '', + activityURI: '', + proposalsURI: '', + governanceURI: '' + }, + safe: { + membersURI: '', + activityURI: '', + proposalsURI: '', + governanceURI: '' + }, + daodao: { + membersURI: '', + activityURI: '', + proposalsURI: '', + governanceURI: '' + }, +} + +export default FRAMEWORK_URIs; \ No newline at end of file diff --git a/daostar-website/src/components/Register/RegistrationForm/RegistrationForm.js b/daostar-website/src/components/Register/RegistrationForm/RegistrationForm.js new file mode 100644 index 00000000..70806751 --- /dev/null +++ b/daostar-website/src/components/Register/RegistrationForm/RegistrationForm.js @@ -0,0 +1,332 @@ +import React, { Fragment, useEffect, useState } from 'react'; +import validator from 'validator'; +import useAxios from 'axios-hooks'; +import { Button, Callout, Divider, FormGroup, HTMLSelect, InputGroup } from '@blueprintjs/core'; +import FRAMEWORK_URIs from './FRAMEWORK_URIs'; + +const RegistrationForm = ({ + toggleRegScreen, + setRegistrationData +}) => { + + const [daoContractNetwork, setDaoContractNetwork] = useState('eip155:1'); + const onChangeDaoContractNetwork = (e) => setDaoContractNetwork(e.target.value); + + const [daoContractAddress, setDaoContractAddress] = useState(''); + const onChangeDaoContractAddress = (e) => setDaoContractAddress(e.target.value); + + const [daoName, setDaoName] = useState(''); + const onChangeDaoName = (e) => setDaoName(e.target.value); + + const [daoMembersURI, setDaoMembersURI] = useState(''); + const onChangeMembersURI = (e) => setDaoMembersURI(e.target.value); + + const [daoActivityURI, setDaoActivityURI] = useState(''); + const onChangeActivityURI = (e) => setDaoActivityURI(e.target.value); + + const [daoProposalsURI, setDaoProposalsURI] = useState(''); + const onChangeProposalsURI = (e) => setDaoProposalsURI(e.target.value); + + const [daoContractsRegistryURI, setDaoContractsRegistryURI] = useState(''); + const onChangeContractsRegistryURI = (e) => setDaoContractsRegistryURI(e.target.value); + + const [daoManagerAddress, setDaoManagerAddress] = useState(''); + const onChangeDaoManager = (e) => setDaoManagerAddress(e.target.value); + + const [daoGovURI, setDaoGovURI] = useState(''); + const onChangeDaoGovURI = (e) => setDaoGovURI(e.target.value); + + const [daoFramework, setDaoFramework] = useState('custom'); + const onChangeDaoFramework = (e) => { + setDaoFramework(e.target.value); + // if the user chooses a DAO framework, default the URIs to framework-specific values + setDaoMembersURI(FRAMEWORK_URIs[e.target.value].membersURI); + setDaoActivityURI(FRAMEWORK_URIs[e.target.value].activityURI); + setDaoProposalsURI(FRAMEWORK_URIs[e.target.value].proposalsURI); + setDaoGovURI(FRAMEWORK_URIs[e.target.value].governanceURI); + } + + const [registrationError, setRegError] = useState(null); + + const [validationErrors, setErrors] = useState(null); + + const [ + { + data: registeredData, + loading: sendingRegistration, + error: registerError + }, + executeRegistration + ] = useAxios( + { + url: `${process.env.REACT_APP_API_URL}/immutable`, + method: 'POST' + }, + { manual: true } + ) + + // display an error if the server responds with an error + useEffect(() => { + if (registerError) { + switch (registerError.response.status) { + case 409: setRegError(`That DAO has already been registered`); break; + default: setRegError(`Something's not right – try again later`); + } + + } + }, [registerError]) + + const onRegister = () => { + let errors = []; + if (!validator.isEthereumAddress(daoContractAddress)) errors.push('Contract address must be a valid ethereum address'); + if (daoName === '') errors.push(`DAO must have a name`); + if (daoManagerAddress && !validator.isEthereumAddress(daoManagerAddress)) errors.push('Manager address must be a valid ethereum address'); + if (daoGovURI !== '' && !validator.isURL(daoGovURI)) errors.push('Governance URI must be a valid URI'); + if (!validator.isURL(daoMembersURI)) errors.push(`Members URI must be a valid URI`); + if (!validator.isURL(daoActivityURI)) errors.push(`Activity Log URI must be a valid URI`); + if (!validator.isURL(daoProposalsURI)) errors.push(`Proposals URI must be a valid URI`); + if (daoContractsRegistryURI !== '' && !validator.isURL(daoContractsRegistryURI)) errors.push(`Contracts Registry URI must be a valid URI`); + + if (errors.length > 0) { + setErrors(errors); + window.scrollTo(0, 0); + } + if (errors.length === 0) { + let registrationData = { + data: { + name: daoName, + governanceURI: daoGovURI, + } + } + if (daoFramework === 'custom') { + registrationData.data.membersURI = daoMembersURI; + registrationData.data.proposalsURI = daoProposalsURI; + registrationData.data.activityLogURI = daoActivityURI; + registrationData.data.contractsRegistryURI = daoContractsRegistryURI; + } + executeRegistration({ + data: registrationData + }).then(response => { + setRegistrationData({ + daoURI: response.data.url, + daoContractAddress: daoContractAddress + }) + toggleRegScreen('REG_RECEIVED'); + }); + } + } + + const EthNetworksSelect = ( + + ) + + const FrameworkSelect = ( + + ) + + const errorCallout = validationErrors ? ( + +

Please address the following issues:

+
    + {validationErrors.map((error, i) => { + return
  • {error}
  • + })} +
+
+ ) : null; + + return ( + +

Register your DAO

+ {validationErrors && ( + + +
+ {errorCallout} +
+
+ )} + +
+ + {EthNetworksSelect} + + +
+
+ + + +
+
+ + {FrameworkSelect} + +
+
+ +
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+ + + +
+
+ + + +
+ + {registrationError && ( +
+ + {registrationError} + +
+ )} +
+
+
+ ) +} + +export default RegistrationForm; \ No newline at end of file diff --git a/daostar-website/src/components/Register/RegistrationReceived/RegistrationReceived.js b/daostar-website/src/components/Register/RegistrationReceived/RegistrationReceived.js new file mode 100644 index 00000000..993586c4 --- /dev/null +++ b/daostar-website/src/components/Register/RegistrationReceived/RegistrationReceived.js @@ -0,0 +1,122 @@ +import React, { Fragment } from 'react'; +import { Button, Divider, FormGroup, TextArea } from '@blueprintjs/core'; +import { useConnectModal } from '@web3modal/react'; +import { ethers } from 'ethers'; +import RegistrationContract from '../../../abi/RegistrationContract'; +import CopyField from '../../ui/CopyField/CopyField'; + +const RegistrationReceived = ({ + daoURI, + daoContractAddress, + isUpdate = false +}) => { + + const { isOpen, open } = useConnectModal(); + const factoryContracts = { + mainNet: `TBD`, + goerli: `0x5ef59b7cDe41b744f36b6e07fEF230884F800529` + } + + const regContract = new ethers.Contract(`0x5ef59b7cDe41b744f36b6e07fEF230884F800529`, RegistrationContract); + const salt = `0x2000000000000000000000000000000000000000000000000000000000000000`; // TODO: generate salt + const managerExample = `0x5ef59b7cDe41b744f36b6e07fEF230884F800529`; + const contracts = []; + const bytes = []; + const daoIPFS_URI = `ipfs://${daoURI.substring(daoURI.indexOf(`immutable/`) + 10)}`; + console.log('ipfs', daoIPFS_URI); + const regData = [ + salt, + daoIPFS_URI, + managerExample, + contracts, + bytes + ] + const rawRegData = regContract.interface.encodeFunctionData("summonRegistration", [...regData]); + + return ( + +

{isUpdate ? 'Updated registration received' : 'Registration received!'}

+ +
+

+ Your DAO URI has been created. +

+
+ +
+

+ To complete registration, propose this transaction to your DAO: +

+
+ +
+

+ Or, manually copy transaction to your DAO: +

+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ +