diff --git a/.github/workflows/screenshots.yml b/.github/workflows/screenshots.yml index 3ae0293..268a4a4 100644 --- a/.github/workflows/screenshots.yml +++ b/.github/workflows/screenshots.yml @@ -1,7 +1,7 @@ name: Take screenshots on: schedule: - - cron: 5 0 * * * + - cron: 0 0 * * * workflow_dispatch: jobs: @@ -9,16 +9,16 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - name: Use Node.js 14.x + - name: Use Node.js 16.x uses: actions/setup-node@v2 with: - node-version: "14" - cache: "npm" + node-version: "16" - run: npm install - name: Take screenshots id: screenshots run: npm run screenshots - name: Commit screenshots + if: ${{ steps.screenshots.outputs.should-commit == 'true' }} env: LATEST_VERSION: ${{ steps.screenshots.outputs.latest-version }} run: | diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml deleted file mode 100644 index e7d6a21..0000000 --- a/.github/workflows/update.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Update to latest version from Data Dragon -on: - schedule: - - cron: 0 0 * * * - workflow_dispatch: - -jobs: - update: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Use Node.js 14.x - uses: actions/setup-node@v2 - with: - node-version: "14" - cache: "npm" - - run: npm install - - name: Download latest version - id: download - run: npm run update - - name: Commit latest version - env: - LATEST_VERSION: ${{ steps.download.outputs.latest-version }} - run: | - git config user.name kristiandrex - git config user.email cristiandrestorres@gmail.com - git add -A - git commit -m "Update to LoL version $LATEST_VERSION" - git push diff --git a/src/assets/arrow-left.svg b/assets/arrow-left.svg similarity index 100% rename from src/assets/arrow-left.svg rename to assets/arrow-left.svg diff --git a/src/assets/close.svg b/assets/close.svg similarity index 100% rename from src/assets/close.svg rename to assets/close.svg diff --git a/src/assets/github.svg b/assets/github.svg similarity index 100% rename from src/assets/github.svg rename to assets/github.svg diff --git a/src/assets/search.svg b/assets/search.svg similarity index 100% rename from src/assets/search.svg rename to assets/search.svg diff --git a/components/BagdeNew.js b/components/BagdeNew.js new file mode 100644 index 0000000..df5e858 --- /dev/null +++ b/components/BagdeNew.js @@ -0,0 +1,18 @@ +/** + * + * @param {{show: boolean, theme: string}} props + * @returns + */ +function BadgeNew({ show, theme }) { + if (!show) { + return null; + } + + return ( + + NEW + + ); +} + +export default BadgeNew; diff --git a/src/components/Champions.js b/components/Champions.js similarity index 95% rename from src/components/Champions.js rename to components/Champions.js index f386cb7..94622c6 100644 --- a/src/components/Champions.js +++ b/components/Champions.js @@ -39,12 +39,12 @@ function Champions({ champions, skip }) { const items = chunckChampions(champions, chunkSize); return ( -
+ <>
{items}
-
+ ); } diff --git a/src/components/Header.js b/components/Header.js similarity index 100% rename from src/components/Header.js rename to components/Header.js diff --git a/components/LoadingImage.js b/components/LoadingImage.js new file mode 100644 index 0000000..da45726 --- /dev/null +++ b/components/LoadingImage.js @@ -0,0 +1,30 @@ +import { cloneElement, useRef, useState, useEffect } from "react"; +import styles from "@/styles/Thumbnail.module.css"; + +function LoadingImage({ children }) { + const [loading, setLoading] = useState(true); + const [width, setWidth] = useState(0); + const [height, setHeight] = useState(0); + const ref = useRef(); + + const handleLoad = () => setLoading(false); + + useEffect(() => { + setWidth(Number(ref.current?.width)); + setHeight(Number(ref.current?.height)); + }, []); + + return ( +
+ {loading && ( + + )} + {cloneElement(children, { ref, onLoad: handleLoad })} +
+ ); +} + +export default LoadingImage; diff --git a/src/components/Search.js b/components/Search.js similarity index 100% rename from src/components/Search.js rename to components/Search.js diff --git a/components/Thumbnail.js b/components/Thumbnail.js new file mode 100644 index 0000000..9f04b93 --- /dev/null +++ b/components/Thumbnail.js @@ -0,0 +1,33 @@ +import { memo } from "react"; +import Link from "next/link"; +import BadgeNew from "@/components/BagdeNew"; +import styles from "@/styles/Thumbnail.module.css"; + +/** + * + * @param {{champion: IChampion}} props + */ +function Thumbnail({ champion }) { + return ( +
+ + + +
+ {" "} + {champion.name} +
+ {champion.name} +
+ +
+ ); +} + +export default memo(Thumbnail, (a, b) => a.champion.id === b.champion.id); diff --git a/src/context/theme.js b/context/theme.js similarity index 76% rename from src/context/theme.js rename to context/theme.js index 2be111e..ae6d5fe 100644 --- a/src/context/theme.js +++ b/context/theme.js @@ -1,4 +1,4 @@ -import { createContext, useContext, useState } from "react"; +import { createContext, useCallback, useContext, useState } from "react"; const DEFAULT_COLOR = "#ffd369"; @@ -7,9 +7,9 @@ const ThemeContext = createContext(); export function ThemeProvider({ children }) { const [theme, setTheme] = useState(DEFAULT_COLOR); - const setValue = (color) => { + const setValue = useCallback((color) => { setTheme(color || DEFAULT_COLOR); - }; + }, []); return ( diff --git a/src/hooks/useColumnCount.js b/hooks/useColumnCount.js similarity index 100% rename from src/hooks/useColumnCount.js rename to hooks/useColumnCount.js diff --git a/src/hooks/useObserver.js b/hooks/useObserver.js similarity index 100% rename from src/hooks/useObserver.js rename to hooks/useObserver.js diff --git a/hooks/useVibrant.js b/hooks/useVibrant.js new file mode 100644 index 0000000..c7d07c4 --- /dev/null +++ b/hooks/useVibrant.js @@ -0,0 +1,24 @@ +import { useEffect, useState } from "react"; + +/** + * + * @param {string} src + * @returns {string?} + */ +function useVibrant(src) { + const [color, setColor] = useState(); + + useEffect(() => { + import("node-vibrant/dist/vibrant").then((module) => { + const Vibrant = module.default; + + Vibrant.from(src, { quality: 1 }) + .getPalette() + .then((palette) => setColor(palette.Vibrant.hex)); + }); + }, [src]); + + return color; +} + +export default useVibrant; diff --git a/src/index.d.ts b/index.d.ts similarity index 84% rename from src/index.d.ts rename to index.d.ts index 4c55f6c..f0a7392 100644 --- a/src/index.d.ts +++ b/index.d.ts @@ -16,4 +16,9 @@ declare global { thumbnail: string; }; } + + type Versions = { + latest: string; + previous: string; + }; } diff --git a/jsconfig.json b/jsconfig.json index 17f21fb..133ad5f 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -2,8 +2,7 @@ "compilerOptions": { "baseUrl": ".", "paths": { - "@/*": ["src/*"], - "@/public/*": ["public/*"] + "@/*": ["*"] } } } diff --git a/package-lock.json b/package-lock.json index 8948373..dba52f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,8656 @@ { "name": "league-of-react", "version": "3.4.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "league-of-react", + "version": "3.4.0", + "dependencies": { + "@actions/core": "^1.4.0", + "@svgr/webpack": "^5.5.0", + "@testing-library/jest-dom": "^5.11.9", + "@testing-library/react": "^11.2.3", + "@testing-library/user-event": "^12.6.0", + "chalk": "^4.1.2", + "lodash": "^4.17.21", + "next": "^11.0.1", + "node-fetch": "^2.6.1", + "node-vibrant": "^3.2.1-alpha.1", + "puppeteer": "^10.4.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "web-vitals": "^0.2.4" + }, + "devDependencies": { + "eslint": "^7.17.0", + "eslint-config-next": "^11.0.1" + } + }, + "node_modules/@actions/core": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.4.0.tgz", + "integrity": "sha512-CGx2ilGq5i7zSLgiiGUtBCxhRRxibJYU6Fim0Q1Wg2aQL2LTnF27zbqZOrxfvFQ55eSBW0L8uVStgtKMpa0Qlg==" + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", + "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz", + "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==", + "dependencies": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helpers": "^7.14.6", + "@babel/parser": "^7.14.6", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dependencies": { + "@babel/highlight": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", + "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "dependencies": { + "@babel/types": "^7.14.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", + "dependencies": { + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", + "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", + "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", + "dependencies": { + "@babel/compat-data": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz", + "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", + "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "regexpu-core": "^4.7.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", + "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz", + "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==", + "dependencies": { + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "dependencies": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "dependencies": { + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", + "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "dependencies": { + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", + "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", + "dependencies": { + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "dependencies": { + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", + "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", + "dependencies": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-simple-access": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "dependencies": { + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz", + "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-wrap-function": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", + "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", + "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", + "dependencies": { + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz", + "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==", + "dependencies": { + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "dependencies": { + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz", + "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==", + "dependencies": { + "@babel/helper-function-name": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz", + "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==", + "dependencies": { + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/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==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/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==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", + "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz", + "integrity": "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz", + "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", + "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz", + "integrity": "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", + "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", + "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", + "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", + "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", + "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", + "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", + "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", + "dependencies": { + "@babel/compat-data": "^7.14.7", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", + "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", + "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", + "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", + "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", + "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", + "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", + "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", + "dependencies": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", + "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz", + "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz", + "integrity": "sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", + "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", + "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", + "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", + "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", + "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", + "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", + "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", + "dependencies": { + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", + "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", + "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", + "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", + "dependencies": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz", + "integrity": "sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==", + "dependencies": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz", + "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", + "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz", + "integrity": "sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", + "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", + "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", + "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", + "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.14.5.tgz", + "integrity": "sha512-NBqLEx1GxllIOXJInJAQbrnwwYJsV3WaMHIcOwD8rhYS0AabTWn7kHdHgPgu5RmHLU0q4DMxhAMu8ue/KampgQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.5.tgz", + "integrity": "sha512-07aqY1ChoPgIxsuDviptRpVkWCSbXWmzQqcgy65C6YSFOfPFvb/DX3bBRHh7pCd/PMEEYHYWUTSVkCbkVainYQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.5.tgz", + "integrity": "sha512-7RylxNeDnxc1OleDm0F5Q/BSL+whYRbOAR+bwgCxIr0L32v7UFh/pz1DLMZideAUxKT6eMoS2zQH6fyODLEi8Q==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-jsx": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.14.5.tgz", + "integrity": "sha512-rdwG/9jC6QybWxVe2UVOa7q6cnTpw8JRRHOxntG/h6g/guAOe6AhtQHJuJh5FwmnXIT1bdm5vC2/5huV8ZOorQ==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.14.5.tgz", + "integrity": "sha512-3X4HpBJimNxW4rhUy/SONPyNQHp5YRr0HhJdT2OH1BRp0of7u3Dkirc7x9FRJMKMqTBI079VZ1hzv7Ouuz///g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", + "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", + "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", + "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", + "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", + "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", + "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", + "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", + "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", + "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.7.tgz", + "integrity": "sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA==", + "dependencies": { + "@babel/compat-data": "^7.14.7", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-async-generator-functions": "^7.14.7", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-proposal-class-static-block": "^7.14.5", + "@babel/plugin-proposal-dynamic-import": "^7.14.5", + "@babel/plugin-proposal-export-namespace-from": "^7.14.5", + "@babel/plugin-proposal-json-strings": "^7.14.5", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", + "@babel/plugin-proposal-numeric-separator": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.14.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-private-methods": "^7.14.5", + "@babel/plugin-proposal-private-property-in-object": "^7.14.5", + "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", + "@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-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.14.5", + "@babel/plugin-transform-async-to-generator": "^7.14.5", + "@babel/plugin-transform-block-scoped-functions": "^7.14.5", + "@babel/plugin-transform-block-scoping": "^7.14.5", + "@babel/plugin-transform-classes": "^7.14.5", + "@babel/plugin-transform-computed-properties": "^7.14.5", + "@babel/plugin-transform-destructuring": "^7.14.7", + "@babel/plugin-transform-dotall-regex": "^7.14.5", + "@babel/plugin-transform-duplicate-keys": "^7.14.5", + "@babel/plugin-transform-exponentiation-operator": "^7.14.5", + "@babel/plugin-transform-for-of": "^7.14.5", + "@babel/plugin-transform-function-name": "^7.14.5", + "@babel/plugin-transform-literals": "^7.14.5", + "@babel/plugin-transform-member-expression-literals": "^7.14.5", + "@babel/plugin-transform-modules-amd": "^7.14.5", + "@babel/plugin-transform-modules-commonjs": "^7.14.5", + "@babel/plugin-transform-modules-systemjs": "^7.14.5", + "@babel/plugin-transform-modules-umd": "^7.14.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7", + "@babel/plugin-transform-new-target": "^7.14.5", + "@babel/plugin-transform-object-super": "^7.14.5", + "@babel/plugin-transform-parameters": "^7.14.5", + "@babel/plugin-transform-property-literals": "^7.14.5", + "@babel/plugin-transform-regenerator": "^7.14.5", + "@babel/plugin-transform-reserved-words": "^7.14.5", + "@babel/plugin-transform-shorthand-properties": "^7.14.5", + "@babel/plugin-transform-spread": "^7.14.6", + "@babel/plugin-transform-sticky-regex": "^7.14.5", + "@babel/plugin-transform-template-literals": "^7.14.5", + "@babel/plugin-transform-typeof-symbol": "^7.14.5", + "@babel/plugin-transform-unicode-escapes": "^7.14.5", + "@babel/plugin-transform-unicode-regex": "^7.14.5", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.14.5", + "babel-plugin-polyfill-corejs2": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-regenerator": "^0.2.2", + "core-js-compat": "^3.15.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dependencies": { + "@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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.14.5.tgz", + "integrity": "sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-transform-react-display-name": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.5", + "@babel/plugin-transform-react-jsx-development": "^7.14.5", + "@babel/plugin-transform-react-pure-annotations": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz", + "integrity": "sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==", + "dependencies": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dependencies": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dependencies": { + "@babel/highlight": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", + "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", + "dependencies": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.14.7", + "@babel/types": "^7.14.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dependencies": { + "@babel/highlight": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz", + "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@hapi/accept": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", + "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", + "dependencies": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "node_modules/@hapi/accept/node_modules/@hapi/hoek": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", + "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + }, + "node_modules/@hapi/boom": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.3.tgz", + "integrity": "sha512-RlrGyZ603hE/eRTZtTltocRm50HHmrmL3kGOP0SQ9MasazlW1mt/fkv4C5P/6rnpFXjwld/POFX1C8tMZE3ldg==", + "dependencies": { + "@hapi/hoek": "9.x.x" + } + }, + "node_modules/@hapi/boom/node_modules/@hapi/hoek": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", + "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, + "node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jimp/bmp": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.16.1.tgz", + "integrity": "sha512-iwyNYQeBawrdg/f24x3pQ5rEx+/GwjZcCXd3Kgc+ZUd+Ivia7sIqBsOnDaMZdKCBPlfW364ekexnlOqyVa0NWg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "bmp-js": "^0.1.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/core": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.16.1.tgz", + "integrity": "sha512-la7kQia31V6kQ4q1kI/uLimu8FXx7imWVajDGtwUG8fzePLWDFJyZl0fdIXVCL1JW2nBcRHidUot6jvlRDi2+g==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "^0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + } + }, + "node_modules/@jimp/core/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/@jimp/custom": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.16.1.tgz", + "integrity": "sha512-DNUAHNSiUI/j9hmbatD6WN/EBIyeq4AO0frl5ETtt51VN1SvE4t4v83ZA/V6ikxEf3hxLju4tQ5Pc3zmZkN/3A==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/core": "^0.16.1" + } + }, + "node_modules/@jimp/gif": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.16.1.tgz", + "integrity": "sha512-r/1+GzIW1D5zrP4tNrfW+3y4vqD935WBXSc8X/wm23QTY9aJO9Lw6PEdzpYCEY+SOklIFKaJYUAq/Nvgm/9ryw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "gifwrap": "^0.9.2", + "omggif": "^1.0.9" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/jpeg": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.16.1.tgz", + "integrity": "sha512-8352zrdlCCLFdZ/J+JjBslDvml+fS3Z8gttdml0We759PnnZGqrnPRhkOEOJbNUlE+dD4ckLeIe6NPxlS/7U+w==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "jpeg-js": "0.4.2" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-resize": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.16.1.tgz", + "integrity": "sha512-u4JBLdRI7dargC04p2Ha24kofQBk3vhaf0q8FwSYgnCRwxfvh2RxvhJZk9H7Q91JZp6wgjz/SjvEAYjGCEgAwQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/png": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.16.1.tgz", + "integrity": "sha512-iyWoCxEBTW0OUWWn6SveD4LePW89kO7ZOy5sCfYeDM/oTPLpR8iMIGvZpZUz1b8kvzFr27vPst4E5rJhGjwsdw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "pngjs": "^3.3.3" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/tiff": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.16.1.tgz", + "integrity": "sha512-3K3+xpJS79RmSkAvFMgqY5dhSB+/sxhwTFA9f4AVHUK0oKW+u6r52Z1L0tMXHnpbAdR9EJ+xaAl2D4x19XShkQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "utif": "^2.0.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/types": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.16.1.tgz", + "integrity": "sha512-g1w/+NfWqiVW4CaXSJyD28JQqZtm2eyKMWPhBBDCJN9nLCN12/Az0WFF3JUAktzdsEC2KRN2AqB1a2oMZBNgSQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/bmp": "^0.16.1", + "@jimp/gif": "^0.16.1", + "@jimp/jpeg": "^0.16.1", + "@jimp/png": "^0.16.1", + "@jimp/tiff": "^0.16.1", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/utils": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.16.1.tgz", + "integrity": "sha512-8fULQjB0x4LzUSiSYG6ZtQl355sZjxbv8r9PPAuYHzS9sGiSHJQavNqK/nKnpDsVkU88/vRGcE7t3nMU0dEnVw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "regenerator-runtime": "^0.13.3" + } + }, + "node_modules/@next/env": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-11.0.1.tgz", + "integrity": "sha512-yZfKh2U6R9tEYyNUrs2V3SBvCMufkJ07xMH5uWy8wqcl5gAXoEw6A/1LDqwX3j7pUutF9d1ZxpdGDA3Uag+aQQ==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-11.0.1.tgz", + "integrity": "sha512-UzdX3y6XSrj9YuASUb/p4sRvfjP2klj2YgIOfMwrWoLTTPJQMh00hREB9Ftr7m7RIxjVSAaaLXIRLdxvq948GA==", + "dev": true + }, + "node_modules/@next/polyfill-module": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-11.0.1.tgz", + "integrity": "sha512-Cjs7rrKCg4CF4Jhri8PCKlBXhszTfOQNl9AjzdNy4K5jXFyxyoSzuX2rK4IuoyE+yGp5A3XJCBEmOQ4xbUp9Mg==" + }, + "node_modules/@next/react-dev-overlay": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-11.0.1.tgz", + "integrity": "sha512-lvUjMVpLsgzADs9Q8wtC5LNqvfdN+M0BDMSrqr04EDWAyyX0vURHC9hkvLbyEYWyh+WW32pwjKBXdkMnJhoqMg==", + "dependencies": { + "@babel/code-frame": "7.12.11", + "anser": "1.4.9", + "chalk": "4.0.0", + "classnames": "2.2.6", + "css.escape": "1.5.1", + "data-uri-to-buffer": "3.0.1", + "platform": "1.3.6", + "shell-quote": "1.7.2", + "source-map": "0.8.0-beta.0", + "stacktrace-parser": "0.1.10", + "strip-ansi": "6.0.0" + }, + "peerDependencies": { + "react": "^17.0.2", + "react-dom": "^17.0.2" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/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==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/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==" + }, + "node_modules/@next/react-dev-overlay/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/@next/react-refresh-utils": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-11.0.1.tgz", + "integrity": "sha512-K347DM6Z7gBSE+TfUaTTceWvbj0B6iNAsFZXbFZOlfg3uyz2sbKpzPYYFocCc27yjLaS8OfR8DEdS2mZXi8Saw==", + "peerDependencies": { + "react-refresh": "0.8.3", + "webpack": "^4 || ^5" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.0.6.tgz", + "integrity": "sha512-Myxw//kzromB9yWgS8qYGuGVf91oBUUJpNvy5eM50sqvmKLbKjwLxohJnkWGTeeI9v9IBMtPLxz5Gc60FIfvCA==", + "dev": true + }, + "node_modules/@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==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@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==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@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==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@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==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@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==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@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==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@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==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@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==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@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==", + "dependencies": { + "@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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@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==", + "dependencies": { + "@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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@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==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "dependencies": { + "@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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@testing-library/dom": { + "version": "7.29.4", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.29.4.tgz", + "integrity": "sha512-CtrJRiSYEfbtNGtEsd78mk1n1v2TUbeABlNIcOCJdDfkN5/JTOwQEbbQpoSRxGqzcWPgStMvJ4mNolSuBRv1NA==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^4.2.2", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.4", + "lz-string": "^1.4.4", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.11.9", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.11.9.tgz", + "integrity": "sha512-Mn2gnA9d1wStlAIT2NU8J15LNob0YFBVjs2aEQ3j8rsfRQo+lAs7/ui1i2TGaJjapLmuNPLTsrm+nPjmZDwpcQ==", + "dependencies": { + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^4.2.2", + "chalk": "^3.0.0", + "css": "^3.0.0", + "css.escape": "^1.5.1", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/@testing-library/react": { + "version": "11.2.3", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-11.2.3.tgz", + "integrity": "sha512-BirBUGPkTW28ULuCwIbYo0y2+0aavHczBT6N9r3LrsswEW3pg25l1wgoE7I8QBIy1upXWkwKpYdWY7NYYP0Bxw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^7.28.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@testing-library/user-event": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.6.0.tgz", + "integrity": "sha512-FNEH/HLmOk5GO70I52tKjs7WvGYckeE/SrnLX/ip7z2IGbffyd5zOUM1tZ10vsTphqm+VbDFI0oaXu0wcfQsAQ==", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@types/aria-query": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.1.tgz", + "integrity": "sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + }, + "node_modules/@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==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "26.0.20", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", + "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "dependencies": { + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" + } + }, + "node_modules/@types/node": { + "version": "14.14.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz", + "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==" + }, + "node_modules/@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==" + }, + "node_modules/@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==" + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.9.5", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.5.tgz", + "integrity": "sha512-ggn3ws+yRbOHog9GxnXiEZ/35Mow6YtPZpd7Z5mKDeZS/o7zx3yAle0ov/wjhVB5QT4N2Dt+GNoGCdqkBGCajQ==", + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/yargs": { + "version": "15.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz", + "integrity": "sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", + "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" + }, + "node_modules/@types/yauzl": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.2.tgz", + "integrity": "sha512-Q0gSCN51eikAgFGY+gnd5p9bhhCUAl0ERMiDKrTzpSoMYRubdB8MJrTTR/BBii8z+iFwz8oihxd0RAdP4l8w8w==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "4.28.2", + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/typescript-estree": "4.28.2", + "debug": "^4.3.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz", + "integrity": "sha512-MqbypNjIkJFEFuOwPWNDjq0nqXAKZvDNNs9yNseoGBB1wYfz1G0WHC2AVOy4XD7di3KCcW3+nhZyN6zruqmp2A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/visitor-keys": "4.28.2" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.2.tgz", + "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz", + "integrity": "sha512-86lLstLvK6QjNZjMoYUBMMsULFw0hPHJlk1fzhAVoNjDBuPVxiwvGuPQq3fsBMCxuDJwmX87tM/AXoadhHRljg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/visitor-keys": "4.28.2", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz", + "integrity": "sha512-aT2B4PLyyRDUVUafXzpZFoc0C9t0za4BJAKP5sgWIhG+jHECQZUEjuQSCIwZdiJJ4w4cgu5r3Kh20SOdtEBl0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.28.2", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vibrant/color": { + "version": "3.2.1-alpha.1", + "resolved": "https://registry.npmjs.org/@vibrant/color/-/color-3.2.1-alpha.1.tgz", + "integrity": "sha512-cvm+jAPwao2NerTr3d1JttYyLhp3eD/AQBeevxF7KT6HctToWZCwr2AeTr003/wKgbjzdOV1qySnbyOeu+R+Jw==" + }, + "node_modules/@vibrant/core": { + "version": "3.2.1-alpha.1", + "resolved": "https://registry.npmjs.org/@vibrant/core/-/core-3.2.1-alpha.1.tgz", + "integrity": "sha512-X9Oa9WfPEQnZ6L+5dLRlh+IlsxJkYTw9b/g3stFKoNXbVRKCeXHmH48l7jIBBOg3VcXOGUdsYBqsTwPNkIveaA==", + "dependencies": { + "@vibrant/color": "^3.2.1-alpha.1", + "@vibrant/generator": "^3.2.1-alpha.1", + "@vibrant/image": "^3.2.1-alpha.1", + "@vibrant/quantizer": "^3.2.1-alpha.1", + "@vibrant/types": "^3.2.1-alpha.1", + "@vibrant/worker": "^3.2.1-alpha.1" + } + }, + "node_modules/@vibrant/generator": { + "version": "3.2.1-alpha.1", + "resolved": "https://registry.npmjs.org/@vibrant/generator/-/generator-3.2.1-alpha.1.tgz", + "integrity": "sha512-luS5YvMhwMqG01YTj1dJ+cmkuIw1VCByOR6zIaCOwQqI/mcOs88JBWcA1r2TywJTOPlVpjfnDvAlyaKBKh4dMA==", + "dependencies": { + "@vibrant/color": "^3.2.1-alpha.1", + "@vibrant/types": "^3.2.1-alpha.1" + } + }, + "node_modules/@vibrant/generator-default": { + "version": "3.2.1-alpha.1", + "resolved": "https://registry.npmjs.org/@vibrant/generator-default/-/generator-default-3.2.1-alpha.1.tgz", + "integrity": "sha512-BWnQhDaz92UhyHnpdAzKXHQecY+jvyMXtzjKYbveFxThm6+HVoLjwONlbck7oyOpFzV2OM7V11XuR85BxaHvjw==", + "dependencies": { + "@vibrant/color": "^3.2.1-alpha.1", + "@vibrant/generator": "^3.2.1-alpha.1" + } + }, + "node_modules/@vibrant/image": { + "version": "3.2.1-alpha.1", + "resolved": "https://registry.npmjs.org/@vibrant/image/-/image-3.2.1-alpha.1.tgz", + "integrity": "sha512-4aF5k79QfyhZOqRovJpbnIjWfe3uuWhY8voqVdd4/qgu4o70/AwVlM+pYmCaJVzI45VWNWWHYA5QlYuKsXnBqQ==", + "dependencies": { + "@vibrant/color": "^3.2.1-alpha.1", + "@vibrant/types": "^3.2.1-alpha.1" + } + }, + "node_modules/@vibrant/image-browser": { + "version": "3.2.1-alpha.1", + "resolved": "https://registry.npmjs.org/@vibrant/image-browser/-/image-browser-3.2.1-alpha.1.tgz", + "integrity": "sha512-6xWvQfB20sE6YtCWylgEAHuee3iD8h3aFIDbCS2yj7jIelKcYTrrp5jg2d2BhOOB6pC5JzF+QfpCrm0DmAIlgQ==", + "dependencies": { + "@vibrant/image": "^3.2.1-alpha.1" + } + }, + "node_modules/@vibrant/image-node": { + "version": "3.2.1-alpha.1", + "resolved": "https://registry.npmjs.org/@vibrant/image-node/-/image-node-3.2.1-alpha.1.tgz", + "integrity": "sha512-/Io/Rpo4EkO6AhaXdcxUXkbOFhSFtjm0LSAM4c0AyGA5EbC8PyZqjk8b11bQAEMCaYaweFQfTdGD7oVbXe21CQ==", + "dependencies": { + "@jimp/custom": "^0.16.1", + "@jimp/plugin-resize": "^0.16.1", + "@jimp/types": "^0.16.1", + "@vibrant/image": "^3.2.1-alpha.1" + } + }, + "node_modules/@vibrant/quantizer": { + "version": "3.2.1-alpha.1", + "resolved": "https://registry.npmjs.org/@vibrant/quantizer/-/quantizer-3.2.1-alpha.1.tgz", + "integrity": "sha512-iHnPx/+n4iLtYLm1GClSfyg2fFbMatFG0ipCyp9M6tXNIPAg+pSvUJSGBnVnH7Nl/bR8Gkkj1h0pJ4RsKcdIrQ==", + "dependencies": { + "@vibrant/color": "^3.2.1-alpha.1", + "@vibrant/image": "^3.2.1-alpha.1", + "@vibrant/types": "^3.2.1-alpha.1" + } + }, + "node_modules/@vibrant/quantizer-mmcq": { + "version": "3.2.1-alpha.1", + "resolved": "https://registry.npmjs.org/@vibrant/quantizer-mmcq/-/quantizer-mmcq-3.2.1-alpha.1.tgz", + "integrity": "sha512-Wuk9PTZtxr8qsWTcgP6lcrrmrq36syVwxf+BUxdgQYntBcQ053SaN34lVGOJ0WPdK5vABoxbYljhceCgiILtZw==", + "dependencies": { + "@vibrant/color": "^3.2.1-alpha.1", + "@vibrant/image": "^3.2.1-alpha.1", + "@vibrant/quantizer": "^3.2.1-alpha.1" + } + }, + "node_modules/@vibrant/types": { + "version": "3.2.1-alpha.1", + "resolved": "https://registry.npmjs.org/@vibrant/types/-/types-3.2.1-alpha.1.tgz", + "integrity": "sha512-ts9u7nsrENoYI5s0MmPOeY5kCLFKvQndKVDOPFCbTA0z493uhDp8mpiQhjFYTf3kPbS04z9zbHLE2luFC7x4KQ==" + }, + "node_modules/@vibrant/worker": { + "version": "3.2.1-alpha.1", + "resolved": "https://registry.npmjs.org/@vibrant/worker/-/worker-3.2.1-alpha.1.tgz", + "integrity": "sha512-mtSlBdHkFNr4FOnMtqtHJxy9z5AsUcZzGlpiHzvWOoaoN9lNTDPwxOBd0q4VTYWuGPrIm6Fuq5m7aRbLv7KqiQ==", + "dependencies": { + "@vibrant/types": "^3.2.1-alpha.1" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/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==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/anser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz", + "integrity": "sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==" + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/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==", + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", + "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/ast-types": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", + "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", + "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.2.3.tgz", + "integrity": "sha512-pXnVMfJKSIWU2Ml4JHP7pZEPIrgBO1Fd3WGx+fPBsS+KRGhE4vxooD8XBGWbQOIVSZsVK7pUDBBkCicNu80yzQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", + "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.2", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz", + "integrity": "sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.2.2", + "core-js-compat": "^3.14.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", + "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.2.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/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": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" + }, + "node_modules/bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "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" + } + }, + "node_modules/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==", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/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==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dependencies": { + "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" + } + }, + "node_modules/browserify-sign/node_modules/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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "dependencies": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001296", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001296.tgz", + "integrity": "sha512-WfrtPEoNSoeATDlf4y3QvkwiELl9GyPLISV5GejTbbQRtQx4LhsXmc9IQ6XCL2d7UxCyEzToEZNMeqR79OUw8Q==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/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==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/node_modules/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==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/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==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/coa/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/coa/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/core-js-compat": { + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.15.2.tgz", + "integrity": "sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ==", + "dependencies": { + "browserslist": "^4.16.6", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-js-pure": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.2.tgz", + "integrity": "sha512-v6zfIQqL/pzTVAbZvYUozsxNfxcFb6Ks3ZfEbuneJl3FW9Jb8F6vLWB6f+qTmAu72msUdyb84V8d/yBFf7FNnw==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dependencies": { + "@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" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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==", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, + "node_modules/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==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/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==", + "dependencies": { + "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" + } + }, + "node_modules/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==", + "dependencies": { + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/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==" + }, + "node_modules/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==", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/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==" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz", + "integrity": "sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw==", + "dev": true + }, + "node_modules/data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.901419", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.901419.tgz", + "integrity": "sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==" + }, + "node_modules/diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz", + "integrity": "sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ==" + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.3.771", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.771.tgz", + "integrity": "sha512-zHMomTqkpnAD9W5rhXE1aiU3ogGFrqWzdvM4C6222SREiqsWQb2w0S7P2Ii44qCaGimmAP1z+OydllM438uJyA==" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "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" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/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==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.30.0.tgz", + "integrity": "sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.2", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-next": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-11.0.1.tgz", + "integrity": "sha512-yy63K4Bmy8amE6VMb26CZK6G99cfVX3JaMTvuvmq/LL8/b8vKHcauUZREBTAQ+2DrIvlH4YrFXrkQ1vpYDL9Eg==", + "dev": true, + "dependencies": { + "@next/eslint-plugin-next": "11.0.1", + "@rushstack/eslint-patch": "^1.0.6", + "@typescript-eslint/parser": "^4.20.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-import-resolver-typescript": "^2.4.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-react": "^7.23.1", + "eslint-plugin-react-hooks": "^4.2.0" + }, + "peerDependencies": { + "eslint": "^7.23.0", + "next": ">=10.2.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.4.0.tgz", + "integrity": "sha512-useJKURidCcldRLCNKWemr1fFQL1SzB3G4a0li6lFGvlc5xGe1hY343bvG07cbpCzPuM/lK19FIJB3XGFSkplA==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", + "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.23.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", + "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.1", + "find-up": "^2.0.0", + "has": "^1.0.3", + "is-core-module": "^2.4.0", + "minimatch": "^3.0.4", + "object.values": "^1.1.3", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.9.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-plugin-import/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz", + "integrity": "sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.11.2", + "aria-query": "^4.2.2", + "array-includes": "^3.1.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.0.2", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.6", + "emoji-regex": "^9.0.0", + "has": "^1.0.3", + "jsx-ast-utils": "^3.1.0", + "language-tags": "^1.0.5" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz", + "integrity": "sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.3", + "array.prototype.flatmap": "^1.2.4", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.0.4", + "object.entries": "^1.1.3", + "object.fromentries": "^2.0.4", + "object.values": "^1.1.3", + "prop-types": "^15.7.2", + "resolve": "^2.0.0-next.3", + "string.prototype.matchall": "^4.0.4" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz", + "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/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==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz", + "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-type": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", + "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/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==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", + "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", + "dev": true + }, + "node_modules/foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", + "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-orientation": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-orientation/-/get-orientation-1.1.2.tgz", + "integrity": "sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ==", + "dependencies": { + "stream-parser": "^0.3.1" + } + }, + "node_modules/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==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gifwrap": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.2.tgz", + "integrity": "sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA==", + "dependencies": { + "image-q": "^1.1.1", + "omggif": "^1.0.10" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/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==" + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-q": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/image-q/-/image-q-1.1.1.tgz", + "integrity": "sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY=", + "engines": { + "node": ">=0.9.0" + } + }, + "node_modules/image-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.0.tgz", + "integrity": "sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "node_modules/is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==" + }, + "node_modules/is-generator-function": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", + "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", + "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", + "dependencies": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.0-next.2", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jpeg-js": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.2.tgz", + "integrity": "sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/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==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/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==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", + "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.2", + "object.assign": "^4.1.2" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "dev": true, + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "node_modules/load-bmfont": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", + "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", + "dependencies": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "node_modules/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==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/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==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "node_modules/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==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/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==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nanoid": { + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/next": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/next/-/next-11.0.1.tgz", + "integrity": "sha512-yR7be7asNbvpVNpi6xxEg28wZ7Gqmj1nOt0sABH9qORmF3+pms2KZ7Cng33oK5nqPIzEEFJD0pp2PCe3/ueMIg==", + "dependencies": { + "@babel/runtime": "7.12.5", + "@hapi/accept": "5.0.2", + "@next/env": "11.0.1", + "@next/polyfill-module": "11.0.1", + "@next/react-dev-overlay": "11.0.1", + "@next/react-refresh-utils": "11.0.1", + "assert": "2.0.0", + "ast-types": "0.13.2", + "browserify-zlib": "0.2.0", + "browserslist": "4.16.6", + "buffer": "5.6.0", + "caniuse-lite": "^1.0.30001228", + "chalk": "2.4.2", + "chokidar": "3.5.1", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "cssnano-simple": "2.0.0", + "domain-browser": "4.19.0", + "encoding": "0.1.13", + "etag": "1.8.1", + "find-cache-dir": "3.3.1", + "get-orientation": "1.1.2", + "https-browserify": "1.0.0", + "image-size": "1.0.0", + "jest-worker": "27.0.0-next.5", + "native-url": "0.3.4", + "node-fetch": "2.6.1", + "node-html-parser": "1.4.9", + "node-libs-browser": "^2.2.1", + "os-browserify": "0.3.0", + "p-limit": "3.1.0", + "path-browserify": "1.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "8.2.13", + "process": "0.11.10", + "prop-types": "15.7.2", + "querystring-es3": "0.2.1", + "raw-body": "2.4.1", + "react-is": "17.0.2", + "react-refresh": "0.8.3", + "stream-browserify": "3.0.0", + "stream-http": "3.1.1", + "string_decoder": "1.3.0", + "styled-jsx": "3.3.2", + "timers-browserify": "2.0.12", + "tty-browserify": "0.0.1", + "use-subscription": "1.5.1", + "util": "0.12.3", + "vm-browserify": "1.1.2", + "watchpack": "2.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/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==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/next/node_modules/assert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "dependencies": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "node_modules/next/node_modules/buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/next/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/next/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/next/node_modules/chalk/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/next/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/next/node_modules/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==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/next/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/next/node_modules/cssnano-preset-simple": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssnano-preset-simple/-/cssnano-preset-simple-2.0.0.tgz", + "integrity": "sha512-HkufSLkaBJbKBFx/7aj5HmCK9Ni/JedRQm0mT2qBzMG/dEuJOLnMt2lK6K1rwOOyV4j9aSY+knbW9WoS7BYpzg==", + "dependencies": { + "caniuse-lite": "^1.0.30001202" + }, + "peerDependencies": { + "postcss": "^8.2.1" + } + }, + "node_modules/next/node_modules/cssnano-simple": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssnano-simple/-/cssnano-simple-2.0.0.tgz", + "integrity": "sha512-0G3TXaFxlh/szPEG/o3VcmCwl0N3E60XNb9YZZijew5eIs6fLjJuOPxQd9yEBaX2p/YfJtt49i4vYi38iH6/6w==", + "dependencies": { + "cssnano-preset-simple": "^2.0.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/next/node_modules/domain-browser": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.19.0.tgz", + "integrity": "sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/next/node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/next/node_modules/http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next/node_modules/jest-worker": { + "version": "27.0.0-next.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", + "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/next/node_modules/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==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/next/node_modules/native-url": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/native-url/-/native-url-0.3.4.tgz", + "integrity": "sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA==", + "dependencies": { + "querystring": "^0.2.0" + } + }, + "node_modules/next/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/next/node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/next/node_modules/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==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.13.tgz", + "integrity": "sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ==", + "dependencies": { + "colorette": "^1.2.2", + "nanoid": "^3.1.22", + "source-map": "^0.6.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/next/node_modules/raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/next/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/next/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/next/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/next/node_modules/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==", + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/next/node_modules/stream-http": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", + "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/next/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/next/node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" + }, + "node_modules/next/node_modules/util": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", + "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/next/node_modules/watchpack": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", + "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-html-parser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz", + "integrity": "sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==", + "dependencies": { + "he": "1.2.0" + } + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "node_modules/node-libs-browser/node_modules/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==", + "dependencies": { + "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" + } + }, + "node_modules/node-libs-browser/node_modules/readable-stream/node_modules/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/node-releases": { + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==" + }, + "node_modules/node-vibrant": { + "version": "3.2.1-alpha.1", + "resolved": "https://registry.npmjs.org/node-vibrant/-/node-vibrant-3.2.1-alpha.1.tgz", + "integrity": "sha512-EQergCp7fvbvUCE0VMCBnvaAV0lGWSP8SXLmuWQIBzQK5M5pIwcd9fIOXuzFkJx/8hUiiiLvAzzGDS/bIy2ikA==", + "dependencies": { + "@types/node": "^10.12.18", + "@vibrant/core": "^3.2.1-alpha.1", + "@vibrant/generator-default": "^3.2.1-alpha.1", + "@vibrant/image-browser": "^3.2.1-alpha.1", + "@vibrant/image-node": "^3.2.1-alpha.1", + "@vibrant/quantizer-mmcq": "^3.2.1-alpha.1", + "url": "^0.11.0" + } + }, + "node_modules/node-vibrant/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", + "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz", + "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", + "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" + }, + "node_modules/parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" + }, + "node_modules/parse-bmfont-xml": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", + "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", + "dependencies": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.4.5" + } + }, + "node_modules/parse-headers": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz", + "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==" + }, + "node_modules/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==", + "dependencies": { + "@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" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "node_modules/phin": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", + "dependencies": { + "pngjs": "^3.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/platform": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" + }, + "node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dependencies": { + "ts-pnp": "^1.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==" + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/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==" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "node_modules/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==" + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "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" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-10.4.0.tgz", + "integrity": "sha512-2cP8mBoqnu5gzAVpbZ0fRaobBWZM8GEUF4I1F6WbgHrKV/rz7SX8PG2wMymZgD0wo0UBlg2FBPNxlF/xlqW6+w==", + "hasInstallScript": true, + "dependencies": { + "debug": "4.3.1", + "devtools-protocol": "0.0.901419", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.0", + "node-fetch": "2.6.1", + "pkg-dir": "4.2.0", + "progress": "2.0.1", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.0.0", + "unbzip2-stream": "1.3.3", + "ws": "7.4.6" + }, + "engines": { + "node": ">=10.18.1" + } + }, + "node_modules/puppeteer/node_modules/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==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/puppeteer/node_modules/progress": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", + "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/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==" + }, + "node_modules/react-refresh": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", + "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + }, + "node_modules/regjsparser": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", + "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/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==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", + "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-browserify/node_modules/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==", + "dependencies": { + "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" + } + }, + "node_modules/stream-browserify/node_modules/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-http/node_modules/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==", + "dependencies": { + "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" + } + }, + "node_modules/stream-http/node_modules/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=", + "dependencies": { + "debug": "2" + } + }, + "node_modules/stream-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stream-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" + }, + "node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz", + "integrity": "sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-3.3.2.tgz", + "integrity": "sha512-daAkGd5mqhbBhLd6jYAjYBa9LpxYCzsgo/f6qzPdFxVB8yoGbhxvzQgkC0pfmCVvW3JuAEBn0UzFLBfkHVZG1g==", + "dependencies": { + "@babel/types": "7.8.3", + "babel-plugin-syntax-jsx": "6.18.0", + "convert-source-map": "1.7.0", + "loader-utils": "1.2.3", + "source-map": "0.7.3", + "string-hash": "1.1.3", + "stylis": "3.5.4", + "stylis-rule-sheet": "0.0.10" + }, + "peerDependencies": { + "react": "15.x.x || 16.x.x || 17.x.x" + } + }, + "node_modules/styled-jsx/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/styled-jsx/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/styled-jsx/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/styled-jsx/node_modules/loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/styled-jsx/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/stylis": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", + "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" + }, + "node_modules/stylis-rule-sheet": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "peerDependencies": { + "stylis": "^3.5.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==" + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dependencies": { + "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" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/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==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/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==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/svgo/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/svgo/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", + "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.6.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.1.tgz", + "integrity": "sha512-42VLtQUOLefAvKFAQIxIZDaThq6om/PrfP0CYk3/vn+y4BMNkKnbli8ON2QCiHov4KkzOSJ/xSoBJdayiiYvVQ==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/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==", + "dev": true + }, + "node_modules/tar-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", + "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp": "^0.5.1", + "pump": "^3.0.0", + "tar-stream": "^2.0.0" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timm": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", + "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==" + }, + "node_modules/tinycolor2": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", + "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", + "engines": { + "node": "*" + } + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "engines": { + "node": ">=6" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz", + "integrity": "sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q==", + "dev": true, + "dependencies": { + "json5": "^2.2.0", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", + "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unbzip2-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "node_modules/use-subscription": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", + "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", + "dependencies": { + "object-assign": "^4.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/utif": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "dependencies": { + "pako": "^1.0.5" + } + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "node_modules/web-vitals": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-0.2.4.tgz", + "integrity": "sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg==" + }, + "node_modules/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==", + "dependencies": { + "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" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", + "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", + "dependencies": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.0", + "es-abstract": "^1.18.0-next.1", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, "dependencies": { "@actions/core": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.4.0.tgz", "integrity": "sha512-CGx2ilGq5i7zSLgiiGUtBCxhRRxibJYU6Fim0Q1Wg2aQL2LTnF27zbqZOrxfvFQ55eSBW0L8uVStgtKMpa0Qlg==" }, - "@assemblyscript/loader": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", - "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==" - }, "@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", @@ -1437,7 +10074,8 @@ "@next/react-refresh-utils": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-11.0.1.tgz", - "integrity": "sha512-K347DM6Z7gBSE+TfUaTTceWvbj0B6iNAsFZXbFZOlfg3uyz2sbKpzPYYFocCc27yjLaS8OfR8DEdS2mZXi8Saw==" + "integrity": "sha512-K347DM6Z7gBSE+TfUaTTceWvbj0B6iNAsFZXbFZOlfg3uyz2sbKpzPYYFocCc27yjLaS8OfR8DEdS2mZXi8Saw==", + "requires": {} }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -1902,7 +10540,8 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "agent-base": { "version": "6.0.2", @@ -3364,7 +12003,8 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz", "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==", - "dev": true + "dev": true, + "requires": {} }, "eslint-scope": { "version": "5.1.1", @@ -3473,11 +12113,6 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, - "eventemitter-asyncresource": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", - "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==" - }, "events": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", @@ -3791,21 +12426,6 @@ "minimalistic-assert": "^1.0.1" } }, - "hdr-histogram-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", - "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", - "requires": { - "@assemblyscript/loader": "^0.10.1", - "base64-js": "^1.2.0", - "pako": "^1.0.3" - } - }, - "hdr-histogram-percentiles-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", - "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==" - }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -4725,33 +13345,11 @@ } } }, - "nice-napi": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", - "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", - "optional": true, - "requires": { - "node-addon-api": "^3.0.0", - "node-gyp-build": "^4.2.2" - } - }, - "node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "optional": true - }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, - "node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "optional": true - }, "node-html-parser": { "version": "1.4.9", "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz", @@ -5125,17 +13723,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" }, - "piscina": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", - "integrity": "sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA==", - "requires": { - "eventemitter-asyncresource": "^1.0.0", - "hdr-histogram-js": "^2.0.1", - "hdr-histogram-percentiles-obj": "^3.0.0", - "nice-napi": "^1.0.2" - } - }, "pixelmatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", @@ -5907,6 +14494,21 @@ } } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "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==" + } + } + }, "string-hash": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", @@ -5964,21 +14566,6 @@ "define-properties": "^1.1.3" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "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==" - } - } - }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -6070,7 +14657,8 @@ "stylis-rule-sheet": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", - "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "requires": {} }, "supports-color": { "version": "7.2.0", @@ -6514,7 +15102,8 @@ "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "requires": {} }, "xhr": { "version": "2.6.0", diff --git a/package.json b/package.json index d244c8c..d377361 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "league-of-react", "version": "3.4.0", "private": true, + "type": "module", "dependencies": { "@actions/core": "^1.4.0", "@svgr/webpack": "^5.5.0", @@ -13,7 +14,6 @@ "next": "^11.0.1", "node-fetch": "^2.6.1", "node-vibrant": "^3.2.1-alpha.1", - "piscina": "^3.2.0", "puppeteer": "^10.4.0", "react": "^17.0.1", "react-dom": "^17.0.1", @@ -24,7 +24,6 @@ "build": "next build", "start": "next start", "lint": "next lint", - "update": "node scripts/update.js", "screenshots": "node scripts/screenshots.js" }, "browserslist": { @@ -42,9 +41,5 @@ "devDependencies": { "eslint": "^7.17.0", "eslint-config-next": "^11.0.1" - }, - "volta": { - "node": "14.18.2", - "npm": "6.14.15" } } diff --git a/src/pages/404.js b/pages/404.js similarity index 100% rename from src/pages/404.js rename to pages/404.js diff --git a/src/pages/_app.js b/pages/_app.js similarity index 78% rename from src/pages/_app.js rename to pages/_app.js index 03784cc..2e848a1 100644 --- a/src/pages/_app.js +++ b/pages/_app.js @@ -1,6 +1,7 @@ import App from "next/app"; -import { ThemeProvider } from "@/context/theme"; import Header from "@/components/Header"; +import { ThemeProvider } from "@/context/theme"; +import { getVersions } from "@/services/champions"; import "@/styles/index.css"; function MyApp({ Component, pageProps, version }) { @@ -16,8 +17,8 @@ function MyApp({ Component, pageProps, version }) { MyApp.getInitialProps = async (appContext) => { const appProps = await App.getInitialProps(appContext); - const { version } = require("@/public/data/latest.json"); - return { version, ...appProps }; + const { latest } = await getVersions(); + return { version: latest, ...appProps }; }; export default MyApp; diff --git a/src/pages/_document.js b/pages/_document.js similarity index 100% rename from src/pages/_document.js rename to pages/_document.js diff --git a/pages/champions/[id].js b/pages/champions/[id].js new file mode 100644 index 0000000..fd14d50 --- /dev/null +++ b/pages/champions/[id].js @@ -0,0 +1,70 @@ +import Head from "next/head"; +import { useEffect } from "react"; +import { getAllChampions, getChampion } from "@/services/champions"; +import useVibrant from "@/hooks/useVibrant"; +import styles from "@/styles/Champion.module.css"; +import { useTheme } from "@/context/theme"; + +export async function getStaticPaths() { + const champions = await getAllChampions(); + + const paths = champions.map((champion) => ({ + params: { + id: champion.id + } + })); + + return { + paths, + fallback: false + }; +} + +export async function getStaticProps(context) { + const champion = await getChampion(context.params.id); + + return { + props: { + champion + } + }; +} + +/** + * + * @param {{champion: IChampion}} props + * @returns + */ +function Champion({ champion }) { + const color = useVibrant(champion.images[0]); + const { setTheme } = useTheme(); + + useEffect(() => { + color && setTheme(color); + }, [color, setTheme]); + + return ( + <> + + {champion.name} - League of React + +
+
+
+ {champion.name} +
+
+

{champion.name}

+

{champion.title}

+

{champion.lore}

+
+
+ + ); +} + +export default Champion; diff --git a/src/pages/index.js b/pages/index.js similarity index 87% rename from src/pages/index.js rename to pages/index.js index 32ef723..4ac2ce2 100644 --- a/src/pages/index.js +++ b/pages/index.js @@ -5,16 +5,7 @@ import { useRouter } from "next/router"; import Champions from "@/components/Champions"; import Search from "@/components/Search"; import { useTheme } from "@/context/theme"; - -export async function getStaticProps() { - const { champions } = require("@/public/data/latest.json"); - - return { - props: { - initialChampions: champions - } - }; -} +import { getAllChampions } from "@/services/champions"; function Home({ initialChampions }) { const [champions, setChampions] = useState(initialChampions); @@ -59,4 +50,12 @@ function Home({ initialChampions }) { ); } +Home.getInitialProps = async () => { + const champions = await getAllChampions(); + + return { + initialChampions: champions + }; +}; + export default Home; diff --git a/public/data/.gitkeep b/public/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/public/data/latest.json b/public/data/latest.json deleted file mode 100644 index 993e552..0000000 --- a/public/data/latest.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"12.1.1","champions":[{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Aatrox_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Aatrox_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Aatrox.png"},"color":"#f44444","version":"12.1.1","id":"Aatrox","key":"266","name":"Aatrox","title":"la Espada Darkin","blurb":"Aatrox y sus hermanos, que alguna vez fueron respetados defensores de Shurima contra el Vacío, se convirtieron en una amenaza aún mayor para Runaterra y los derrotaron con hechicería mortal usada con astucia. Pero, después de siglos de encarcelamiento...","info":{"attack":8,"defense":4,"magic":3,"difficulty":4},"tags":["Fighter","Tank"],"partype":"Pozo Sangriento","stats":{"hp":580,"hpperlevel":90,"mp":0,"mpperlevel":0,"movespeed":345,"armor":38,"armorperlevel":3.25,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":3,"hpregenperlevel":1,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":60,"attackdamageperlevel":5,"attackspeedperlevel":2.5,"attackspeed":0.651}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Ahri_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Ahri_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Ahri.png"},"color":"#485ddd","version":"12.1.1","id":"Ahri","key":"103","name":"Ahri","title":"la Vastaya de Nueve Colas","blurb":"Ahri, conectada de forma innata con el poder latente de Runaterra, es una vastaya que puede moldear la magia en orbes de energía pura. Se divierte jugueteando con su presa y manipulando sus emociones, antes de devorar su esencia vital. A pesar de su...","info":{"attack":3,"defense":4,"magic":8,"difficulty":5},"tags":["Mage","Assassin"],"partype":"Maná","stats":{"hp":526,"hpperlevel":92,"mp":418,"mpperlevel":25,"movespeed":330,"armor":21,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":5.5,"hpregenperlevel":0.6,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":53,"attackdamageperlevel":3,"attackspeedperlevel":2,"attackspeed":0.668}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Akali_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Akali_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Akali.png"},"color":"#9c4464","version":"12.1.1","id":"Akali","key":"84","name":"Akali","title":"la Asesina Furtiva","blurb":"Tras renunciar a la Orden Kinkou y a su título como el Puño de la Sombra, Akali pelea a solas, lista para ser el arma letal que su pueblo necesita. Aunque conserva todo lo que aprendió de su maestro Shen, juró defender a Jonia de sus enemigos... una...","info":{"attack":5,"defense":3,"magic":8,"difficulty":7},"tags":["Assassin"],"partype":"Energía","stats":{"hp":500,"hpperlevel":105,"mp":200,"mpperlevel":0,"movespeed":345,"armor":23,"armorperlevel":3.5,"spellblock":37,"spellblockperlevel":1.25,"attackrange":125,"hpregen":9,"hpregenperlevel":0.9,"mpregen":50,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":62,"attackdamageperlevel":3.3,"attackspeedperlevel":3.2,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Akshan_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Akshan_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Akshan.png"},"color":"#e4943c","version":"12.1.1","id":"Akshan","key":"166","name":"Akshan","title":"el Centinela Rebelde","blurb":"Con una ceja levantada frente al peligro, Akshan pelea contra el mal con un carisma deslumbrante, una venganza justiciera y una llamativa falta de camisas. Con gran habilidad en el arte del combate furtivo, es capaz de evadir a sus enemigos y reaparecer...","info":{"attack":0,"defense":0,"magic":0,"difficulty":0},"tags":["Marksman","Assassin"],"partype":"Maná","stats":{"hp":560,"hpperlevel":90,"mp":350,"mpperlevel":40,"movespeed":330,"armor":26,"armorperlevel":3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":500,"hpregen":3.75,"hpregenperlevel":0.65,"mpregen":8.175,"mpregenperlevel":0.7,"crit":0,"critperlevel":0,"attackdamage":52,"attackdamageperlevel":3.5,"attackspeedperlevel":4,"attackspeed":0.638}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Alistar_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Alistar_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Alistar.png"},"color":"#dd214d","version":"12.1.1","id":"Alistar","key":"12","name":"Alistar","title":"el Minotauro","blurb":"Alistar, que desde siempre fue un gran guerrero con una temible reputación, busca venganza por la muerte de su clan a manos del imperio noxiano. Aunque haya sido esclavizado y forzado a tener una vida de gladiador, su voluntad inquebrantable fue lo que...","info":{"attack":6,"defense":9,"magic":5,"difficulty":7},"tags":["Tank","Support"],"partype":"Maná","stats":{"hp":600,"hpperlevel":106,"mp":350,"mpperlevel":40,"movespeed":330,"armor":44,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8.5,"hpregenperlevel":0.85,"mpregen":8.5,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":62,"attackdamageperlevel":3.75,"attackspeedperlevel":2.125,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Amumu_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Amumu_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Amumu.png"},"color":"#76b666","version":"12.1.1","id":"Amumu","key":"32","name":"Amumu","title":"la Momia Triste","blurb":"Cuenta la leyenda que Amumu es un alma solitaria y melancólica de la antigua Shurima que vaga por el mundo en busca de un amigo. Una antigua maldición lo condenó a permanecer solo por toda la eternidad. Sus caricias son la muerte, su afecto es la ruina...","info":{"attack":2,"defense":6,"magic":8,"difficulty":3},"tags":["Tank","Mage"],"partype":"Maná","stats":{"hp":615,"hpperlevel":75,"mp":285,"mpperlevel":40,"movespeed":335,"armor":30,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":9,"hpregenperlevel":0.85,"mpregen":7.38,"mpregenperlevel":0.53,"crit":0,"critperlevel":0,"attackdamage":53,"attackdamageperlevel":3.8,"attackspeedperlevel":2.18,"attackspeed":0.736}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Anivia_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Anivia_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Anivia.png"},"color":"#0880c8","version":"12.1.1","id":"Anivia","key":"34","name":"Anivia","title":"la Criofénix","blurb":"Anivia es un espíritu benevolente alado que soporta interminables ciclos de vida, muerte y resurrección para proteger Fréljord. Nació de la unión del hielo cruel y del viento penetrante, por lo que es una semidiosa que utiliza esos poderes elementales...","info":{"attack":1,"defense":4,"magic":10,"difficulty":10},"tags":["Mage","Support"],"partype":"Maná","stats":{"hp":480,"hpperlevel":82,"mp":495,"mpperlevel":45,"movespeed":325,"armor":21,"armorperlevel":4,"spellblock":30,"spellblockperlevel":0.5,"attackrange":600,"hpregen":5.5,"hpregenperlevel":0.55,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":51,"attackdamageperlevel":3.2,"attackspeedperlevel":1.68,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Annie_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Annie_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Annie.png"},"color":"#c06c46","version":"12.1.1","id":"Annie","key":"1","name":"Annie","title":"la Hija de la Oscuridad","blurb":"Annie es una peligrosa, talentosa y encantadora niña maga que posee un inmenso poder piroquinético. Incluso bajo las sombras de las montañas al norte de Noxus, es una maga excepcional. Su afinidad innata con el fuego se manifestó pronto en su vida a...","info":{"attack":2,"defense":3,"magic":10,"difficulty":6},"tags":["Mage"],"partype":"Maná","stats":{"hp":524,"hpperlevel":88,"mp":418,"mpperlevel":25,"movespeed":335,"armor":19,"armorperlevel":4,"spellblock":30,"spellblockperlevel":0.5,"attackrange":625,"hpregen":5.5,"hpregenperlevel":0.55,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":50,"attackdamageperlevel":2.63,"attackspeedperlevel":1.36,"attackspeed":0.579}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Aphelios_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Aphelios_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Aphelios.png"},"color":"#342c7c","version":"12.1.1","id":"Aphelios","key":"523","name":"Aphelios","title":"El Arma de los Adeptos","blurb":"Aphelios emerge de la sombra de la luz de la luna con sus armas listas y mata a los enemigos de su fe en un silencio melancólico. Habla únicamente a través de la certeza de su puntería y del disparo de cada arma. Si bien su impulso proviene de un veneno...","info":{"attack":6,"defense":2,"magic":1,"difficulty":10},"tags":["Marksman"],"partype":"Maná","stats":{"hp":530,"hpperlevel":88,"mp":348,"mpperlevel":42,"movespeed":325,"armor":28,"armorperlevel":3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":3.25,"hpregenperlevel":0.55,"mpregen":6.5,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":55,"attackdamageperlevel":3,"attackspeedperlevel":2.1,"attackspeed":0.64}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Ashe_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Ashe_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Ashe.png"},"color":"#2c35b4","version":"12.1.1","id":"Ashe","key":"22","name":"Ashe","title":"la Arquera de Hielo","blurb":"Como Hija del Hielo y madre de guerra de la tribu Avarosa, Ashe comanda la más grande horda en el norte. Estoica, inteligente e idealista, pero incómoda con su rol de líder, ella aprovecha las magias ancestrales de su linaje para portar un arco de Hielo...","info":{"attack":7,"defense":3,"magic":2,"difficulty":4},"tags":["Marksman","Support"],"partype":"Maná","stats":{"hp":570,"hpperlevel":87,"mp":280,"mpperlevel":32,"movespeed":325,"armor":26,"armorperlevel":3.4,"spellblock":30,"spellblockperlevel":0.5,"attackrange":600,"hpregen":3.5,"hpregenperlevel":0.55,"mpregen":6.97,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":59,"attackdamageperlevel":2.96,"attackspeedperlevel":3.33,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/AurelionSol_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/AurelionSol_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/AurelionSol.png"},"color":"#341cb4","version":"12.1.1","id":"AurelionSol","key":"136","name":"Aurelion Sol","title":"el Forjador de Estrellas","blurb":"Aurelion Sol alguna vez adornó el gran vacío del cosmos con maravillas celestiales de su propia creación. Ahora, se ve obligado a usar su increíble poder para el beneficio de un imperio espacial que, tras engañarlo, lo mantiene bajo su servicio. Deseoso...","info":{"attack":2,"defense":3,"magic":8,"difficulty":7},"tags":["Mage"],"partype":"Maná","stats":{"hp":575,"hpperlevel":92,"mp":350,"mpperlevel":50,"movespeed":325,"armor":19,"armorperlevel":3.6,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":7,"hpregenperlevel":0.6,"mpregen":6,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":57,"attackdamageperlevel":3.2,"attackspeedperlevel":1.36,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Azir_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Azir_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Azir.png"},"color":"#e17914","version":"12.1.1","id":"Azir","key":"268","name":"Azir","title":"el Emperador de las Arenas","blurb":"Azir, emperador de Shurima en un pasado remoto, fue un hombre orgulloso que estuvo a punto de alcanzar la inmortalidad. Dominado por la arrogancia, fue traicionado y asesinado en la hora de su mayor triunfo. Pero ahora, milenios después, renació como un...","info":{"attack":6,"defense":3,"magic":8,"difficulty":9},"tags":["Mage","Marksman"],"partype":"Maná","stats":{"hp":552,"hpperlevel":92,"mp":480,"mpperlevel":21,"movespeed":335,"armor":19,"armorperlevel":3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":7,"hpregenperlevel":0.75,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":52,"attackdamageperlevel":2.8,"attackspeedperlevel":3,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Bard_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Bard_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Bard.png"},"color":"#ec9620","version":"12.1.1","id":"Bard","key":"432","name":"Bardo","title":"el Guardián Trotamundos","blurb":"El Bardo es un viajero de un reino más allá de las estrellas y un agente de la serendipia quien lucha por conservar el balance donde sea que la vida resista la indiferencia del caos. Muchas canciones de Runaterra hablan sobre su extraordinaria...","info":{"attack":4,"defense":4,"magic":5,"difficulty":9},"tags":["Support","Mage"],"partype":"Maná","stats":{"hp":560,"hpperlevel":89,"mp":350,"mpperlevel":50,"movespeed":330,"armor":34,"armorperlevel":4,"spellblock":30,"spellblockperlevel":0.5,"attackrange":500,"hpregen":5.5,"hpregenperlevel":0.55,"mpregen":6,"mpregenperlevel":0.45,"crit":0,"critperlevel":0,"attackdamage":52,"attackdamageperlevel":3,"attackspeedperlevel":2,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Blitzcrank_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Blitzcrank_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Blitzcrank.png"},"color":"#c2722c","version":"12.1.1","id":"Blitzcrank","key":"53","name":"Blitzcrank","title":"el Gran Gólem de Vapor","blurb":"Blitzcrank es un autómata gigantesco y casi indestructible de Zaun, que originalmente fue creado para deshacerse de los desechos tóxicos. Sin embargo, él cree que su propósito principal era demasiado limitado, así que modificó su propia forma para poder...","info":{"attack":4,"defense":8,"magic":5,"difficulty":4},"tags":["Tank","Fighter"],"partype":"Maná","stats":{"hp":583,"hpperlevel":95,"mp":267,"mpperlevel":40,"movespeed":325,"armor":40,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8.5,"hpregenperlevel":0.75,"mpregen":8.5,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":62,"attackdamageperlevel":3.5,"attackspeedperlevel":1.13,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Brand_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Brand_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Brand.png"},"color":"#c44c24","version":"12.1.1","id":"Brand","key":"63","name":"Brand","title":"la Venganza Ardiente","blurb":"La criatura conocida como Brand es una lección de la tentación del poder. Alguna vez fue un simple hombre de la tribu de Fréljord y su nombre era Kegan Rodhe, pero al estar buscando una de las Runas del Mundo, Kegan traicionó a sus compañeros y se la...","info":{"attack":2,"defense":2,"magic":9,"difficulty":4},"tags":["Mage"],"partype":"Maná","stats":{"hp":520,"hpperlevel":88,"mp":469,"mpperlevel":21,"movespeed":340,"armor":22,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":5.5,"hpregenperlevel":0.55,"mpregen":10.67,"mpregenperlevel":0.6,"crit":0,"critperlevel":0,"attackdamage":57,"attackdamageperlevel":3,"attackspeedperlevel":1.36,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Braum_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Braum_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Braum.png"},"color":"#2ab4d0","version":"12.1.1","id":"Braum","key":"201","name":"Braum","title":"el Corazón del Fréljord","blurb":"Dotado de bíceps masivos y un corazón aún más grande, Braum es un querido héroe de Fréljord. Todas las tabernas al norte de Frostheld brindan por su fuerza legendaria; se dice que taló un bosque de robles en una sola noche y que hizo añicos una montaña...","info":{"attack":3,"defense":9,"magic":4,"difficulty":3},"tags":["Support","Tank"],"partype":"Maná","stats":{"hp":540,"hpperlevel":98,"mp":311,"mpperlevel":45,"movespeed":335,"armor":47,"armorperlevel":4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8.5,"hpregenperlevel":1,"mpregen":6,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":55,"attackdamageperlevel":3.2,"attackspeedperlevel":3.5,"attackspeed":0.644}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Caitlyn_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Caitlyn_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Caitlyn.png"},"color":"#54accc","version":"12.1.1","id":"Caitlyn","key":"51","name":"Caitlyn","title":"la Sheriff de Piltóver","blurb":"Reconocida como la mejor pacificadora, Caitlyn también es la mejor oportunidad de Piltóver para deshacerse de los elementos criminales elusivos de su ciudad. A veces hace equipo con Vi y es un buen contrapunto para la naturaleza más impulsiva de su...","info":{"attack":8,"defense":2,"magic":2,"difficulty":6},"tags":["Marksman"],"partype":"Maná","stats":{"hp":510,"hpperlevel":93,"mp":315,"mpperlevel":35,"movespeed":325,"armor":28,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":650,"hpregen":3.5,"hpregenperlevel":0.55,"mpregen":7.4,"mpregenperlevel":0.55,"crit":0,"critperlevel":0,"attackdamage":62,"attackdamageperlevel":3.8,"attackspeedperlevel":4,"attackspeed":0.681}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Camille_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Camille_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Camille.png"},"color":"#94543c","version":"12.1.1","id":"Camille","key":"164","name":"Camille","title":"la Sombra de Acero","blurb":"Armada para operar fuera de los límites de la ley, Camille es la principal inteligencia del Clan Ferros: una elegante agente de élite que se asegura de que la máquina de Piltóver y el submundo zaunita funcione sin problemas. Al ser adaptable y precisa...","info":{"attack":8,"defense":6,"magic":3,"difficulty":4},"tags":["Fighter","Tank"],"partype":"Maná","stats":{"hp":576,"hpperlevel":85,"mp":339,"mpperlevel":52,"movespeed":340,"armor":35,"armorperlevel":3.8,"spellblock":32.1,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8.5,"hpregenperlevel":0.8,"mpregen":8.15,"mpregenperlevel":0.75,"crit":0,"critperlevel":0,"attackdamage":68,"attackdamageperlevel":3.5,"attackspeedperlevel":2.5,"attackspeed":0.644}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Cassiopeia_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Cassiopeia_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Cassiopeia.png"},"color":"#bd8451","version":"12.1.1","id":"Cassiopeia","key":"69","name":"Cassiopeia","title":"el Abrazo de la Serpiente","blurb":"Cassiopeia es una criatura mortífera que disfruta manipular a otros para que hagan su voluntad siniestra. La más joven y más hermosa hija de la familia noble de Du Couteau de Noxus, se aventuró a las profundidades de la cripta debajo de Shurima en...","info":{"attack":2,"defense":3,"magic":9,"difficulty":10},"tags":["Mage"],"partype":"Maná","stats":{"hp":560,"hpperlevel":90,"mp":350,"mpperlevel":60,"movespeed":328,"armor":18,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":0.5,"attackrange":550,"hpregen":5.5,"hpregenperlevel":0.5,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":53,"attackdamageperlevel":3,"attackspeedperlevel":1.5,"attackspeed":0.647}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Chogath_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Chogath_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Chogath.png"},"color":"#8c44ac","version":"12.1.1","id":"Chogath","key":"31","name":"Cho'Gath","title":"el Terror del Vacío","blurb":"Desde el momento que Cho'Gath emergió por primera vez a la fuerte luz del sol de Runaterra, la bestia se vio consumida por el hambre más pura e insaciable. Como una expresión perfecta del deseo del Vacío para consumir toda vida conocida, la biología...","info":{"attack":3,"defense":7,"magic":7,"difficulty":5},"tags":["Tank","Mage"],"partype":"Maná","stats":{"hp":574,"hpperlevel":80,"mp":270,"mpperlevel":60,"movespeed":345,"armor":38,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":9,"hpregenperlevel":0.85,"mpregen":7.2,"mpregenperlevel":0.45,"crit":0,"critperlevel":0,"attackdamage":69,"attackdamageperlevel":4.2,"attackspeedperlevel":1.44,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Corki_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Corki_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Corki.png"},"color":"#de9648","version":"12.1.1","id":"Corki","key":"42","name":"Corki","title":"el Bombardero Osado","blurb":"Corki, el piloto yordle, adora dos cosas sobre todo lo demás: volar y su glamoroso bigote... aunque no siempre en ese orden. Luego de dejar la Ciudad de Bandle, se estableció en Piltóver y se enamoró de las máquinas maravillosas que encontró ahí. Se...","info":{"attack":8,"defense":3,"magic":6,"difficulty":6},"tags":["Marksman"],"partype":"Maná","stats":{"hp":518,"hpperlevel":87,"mp":350,"mpperlevel":54,"movespeed":325,"armor":28,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":5.5,"hpregenperlevel":0.55,"mpregen":7.42,"mpregenperlevel":0.55,"crit":0,"critperlevel":0,"attackdamage":55,"attackdamageperlevel":2.5,"attackspeedperlevel":2.3,"attackspeed":0.638}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Darius_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Darius_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Darius.png"},"color":"#b40414","version":"12.1.1","id":"Darius","key":"122","name":"Darius","title":"la mano de Noxus","blurb":"No hay símbolo más grande del poder noxiano que Darius, el líder más temido y con más experiencia en la guerra. Desde sus orígenes humildes hasta convertirse en la Mano de Noxus, Darius acaba con los enemigos del imperio, de los cuales, muchos también...","info":{"attack":9,"defense":5,"magic":1,"difficulty":2},"tags":["Fighter","Tank"],"partype":"Maná","stats":{"hp":582,"hpperlevel":100,"mp":263,"mpperlevel":57.5,"movespeed":340,"armor":39,"armorperlevel":4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":10,"hpregenperlevel":0.95,"mpregen":6.6,"mpregenperlevel":0.35,"crit":0,"critperlevel":0,"attackdamage":64,"attackdamageperlevel":5,"attackspeedperlevel":1,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Diana_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Diana_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Diana.png"},"color":"#3f3fbf","version":"12.1.1","id":"Diana","key":"131","name":"Diana","title":"el Desdén de la Luna","blurb":"Portando su hoja lunar creciente, Diana pelea como una guerrera de los Lunari, una poderosa fe que impera en las tierras alrededor del Monte Targón. Blindada con una armadura reluciente del color de la nieve de invierno durante la noche, ella es la...","info":{"attack":7,"defense":6,"magic":8,"difficulty":4},"tags":["Fighter","Mage"],"partype":"Maná","stats":{"hp":570,"hpperlevel":95,"mp":375,"mpperlevel":25,"movespeed":345,"armor":31,"armorperlevel":3.1,"spellblock":32,"spellblockperlevel":1.25,"attackrange":150,"hpregen":6.5,"hpregenperlevel":0.85,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":57,"attackdamageperlevel":3,"attackspeedperlevel":2.25,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Draven_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Draven_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Draven.png"},"color":"#a4544c","version":"12.1.1","id":"Draven","key":"119","name":"Draven","title":"el Glorioso Ejecutor","blurb":"En Noxus, los guerreros llamados ''jueces'' se enfrentan unos a otros en arenas donde la sangre corre y la fuerza se pone a prueba, pero nadie ha sido tan celebrado como Draven. Este exsoldado encontró que el público en verdad apreciaba su habilidad...","info":{"attack":9,"defense":3,"magic":1,"difficulty":8},"tags":["Marksman"],"partype":"Maná","stats":{"hp":605,"hpperlevel":90,"mp":360.56,"mpperlevel":39,"movespeed":330,"armor":29,"armorperlevel":3.3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":3.75,"hpregenperlevel":0.7,"mpregen":8.04,"mpregenperlevel":0.65,"crit":0,"critperlevel":0,"attackdamage":60,"attackdamageperlevel":3.61,"attackspeedperlevel":2.7,"attackspeed":0.679}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/DrMundo_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/DrMundo_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/DrMundo.png"},"color":"#944cbc","version":"12.1.1","id":"DrMundo","key":"36","name":"Dr. Mundo","title":"el Loco de Zaun","blurb":"El Dr. Mundo, completamente demente, trágicamente homicida y espeluznantemente morado, es la razón por la que los ciudadanos de Zaun permanecen en sus casas en las noches particularmente oscuras. Ahora un médico autoproclamado, en otra vida fue un...","info":{"attack":5,"defense":7,"magic":6,"difficulty":5},"tags":["Fighter","Tank"],"partype":"Ninguno","stats":{"hp":583,"hpperlevel":89,"mp":0,"mpperlevel":0,"movespeed":345,"armor":32,"armorperlevel":3,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":6.5,"hpregenperlevel":0.75,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":61,"attackdamageperlevel":4.2,"attackspeedperlevel":3.3,"attackspeed":0.72}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Ekko_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Ekko_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Ekko.png"},"color":"#e01e43","version":"12.1.1","id":"Ekko","key":"245","name":"Ekko","title":"el Joven que Fragmentó el Tiempo","blurb":"Ekko, un prodigio surgido de las duras calles de Zaun, es capaz de manipular el tiempo para su propio beneficio. Usando una máquina de su invención llamada Pulsar-Z, explora las distintas posibilidades de la realidad para crear el momento perfecto...","info":{"attack":5,"defense":3,"magic":7,"difficulty":8},"tags":["Assassin","Fighter"],"partype":"Maná","stats":{"hp":585,"hpperlevel":85,"mp":280,"mpperlevel":70,"movespeed":340,"armor":32,"armorperlevel":3,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":9,"hpregenperlevel":0.9,"mpregen":7,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":58,"attackdamageperlevel":3,"attackspeedperlevel":3.3,"attackspeed":0.688}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Elise_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Elise_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Elise.png"},"color":"#8c1c34","version":"12.1.1","id":"Elise","key":"60","name":"Elise","title":"la Reina de las Arañas","blurb":"Elise es una depredadora mortífera que reside en un palacio cerrado y sin luz, en las profundidades de la ciudad más vieja de Noxus. Cuando era mortal era la señora de una poderosa casa, pero la mordida de un vil semidiós la transformó en algo hermoso...","info":{"attack":6,"defense":5,"magic":7,"difficulty":9},"tags":["Mage","Fighter"],"partype":"Maná","stats":{"hp":555,"hpperlevel":93,"mp":324,"mpperlevel":50,"movespeed":330,"armor":27,"armorperlevel":4,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":5.5,"hpregenperlevel":0.6,"mpregen":6,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":55,"attackdamageperlevel":3,"attackspeedperlevel":1.75,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Evelynn_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Evelynn_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Evelynn.png"},"color":"#b6349f","version":"12.1.1","id":"Evelynn","key":"28","name":"Evelynn","title":"Abrazo de la Agonía","blurb":"Dentro de las oscuras vetas de Runaterra, la demonio Evelynn acecha a su siguiente víctima. Seduce a su presa con la apariencia voluptuosa de una mujer humana, pero una vez que alguien sucumbe ante sus encantos, Evelynn revela su verdadera forma. Es en...","info":{"attack":4,"defense":2,"magic":7,"difficulty":10},"tags":["Assassin","Mage"],"partype":"Maná","stats":{"hp":572,"hpperlevel":84,"mp":315,"mpperlevel":42,"movespeed":335,"armor":37,"armorperlevel":3.5,"spellblock":32.1,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8.5,"hpregenperlevel":0.75,"mpregen":8.11,"mpregenperlevel":0.6,"crit":0,"critperlevel":0,"attackdamage":61,"attackdamageperlevel":3,"attackspeedperlevel":2.1,"attackspeed":0.667}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Ezreal_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Ezreal_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Ezreal.png"},"color":"#b46c44","version":"12.1.1","id":"Ezreal","key":"81","name":"Ezreal","title":"el Explorador Pródigo","blurb":"Un aventurero deslumbrante, inconscientemente talentoso para las artes mágicas, Ezreal saquea catacumbas hace mucho tiempo perdidas, se enreda en antiguas maldiciones y supera probabilidades aparentemente imposibles con ligereza. Su valentía no conoce...","info":{"attack":7,"defense":2,"magic":6,"difficulty":7},"tags":["Marksman","Mage"],"partype":"Maná","stats":{"hp":530,"hpperlevel":88,"mp":375,"mpperlevel":70,"movespeed":325,"armor":24,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":4,"hpregenperlevel":0.65,"mpregen":8.5,"mpregenperlevel":0.65,"crit":0,"critperlevel":0,"attackdamage":60,"attackdamageperlevel":2.5,"attackspeedperlevel":2.5,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Fiddlesticks_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Fiddlesticks_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Fiddlesticks.png"},"color":"#ac0c0c","version":"12.1.1","id":"Fiddlesticks","key":"9","name":"Fiddlesticks","title":"el Terror Ancestral","blurb":"Algo ha despertado en Runaterra. Algo ancestral. Algo terrible. El horror eterno conocido como Fiddlesticks acecha los bordes de la sociedad mortal, atraído por los espacios en donde la paranoia abunda, en los que se alimenta de sus aterradas víctimas...","info":{"attack":2,"defense":3,"magic":9,"difficulty":9},"tags":["Mage","Support"],"partype":"Maná","stats":{"hp":580.4,"hpperlevel":92,"mp":500,"mpperlevel":28,"movespeed":335,"armor":34,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":480,"hpregen":5.5,"hpregenperlevel":0.6,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":55.36,"attackdamageperlevel":2.63,"attackspeedperlevel":2.11,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Fiora_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Fiora_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Fiora.png"},"color":"#cc2962","version":"12.1.1","id":"Fiora","key":"114","name":"Fiora","title":"la Gran Duelista","blurb":"Fiora, la duelista más temida de Valoran, se hizo famosa por sus modales bruscos y su astucia, además de la rapidez y destreza con la que maneja su florete. Nacida en el seno de la Casa Laurent de Demacia, tomó el control de la familia de su padre en...","info":{"attack":10,"defense":4,"magic":2,"difficulty":3},"tags":["Fighter","Assassin"],"partype":"Maná","stats":{"hp":550,"hpperlevel":85,"mp":300,"mpperlevel":60,"movespeed":345,"armor":33,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":150,"hpregen":8.5,"hpregenperlevel":0.55,"mpregen":8,"mpregenperlevel":0.7,"crit":0,"critperlevel":0,"attackdamage":68,"attackdamageperlevel":3.3,"attackspeedperlevel":3.2,"attackspeed":0.69}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Fizz_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Fizz_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Fizz.png"},"color":"#72b2c2","version":"12.1.1","id":"Fizz","key":"105","name":"Fizz","title":"el Bromista de las Mareas","blurb":"Fizz es un yordle anfibio que habita en los arrecifes alrededor de Aguasturbias. A menudo recupera y regresa las monedas lanzadas al mar por capitanes supersticiosos, pero hasta los más escépticos marinos saben que no deben contrariarlo; hay muchas...","info":{"attack":6,"defense":4,"magic":7,"difficulty":6},"tags":["Assassin","Fighter"],"partype":"Maná","stats":{"hp":570,"hpperlevel":98,"mp":317,"mpperlevel":37,"movespeed":335,"armor":22,"armorperlevel":3.4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":8,"hpregenperlevel":0.7,"mpregen":6,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":58,"attackdamageperlevel":3,"attackspeedperlevel":3.1,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Galio_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Galio_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Galio.png"},"color":"#4b6ca9","version":"12.1.1","id":"Galio","key":"3","name":"Galio","title":"el Coloso","blurb":"En las afueras de la resplandeciente ciudad de Demacia, el coloso de piedra Galio se mantiene en guardia constante. Construido como un baluarte contra los magos enemigos, se mantiene inmóvil durante décadas hasta que la presencia de magia poderosa lo...","info":{"attack":1,"defense":10,"magic":6,"difficulty":5},"tags":["Tank","Mage"],"partype":"Maná","stats":{"hp":562,"hpperlevel":112,"mp":500,"mpperlevel":40,"movespeed":335,"armor":24,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":150,"hpregen":8,"hpregenperlevel":0.8,"mpregen":9.5,"mpregenperlevel":0.7,"crit":0,"critperlevel":0,"attackdamage":59,"attackdamageperlevel":3.5,"attackspeedperlevel":1.5,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Gangplank_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Gangplank_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Gangplank.png"},"color":"#e43c0c","version":"12.1.1","id":"Gangplank","key":"41","name":"Gangplank","title":"el Azote de los Mares","blurb":"Tan impredecible como brutal, el saqueador y rey destronado Gangplank es temido por todo el mundo. Alguna vez gobernó la ciudad portuaria de Aguasturbias y aunque su reino terminó, hay quienes creen que esto solo lo hizo más peligroso. Gangplank...","info":{"attack":7,"defense":6,"magic":4,"difficulty":9},"tags":["Fighter"],"partype":"Maná","stats":{"hp":570,"hpperlevel":90,"mp":280,"mpperlevel":60,"movespeed":345,"armor":35,"armorperlevel":3,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":6,"hpregenperlevel":0.6,"mpregen":7.5,"mpregenperlevel":0.7,"crit":0,"critperlevel":0,"attackdamage":64,"attackdamageperlevel":4,"attackspeedperlevel":3.2,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Garen_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Garen_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Garen.png"},"color":"#2a54d8","version":"12.1.1","id":"Garen","key":"86","name":"Garen","title":"el Poder de Demacia","blurb":"Como un orgulloso y noble guerrero, Garen forma parte de la Vanguardia Valerosa. Es popular entre sus compañeros y bastante respetado por sus enemigos. Es descendiente de la prestigiosa familia Guardia de la Corona y se le confió la tarea de defender a...","info":{"attack":7,"defense":7,"magic":1,"difficulty":5},"tags":["Fighter","Tank"],"partype":"Ninguno","stats":{"hp":620,"hpperlevel":84,"mp":0,"mpperlevel":0,"movespeed":340,"armor":36,"armorperlevel":3,"spellblock":32,"spellblockperlevel":0.75,"attackrange":175,"hpregen":8,"hpregenperlevel":0.5,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":66,"attackdamageperlevel":4.5,"attackspeedperlevel":3.65,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Gnar_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Gnar_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Gnar.png"},"color":"#f47c24","version":"12.1.1","id":"Gnar","key":"150","name":"Gnar","title":"el Eslabón Perdido","blurb":"Gnar es un yordle primitivo cuyos jugueteos bobos pueden transformarse en un berrinche de infante en un instante, transformándolo así en una bestia masiva que disfruta la destrucción. Congelado en Hielo Puro por miles de años, la curiosa criatura se...","info":{"attack":6,"defense":5,"magic":5,"difficulty":8},"tags":["Fighter","Tank"],"partype":"Rabia","stats":{"hp":510,"hpperlevel":65,"mp":100,"mpperlevel":0,"movespeed":335,"armor":32,"armorperlevel":2.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":175,"hpregen":4.5,"hpregenperlevel":1.75,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":57,"attackdamageperlevel":3,"attackspeedperlevel":6,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Gragas_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Gragas_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Gragas.png"},"color":"#c44824","version":"12.1.1","id":"Gragas","key":"79","name":"Gragas","title":"el Revoltoso","blurb":"Gragas, tan alegre como imponente, es un masivo y ruidoso maestro cervecero en su propia misión por encontrar el perfecto tarro de cerveza. Procedente de un lugar desconocido, ahora busca ingredientes poco comunes entre los inmaculados páramos de...","info":{"attack":4,"defense":7,"magic":6,"difficulty":5},"tags":["Fighter","Mage"],"partype":"Maná","stats":{"hp":600,"hpperlevel":95,"mp":400,"mpperlevel":47,"movespeed":330,"armor":38,"armorperlevel":3.6,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":5.5,"hpregenperlevel":0.5,"mpregen":6,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":64,"attackdamageperlevel":3.5,"attackspeedperlevel":2.05,"attackspeed":0.675}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Graves_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Graves_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Graves.png"},"color":"#b54f44","version":"12.1.1","id":"Graves","key":"104","name":"Graves","title":"el Forajido","blurb":"Malcolm Graves es un reconocido mercenario, apostador y ladrón: un hombre al que se le busca en cada ciudad e imperio que ha visitado. Aunque tiene un temperamento explosivo, posee un estricto sentido de honor criminal que hace valer con el poder de su...","info":{"attack":8,"defense":5,"magic":3,"difficulty":3},"tags":["Marksman"],"partype":"Maná","stats":{"hp":555,"hpperlevel":92,"mp":325,"mpperlevel":40,"movespeed":340,"armor":33,"armorperlevel":3.4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":425,"hpregen":8,"hpregenperlevel":0.7,"mpregen":8,"mpregenperlevel":0.7,"crit":0,"critperlevel":0,"attackdamage":68,"attackdamageperlevel":4,"attackspeedperlevel":2.6,"attackspeed":0.475}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Gwen_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Gwen_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Gwen.png"},"color":"#11bce9","version":"12.1.1","id":"Gwen","key":"887","name":"Gwen","title":"La Costurera Sagrada","blurb":"Gwen, una antigua muñeca que se transformó y cobró vida a través de la magia, usa las mismas herramientas que en su momento la crearon. Lleva el peso del amor de su creadora a cada paso, sin dar nada por sentado. Bajo su mando está la Niebla Sagrada...","info":{"attack":7,"defense":4,"magic":5,"difficulty":5},"tags":["Fighter","Assassin"],"partype":"Maná","stats":{"hp":590,"hpperlevel":95,"mp":330,"mpperlevel":40,"movespeed":340,"armor":39,"armorperlevel":4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":150,"hpregen":8.5,"hpregenperlevel":0.55,"mpregen":7.5,"mpregenperlevel":0.7,"crit":0,"critperlevel":0,"attackdamage":63,"attackdamageperlevel":3,"attackspeedperlevel":2.25,"attackspeed":0.69}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Hecarim_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Hecarim_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Hecarim.png"},"color":"#1ef4f4","version":"12.1.1","id":"Hecarim","key":"120","name":"Hecarim","title":"la Sombra de la Guerra","blurb":"Hecarim es una fusión espectral de un hombre y una bestia condenada a llevar las almas de los vivos por toda la eternidad. Cuando las Islas Bendecidas cayeron en oscuridad, este orgulloso caballero fue arrasado por la destructiva energía de la Ruina...","info":{"attack":8,"defense":6,"magic":4,"difficulty":6},"tags":["Fighter","Tank"],"partype":"Maná","stats":{"hp":580,"hpperlevel":90,"mp":277,"mpperlevel":60,"movespeed":345,"armor":35,"armorperlevel":4.25,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":7,"hpregenperlevel":0.75,"mpregen":6.5,"mpregenperlevel":0.6,"crit":0,"critperlevel":0,"attackdamage":66,"attackdamageperlevel":3.2,"attackspeedperlevel":2.5,"attackspeed":0.67}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Heimerdinger_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Heimerdinger_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Heimerdinger.png"},"color":"#409cd8","version":"12.1.1","id":"Heimerdinger","key":"74","name":"Heimerdinger","title":"el Venerable Inventor","blurb":"El Profesor Cecil B. Heimerdinger, brillante y a veces excéntrico científico yordle, es uno de los inventores más innovadores que Piltóver ha conocido. Implacable en su trabajo hasta llegar a niveles de neurótica obsesión, se alegra en poder contestar...","info":{"attack":2,"defense":6,"magic":8,"difficulty":8},"tags":["Mage","Support"],"partype":"Maná","stats":{"hp":488,"hpperlevel":87,"mp":385,"mpperlevel":20,"movespeed":340,"armor":19,"armorperlevel":3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":7,"hpregenperlevel":0.55,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":56,"attackdamageperlevel":2.7,"attackspeedperlevel":1.36,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Illaoi_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Illaoi_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Illaoi.png"},"color":"#ac7434","version":"12.1.1","id":"Illaoi","key":"420","name":"Illaoi","title":"la Sacerdotisa del Kraken","blurb":"El poderoso físico de Illaoi solo se ve disminuido por su indomable fe. Como profeta del Gran Kraken, ella usa un enorme ídolo dorado para arrebatarles el espíritu a sus enemigos y destrozar su percepción de la realidad. Todo aquel que desafíe a la...","info":{"attack":8,"defense":6,"magic":3,"difficulty":4},"tags":["Fighter","Tank"],"partype":"Maná","stats":{"hp":586,"hpperlevel":95,"mp":300,"mpperlevel":50,"movespeed":350,"armor":35,"armorperlevel":3.8,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":9.5,"hpregenperlevel":0.8,"mpregen":7.5,"mpregenperlevel":0.75,"crit":0,"critperlevel":0,"attackdamage":68,"attackdamageperlevel":5,"attackspeedperlevel":2.5,"attackspeed":0.571}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Irelia_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Irelia_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Irelia.png"},"color":"#bc3c4c","version":"12.1.1","id":"Irelia","key":"39","name":"Irelia","title":"la Cuchilla Danzante","blurb":"La invasión de Jonia a manos de Noxus produjo muchos héroes, pero ninguno fue tan improbable como la joven Irelia de Navori. Entrenada en las ancestrales danzas de su región, adaptó su arte para la guerra y ahora usa sus movimientos refinados y llenos...","info":{"attack":7,"defense":4,"magic":5,"difficulty":5},"tags":["Fighter","Assassin"],"partype":"Maná","stats":{"hp":520,"hpperlevel":110,"mp":350,"mpperlevel":50,"movespeed":335,"armor":36,"armorperlevel":3,"spellblock":28,"spellblockperlevel":1.25,"attackrange":200,"hpregen":8.5,"hpregenperlevel":0.85,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":65,"attackdamageperlevel":4,"attackspeedperlevel":2.5,"attackspeed":0.656}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Ivern_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Ivern_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Ivern.png"},"color":"#847434","version":"12.1.1","id":"Ivern","key":"427","name":"Ivern","title":"el Árbol Padre","blurb":"Ivern Pies de Espino, conocido por muchos como el Árbol Padre, es un ser peculiar, mitad humano y mitad árbol, que deambula por los bosques de Runaterra y cultiva vida dondequiera que va. Conoce los secretos del mundo natural y es buen amigo de todo lo...","info":{"attack":3,"defense":5,"magic":7,"difficulty":7},"tags":["Support","Mage"],"partype":"Maná","stats":{"hp":585,"hpperlevel":85,"mp":450,"mpperlevel":60,"movespeed":330,"armor":27,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":475,"hpregen":7,"hpregenperlevel":0.85,"mpregen":6,"mpregenperlevel":0.75,"crit":0,"critperlevel":0,"attackdamage":50,"attackdamageperlevel":3,"attackspeedperlevel":3.4,"attackspeed":0.644}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Janna_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Janna_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Janna.png"},"color":"#c06c84","version":"12.1.1","id":"Janna","key":"40","name":"Janna","title":"la Furia de la Tormenta","blurb":"Janna es un poderoso y misterioso espíritu del viento que protege a los desvalidos de Zaun con la tempestad de Runaterra. Algunos creen que las súplicas de los marineros pidiendo vientos favorables mientras navegaban a través de las aguas traicioneras y...","info":{"attack":3,"defense":5,"magic":7,"difficulty":7},"tags":["Support","Mage"],"partype":"Maná","stats":{"hp":500,"hpperlevel":70,"mp":350,"mpperlevel":64,"movespeed":315,"armor":28,"armorperlevel":3.8,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":5.5,"hpregenperlevel":0.55,"mpregen":11.5,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":46,"attackdamageperlevel":1.5,"attackspeedperlevel":2.95,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/JarvanIV_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/JarvanIV_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/JarvanIV.png"},"color":"#ecbc14","version":"12.1.1","id":"JarvanIV","key":"59","name":"Jarvan IV","title":"el Ejemplo de Demacia","blurb":"El príncipe Jarvan, vástago de la dinastía Escudo de Luz, es heredero del trono de Demacia. Criado para ser un modelo de las virtudes más grandes de su nación, se ve forzado a balancear las grandes expectativas que se tienen de él y su propio deseo de...","info":{"attack":6,"defense":8,"magic":3,"difficulty":5},"tags":["Tank","Fighter"],"partype":"Maná","stats":{"hp":570,"hpperlevel":90,"mp":300,"mpperlevel":40,"movespeed":340,"armor":34,"armorperlevel":3.6,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":8,"hpregenperlevel":0.7,"mpregen":6.5,"mpregenperlevel":0.45,"crit":0,"critperlevel":0,"attackdamage":64,"attackdamageperlevel":3.4,"attackspeedperlevel":2.5,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Jax_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Jax_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Jax.png"},"color":"#7e53ba","version":"12.1.1","id":"Jax","key":"24","name":"Jax","title":"el Maestro de Armas","blurb":"Inigualable tanto en sus habilidades de armamentos únicos como en su mordaz sarcasmo, Jax es el último maestro de armas conocido de Icathia. Después de que su tierra natal fue destruida por su propia arrogancia al desencadenar el Vacío, Jax y su especie...","info":{"attack":7,"defense":5,"magic":7,"difficulty":5},"tags":["Fighter","Assassin"],"partype":"Maná","stats":{"hp":593,"hpperlevel":85,"mp":339,"mpperlevel":52,"movespeed":350,"armor":36,"armorperlevel":3,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8.5,"hpregenperlevel":0.55,"mpregen":7.58,"mpregenperlevel":0.7,"crit":0,"critperlevel":0,"attackdamage":68,"attackdamageperlevel":4.25,"attackspeedperlevel":3.4,"attackspeed":0.638}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Jayce_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Jayce_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Jayce.png"},"color":"#903929","version":"12.1.1","id":"Jayce","key":"126","name":"Jayce","title":"el Defensor del Mañana","blurb":"Jayce es un brillante inventor que comprometió su vida a la defensa de Piltóver y a su firme búsqueda del progreso. Con su martillo hextech transformable en mano, Jayce utiliza su fuerza, valor y considerable inteligencia para proteger su ciudad natal...","info":{"attack":8,"defense":4,"magic":3,"difficulty":7},"tags":["Fighter","Marksman"],"partype":"Maná","stats":{"hp":560,"hpperlevel":90,"mp":375,"mpperlevel":45,"movespeed":335,"armor":27,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":125,"hpregen":6,"hpregenperlevel":0.6,"mpregen":6,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":54,"attackdamageperlevel":4.25,"attackspeedperlevel":3,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Jhin_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Jhin_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Jhin.png"},"color":"#a4265e","version":"12.1.1","id":"Jhin","key":"202","name":"Jhin","title":"el Virtuoso","blurb":"Jhin es un psicópata meticuloso que cree que el asesinato es un arte. Alguna vez un prisionero jonio, pero liberado por elementos sombríos dentro del concejo líder de Jonia, el asesino en serie ahora presta sus servicios como sicario a esa camarilla...","info":{"attack":10,"defense":2,"magic":6,"difficulty":6},"tags":["Marksman","Mage"],"partype":"Maná","stats":{"hp":585,"hpperlevel":93,"mp":300,"mpperlevel":50,"movespeed":330,"armor":24,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":3.75,"hpregenperlevel":0.55,"mpregen":6,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":59,"attackdamageperlevel":4.7,"attackspeedperlevel":0,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Jinx_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Jinx_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Jinx.png"},"color":"#3b84cb","version":"12.1.1","id":"Jinx","key":"222","name":"Jinx","title":"la Bala Perdida","blurb":"Jinx, una maniática e impulsiva criminal de Zaun, vive para sembrar el caos sin pararse a pensar en las consecuencias. Con un arsenal de juguetes letales a su disposición, desata las explosiones más brillantes y los estallidos más ruidosos para dejar un...","info":{"attack":9,"defense":2,"magic":4,"difficulty":6},"tags":["Marksman"],"partype":"Maná","stats":{"hp":610,"hpperlevel":86,"mp":245,"mpperlevel":45,"movespeed":325,"armor":26,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":3.75,"hpregenperlevel":0.5,"mpregen":6.7,"mpregenperlevel":1,"crit":0,"critperlevel":0,"attackdamage":57,"attackdamageperlevel":3.4,"attackspeedperlevel":1,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Kaisa_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Kaisa_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Kaisa.png"},"color":"#683480","version":"12.1.1","id":"Kaisa","key":"145","name":"Kai'Sa","title":"La Hija del Vacío","blurb":"Reclamada por el Vacío cuando era tan solo una niña, Kai'Sa ha logrado sobrevivir a través de absoluta tenacidad y fuerza de voluntad. Sus experiencias la han convertido en una cazadora letal y, para algunos, el presagio de un futuro para el cual...","info":{"attack":8,"defense":5,"magic":3,"difficulty":6},"tags":["Marksman"],"partype":"Maná","stats":{"hp":600,"hpperlevel":88,"mp":344.88,"mpperlevel":38,"movespeed":335,"armor":28,"armorperlevel":3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":3.5,"hpregenperlevel":0.55,"mpregen":8.2,"mpregenperlevel":0.45,"crit":0,"critperlevel":0,"attackdamage":59,"attackdamageperlevel":2,"attackspeedperlevel":1.8,"attackspeed":0.644}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Kalista_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Kalista_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Kalista.png"},"color":"#28b8e4","version":"12.1.1","id":"Kalista","key":"429","name":"Kalista","title":"el Espíritu de la Venganza","blurb":"Kalista, espectro de ira y retribución, es el espíritu eterno de la venganza, una pesadilla armada invocada de las Islas de la Sombra para cazar impostores y traidores. Los traicionados pueden llorar ensangrentados clamando venganza, pero Kalista solo...","info":{"attack":8,"defense":2,"magic":4,"difficulty":7},"tags":["Marksman"],"partype":"Maná","stats":{"hp":534,"hpperlevel":100,"mp":250,"mpperlevel":45,"movespeed":325,"armor":21,"armorperlevel":4,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":3.75,"hpregenperlevel":0.55,"mpregen":6.3,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":69,"attackdamageperlevel":3.5,"attackspeedperlevel":4,"attackspeed":0.694}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Karma_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Karma_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Karma.png"},"color":"#34c9a2","version":"12.1.1","id":"Karma","key":"43","name":"Karma","title":"la Iluminada","blurb":"Ningún mortal es capaz de ilustrar mejor las tradiciones espirituales de Jonia que Karma. Ella es la personificación de un alma antigua que ha reencarnado innumerables veces, transmitiendo sus recuerdos acumulados en cada una de las vidas nuevas...","info":{"attack":1,"defense":7,"magic":8,"difficulty":5},"tags":["Mage","Support"],"partype":"Maná","stats":{"hp":534,"hpperlevel":95,"mp":374,"mpperlevel":50,"movespeed":335,"armor":28,"armorperlevel":3.8,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":5.5,"hpregenperlevel":0.55,"mpregen":13,"mpregenperlevel":0.5,"crit":0,"critperlevel":0,"attackdamage":51,"attackdamageperlevel":3.3,"attackspeedperlevel":2.3,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Karthus_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Karthus_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Karthus.png"},"color":"#3f94bf","version":"12.1.1","id":"Karthus","key":"30","name":"Karthus","title":"el Canto de la Muerte","blurb":"Karthus, heraldo del olvido, es un espíritu inmortal cuyas canciones pavorosas preceden el horror de su dantesca aparición. Los vivos temen la eternidad de la no-muerte, pero Karthus solo ve hermosura y pureza en su abrazo, una comunión perfecta entre...","info":{"attack":2,"defense":2,"magic":10,"difficulty":7},"tags":["Mage"],"partype":"Maná","stats":{"hp":550,"hpperlevel":87,"mp":467,"mpperlevel":30.5,"movespeed":335,"armor":18,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":450,"hpregen":6.5,"hpregenperlevel":0.55,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":46,"attackdamageperlevel":3.25,"attackspeedperlevel":2.11,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Kassadin_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Kassadin_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Kassadin.png"},"color":"#8c643c","version":"12.1.1","id":"Kassadin","key":"38","name":"Kassadin","title":"el Caminante del Vacío","blurb":"Al abrirse paso a través de los lugares más oscuros del mundo, Kassadin sabe que sus días están contados. Aunque alguna vez fue un experimentado guía y aventurero de Shurima, eligió vivir en el anonimato y tener una familia en las pacíficas tribus del...","info":{"attack":3,"defense":5,"magic":8,"difficulty":8},"tags":["Assassin","Mage"],"partype":"Maná","stats":{"hp":576,"hpperlevel":105,"mp":400,"mpperlevel":87,"movespeed":335,"armor":19,"armorperlevel":2.8,"spellblock":30,"spellblockperlevel":0.5,"attackrange":150,"hpregen":6,"hpregenperlevel":0.5,"mpregen":6,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":59,"attackdamageperlevel":3.9,"attackspeedperlevel":3.7,"attackspeed":0.64}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Katarina_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Katarina_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Katarina.png"},"color":"#cc0c4c","version":"12.1.1","id":"Katarina","key":"55","name":"Katarina","title":"la Daga Siniestra","blurb":"Decisiva en su juicio y letal en combate, Katarina es una asesina noxiana del más alto calibre. Como la hija mayor del legendario General Du Couteau, ella hizo que reconocieran sus talentos con agiles muertes a sus enemigos desprevenidos. Su feroz...","info":{"attack":4,"defense":3,"magic":9,"difficulty":8},"tags":["Assassin","Mage"],"partype":"Ninguno","stats":{"hp":602,"hpperlevel":94,"mp":0,"mpperlevel":0,"movespeed":335,"armor":28,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":7.5,"hpregenperlevel":0.7,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":58,"attackdamageperlevel":3.2,"attackspeedperlevel":2.74,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Kayle_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Kayle_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Kayle.png"},"color":"#f2be57","version":"12.1.1","id":"Kayle","key":"10","name":"Kayle","title":"la Justiciera","blurb":"Nacida de un Aspecto targoniano durante el punto culminante de las Guerras Rúnicas, Kayle honra el legado de su madre al pelear por la justicia con sus alas de fuego divino. Ella y su hermana gemela, Morgana, fueron las protectoras de Demacia durante...","info":{"attack":6,"defense":6,"magic":7,"difficulty":7},"tags":["Fighter","Support"],"partype":"Maná","stats":{"hp":600,"hpperlevel":85,"mp":330,"mpperlevel":50,"movespeed":335,"armor":26,"armorperlevel":3,"spellblock":26,"spellblockperlevel":0.5,"attackrange":175,"hpregen":5,"hpregenperlevel":0.5,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":50,"attackdamageperlevel":2.5,"attackspeedperlevel":1.5,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Kayn_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Kayn_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Kayn.png"},"color":"#d42ad4","version":"12.1.1","id":"Kayn","key":"141","name":"Kayn","title":"el Segador Sombrío","blurb":"Shieda Kayn, un practicante sin igual de la letal magia sombría, lucha para alcanzar su verdadero destino: conducir la Orden de la Sombra hacia una nueva era de supremacía joniana. Esgrime la oscura arma viviente Rhaast, inmutable ante la progresiva...","info":{"attack":10,"defense":6,"magic":1,"difficulty":8},"tags":["Fighter","Assassin"],"partype":"Maná","stats":{"hp":585,"hpperlevel":85,"mp":410,"mpperlevel":50,"movespeed":340,"armor":38,"armorperlevel":3.3,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":8,"hpregenperlevel":0.75,"mpregen":11.5,"mpregenperlevel":0.95,"crit":0,"critperlevel":0,"attackdamage":68,"attackdamageperlevel":3.3,"attackspeedperlevel":2.7,"attackspeed":0.669}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Kennen_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Kennen_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Kennen.png"},"color":"#f4d424","version":"12.1.1","id":"Kennen","key":"85","name":"Kennen","title":"el Corazón de la Tempestad","blurb":"Además de ser un rápido ejecutor del balance Jonio, Kennen es el único miembro yordle del Kinkou. A pesar de su pequeña y peluda estatura, está ansioso por enfrentarse a cualquier amenaza con una tormenta de shuriken y desbordante entusiasmo. A lado de...","info":{"attack":6,"defense":4,"magic":7,"difficulty":4},"tags":["Mage","Marksman"],"partype":"Energía","stats":{"hp":541,"hpperlevel":84,"mp":200,"mpperlevel":0,"movespeed":335,"armor":29,"armorperlevel":3.75,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":5.5,"hpregenperlevel":0.65,"mpregen":50,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":48,"attackdamageperlevel":3.75,"attackspeedperlevel":3.4,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Khazix_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Khazix_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Khazix.png"},"color":"#5227c4","version":"12.1.1","id":"Khazix","key":"121","name":"Kha'Zix","title":"el Saqueador del Vacío","blurb":"El Vacío crece y el Vacío se adapta. En ninguna de sus múltiples manifestaciones estas verdades son más evidentes que en Kha'Zix. La evolución es la esencia de este mutante horror que nació para sobrevivir y acabar con los más fuertes. Cuando se le...","info":{"attack":9,"defense":4,"magic":3,"difficulty":6},"tags":["Assassin"],"partype":"Maná","stats":{"hp":573,"hpperlevel":85,"mp":327,"mpperlevel":40,"movespeed":350,"armor":36,"armorperlevel":3,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":7.5,"hpregenperlevel":0.75,"mpregen":7.59,"mpregenperlevel":0.5,"crit":0,"critperlevel":0,"attackdamage":63,"attackdamageperlevel":3.1,"attackspeedperlevel":2.7,"attackspeed":0.668}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Kindred_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Kindred_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Kindred.png"},"color":"#44cce4","version":"12.1.1","id":"Kindred","key":"203","name":"Kindred","title":"los Cazadores Eternos","blurb":"Separados, pero nunca divididos, los Kindred representan las esencias hermanas de la muerte. La flecha de la Oveja ofrece una vía de escape rápida para los mortales que acepten su destino. El Lobo sale a la caza de los que huyen de su final y les...","info":{"attack":8,"defense":2,"magic":2,"difficulty":4},"tags":["Marksman"],"partype":"Maná","stats":{"hp":540,"hpperlevel":85,"mp":300,"mpperlevel":35,"movespeed":325,"armor":29,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":500,"hpregen":7,"hpregenperlevel":0.55,"mpregen":7,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":65,"attackdamageperlevel":2.5,"attackspeedperlevel":3.5,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Kled_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Kled_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Kled.png"},"color":"#a1630a","version":"12.1.1","id":"Kled","key":"240","name":"Kled","title":"el Jinete Cascarrabias","blurb":"El yordle Kled, guerrero tan temerario como insoportable, es la encarnación de la bravuconería de Noxus. Es un ícono amado por los soldados del imperio, que se ha ganado la desconfianza de sus oficiales y el desprecio de la nobleza. Muchos aseguran que...","info":{"attack":8,"defense":2,"magic":2,"difficulty":7},"tags":["Fighter","Tank"],"partype":"Coraje","stats":{"hp":340,"hpperlevel":70,"mp":100,"mpperlevel":0,"movespeed":345,"armor":35,"armorperlevel":4,"spellblock":28,"spellblockperlevel":1.25,"attackrange":125,"hpregen":6,"hpregenperlevel":0.75,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":65,"attackdamageperlevel":3.5,"attackspeedperlevel":3.5,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/KogMaw_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/KogMaw_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/KogMaw.png"},"color":"#9c8040","version":"12.1.1","id":"KogMaw","key":"96","name":"Kog'Maw","title":"la Boca del Abismo","blurb":"Arrojada desde una incursión de un Vacío putrefacto en las profundidades de los deshechos de Icathia, Kog'Maw es una criatura inquisitiva pero pútrida, con una boca ácida y enorme. Este particular engendro del Vacío necesita roer y babear todo para...","info":{"attack":8,"defense":2,"magic":5,"difficulty":6},"tags":["Marksman","Mage"],"partype":"Maná","stats":{"hp":565,"hpperlevel":85,"mp":325,"mpperlevel":40,"movespeed":330,"armor":24,"armorperlevel":3.25,"spellblock":30,"spellblockperlevel":0.5,"attackrange":500,"hpregen":3.75,"hpregenperlevel":0.55,"mpregen":8.75,"mpregenperlevel":0.7,"crit":0,"critperlevel":0,"attackdamage":61,"attackdamageperlevel":3.11,"attackspeedperlevel":2.65,"attackspeed":0.665}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Leblanc_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Leblanc_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Leblanc.png"},"color":"#b43c4c","version":"12.1.1","id":"Leblanc","key":"7","name":"LeBlanc","title":"la Maquiavélica","blurb":"Misteriosa hasta para los otros miembros de Rosa Negra, LeBlanc es uno de los tantos nombres de una mujer pálida que ha manipulado personas y eventos desde los primeros días de Noxus. Usando su magia para reflejarse a sí misma, esta hechicera puede...","info":{"attack":1,"defense":4,"magic":10,"difficulty":9},"tags":["Assassin","Mage"],"partype":"Maná","stats":{"hp":528,"hpperlevel":97,"mp":334,"mpperlevel":50,"movespeed":340,"armor":22,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":7.5,"hpregenperlevel":0.55,"mpregen":6,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":55,"attackdamageperlevel":3.5,"attackspeedperlevel":1.4,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/LeeSin_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/LeeSin_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/LeeSin.png"},"color":"#d62750","version":"12.1.1","id":"LeeSin","key":"64","name":"Lee Sin","title":"el Monje Ciego","blurb":"Lee Sin, maestro de las antiguas artes marciales jonianas, es un peleador ejemplar que canaliza la esencia del espíritu del dragón para enfrentar cualquier desafío que se le presente. A pesar de que perdió la vista hace muchos años, el monje guerrero ha...","info":{"attack":8,"defense":5,"magic":3,"difficulty":6},"tags":["Fighter","Assassin"],"partype":"Energía","stats":{"hp":575,"hpperlevel":85,"mp":200,"mpperlevel":0,"movespeed":345,"armor":36,"armorperlevel":3.7,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":7.5,"hpregenperlevel":0.7,"mpregen":50,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":68,"attackdamageperlevel":3.7,"attackspeedperlevel":3,"attackspeed":0.651}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Leona_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Leona_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Leona.png"},"color":"#c26b28","version":"12.1.1","id":"Leona","key":"89","name":"Leona","title":"el Radiante Amanecer","blurb":"Leona es una guerrera imbuida con fuego solar y templaria de los Solari que defiende el Monte Targón con la Espada del Cénit y el Escudo del Amanecer. Su piel resplandece con el brillo de una estrella y sus ojos arden con el poder del aspecto celestial...","info":{"attack":4,"defense":8,"magic":3,"difficulty":4},"tags":["Tank","Support"],"partype":"Maná","stats":{"hp":576,"hpperlevel":87,"mp":302,"mpperlevel":40,"movespeed":335,"armor":47,"armorperlevel":3.6,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8.5,"hpregenperlevel":0.85,"mpregen":6,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":60,"attackdamageperlevel":3,"attackspeedperlevel":2.9,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Lillia_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Lillia_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Lillia.png"},"color":"#b95a49","version":"12.1.1","id":"Lillia","key":"876","name":"Lillia","title":"La Flor Tímida","blurb":"Lillia, la extremadamente tímida cervatilla, deambula nerviosa por los bosques de Jonia. Escondida fuera de la vista de los mortales, cuya misteriosa naturaleza la ha cautivado e intimidado por mucho tiempo, Lillia espera descubrir por qué sus sueños ya...","info":{"attack":0,"defense":2,"magic":10,"difficulty":8},"tags":["Fighter","Mage"],"partype":"Maná","stats":{"hp":580,"hpperlevel":90,"mp":410,"mpperlevel":50,"movespeed":330,"armor":22,"armorperlevel":4,"spellblock":32,"spellblockperlevel":0.75,"attackrange":325,"hpregen":2.5,"hpregenperlevel":0.55,"mpregen":11.5,"mpregenperlevel":0.95,"crit":0,"critperlevel":0,"attackdamage":61,"attackdamageperlevel":3.1,"attackspeedperlevel":2.7,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Lissandra_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Lissandra_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Lissandra.png"},"color":"#3c6ca4","version":"12.1.1","id":"Lissandra","key":"127","name":"Lissandra","title":"la Bruja de Hielo","blurb":"La magia de Lissandra transforma el poder del hielo en algo oscuro y terrible. Con la fuerza de su hielo negro, además de congelar a aquellos que la enfrentan, los empala y los destruye sin mostrar piedad. Se le conoce como ''la Bruja de Hielo'' entre...","info":{"attack":2,"defense":5,"magic":8,"difficulty":6},"tags":["Mage"],"partype":"Maná","stats":{"hp":550,"hpperlevel":90,"mp":475,"mpperlevel":30,"movespeed":325,"armor":22,"armorperlevel":3.7,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":7,"hpregenperlevel":0.55,"mpregen":8,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":55,"attackdamageperlevel":2.7,"attackspeedperlevel":1.36,"attackspeed":0.656}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Lucian_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Lucian_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Lucian.png"},"color":"#d49c7c","version":"12.1.1","id":"Lucian","key":"236","name":"Lucian","title":"el Purificador","blurb":"Lucian es un Centinela de la Luz y un sombrío cazador de espíritus inmortales, a los que persigue incansablemente y aniquila con sus dos pistolas reliquia. Después de que el espectro Thresh matara a su esposa, Lucian se embarcó en el camino de la...","info":{"attack":8,"defense":5,"magic":3,"difficulty":6},"tags":["Marksman"],"partype":"Maná","stats":{"hp":571,"hpperlevel":86,"mp":348.88,"mpperlevel":38,"movespeed":335,"armor":28,"armorperlevel":3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":500,"hpregen":3.75,"hpregenperlevel":0.65,"mpregen":8.18,"mpregenperlevel":0.7,"crit":0,"critperlevel":0,"attackdamage":62,"attackdamageperlevel":2.3,"attackspeedperlevel":3.3,"attackspeed":0.638}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Lulu_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Lulu_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Lulu.png"},"color":"#b45959","version":"12.1.1","id":"Lulu","key":"117","name":"Lulu","title":"La Hechicera Hadística","blurb":"La maga yordle, Lulu, es conocida por conjurar ilusiones oníricas y extravagantes criaturas mientras vaga por Runaterra con su hada compañera, Pix. Lulu puede darle forma a la realidad a su antojo, deformando el tejido del mundo, y lo que ve como los...","info":{"attack":4,"defense":5,"magic":7,"difficulty":5},"tags":["Support","Mage"],"partype":"Maná","stats":{"hp":525,"hpperlevel":74,"mp":350,"mpperlevel":55,"movespeed":330,"armor":29,"armorperlevel":3.7,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":6,"hpregenperlevel":0.6,"mpregen":11,"mpregenperlevel":0.6,"crit":0,"critperlevel":0,"attackdamage":47,"attackdamageperlevel":2.6,"attackspeedperlevel":2.25,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Lux_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Lux_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Lux.png"},"color":"#cc7448","version":"12.1.1","id":"Lux","key":"99","name":"Lux","title":"la Dama Luminosa","blurb":"Luxanna Guardia de la Corona proviene de Demacia, un reino aislado en el que la gente observa con terror y sospecha a las habilidades mágicas. Con el talento de manipular la luz a su voluntad, Lux creció temiendo que la descubrieran y exiliaran, lo que...","info":{"attack":2,"defense":4,"magic":9,"difficulty":5},"tags":["Mage","Support"],"partype":"Maná","stats":{"hp":490,"hpperlevel":85,"mp":480,"mpperlevel":23.5,"movespeed":330,"armor":19,"armorperlevel":4,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":5.5,"hpregenperlevel":0.55,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":54,"attackdamageperlevel":3.3,"attackspeedperlevel":2,"attackspeed":0.669}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Malphite_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Malphite_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Malphite.png"},"color":"#a1a12e","version":"12.1.1","id":"Malphite","key":"54","name":"Malphite","title":"el Fragmento del Monolito","blurb":"Como una criatura masiva de piedra viviente, Malphite lucha para imponer orden bendito en un mundo caótico. Nacido como un fragmento originario de un obelisco sobrenatural llamado Monolito, usó su tremendo poderío elemental para mantener y proteger a su...","info":{"attack":5,"defense":9,"magic":7,"difficulty":2},"tags":["Tank","Fighter"],"partype":"Maná","stats":{"hp":574,"hpperlevel":90,"mp":280,"mpperlevel":60,"movespeed":335,"armor":37,"armorperlevel":3.75,"spellblock":28,"spellblockperlevel":1.25,"attackrange":125,"hpregen":7,"hpregenperlevel":0.55,"mpregen":7.32,"mpregenperlevel":0.55,"crit":0,"critperlevel":0,"attackdamage":62,"attackdamageperlevel":4,"attackspeedperlevel":3.4,"attackspeed":0.736}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Malzahar_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Malzahar_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Malzahar.png"},"color":"#6a0abb","version":"12.1.1","id":"Malzahar","key":"90","name":"Malzahar","title":"el Profeta del Vacío","blurb":"Como vidente fanático dedicado a la unificación de toda la vida, Malzahar realmente cree que el recién emergido Vacío es el camino a la salvación de Runaterra. En los páramos desérticos de Shurima, siguió los susurros en su mente que lo llevaron a la...","info":{"attack":2,"defense":2,"magic":9,"difficulty":6},"tags":["Mage","Assassin"],"partype":"Maná","stats":{"hp":510,"hpperlevel":87,"mp":375,"mpperlevel":27.5,"movespeed":335,"armor":18,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":500,"hpregen":6,"hpregenperlevel":0.6,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":55,"attackdamageperlevel":3,"attackspeedperlevel":1.5,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Maokai_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Maokai_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Maokai.png"},"color":"#2884a0","version":"12.1.1","id":"Maokai","key":"57","name":"Maokai","title":"el Treant Retorcido","blurb":"Maokai es un imponente y feroz treant que lucha contra los horrores antinaturales de las Islas de la Sombra. Las ansias de venganza lo inundaron después de que un cataclismo mágico destruyera su hogar y sobrevive a la podredumbre únicamente gracias las...","info":{"attack":3,"defense":8,"magic":6,"difficulty":3},"tags":["Tank","Mage"],"partype":"Maná","stats":{"hp":565,"hpperlevel":95,"mp":375,"mpperlevel":43,"movespeed":335,"armor":39,"armorperlevel":4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":5,"hpregenperlevel":0.75,"mpregen":7.2,"mpregenperlevel":0.6,"crit":0,"critperlevel":0,"attackdamage":64,"attackdamageperlevel":3.3,"attackspeedperlevel":2.125,"attackspeed":0.8}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/MasterYi_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/MasterYi_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/MasterYi.png"},"color":"#c2a244","version":"12.1.1","id":"MasterYi","key":"11","name":"Maestro Yi","title":"la Espada Wuju","blurb":"El Maestro Yi templó su cuerpo y afinó su mente para que su forma de pensar y actuar se convirtieran casi en uno. A pesar de que solo elige actuar con violencia como último recurso, la gracia y la velocidad de su espada garantizan que la resolución...","info":{"attack":10,"defense":4,"magic":2,"difficulty":4},"tags":["Assassin","Fighter"],"partype":"Maná","stats":{"hp":599,"hpperlevel":92,"mp":251,"mpperlevel":42,"movespeed":355,"armor":33,"armorperlevel":3,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":7.5,"hpregenperlevel":0.65,"mpregen":7.26,"mpregenperlevel":0.45,"crit":0,"critperlevel":0,"attackdamage":66,"attackdamageperlevel":3,"attackspeedperlevel":2,"attackspeed":0.679}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/MissFortune_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/MissFortune_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/MissFortune.png"},"color":"#dc6c2c","version":"12.1.1","id":"MissFortune","key":"21","name":"Miss Fortune","title":"la Cazarrecompensas","blurb":"Sarah Fortune, capitana de Aguasturbias famosa por su apariencia, pero temida por su brutalidad, es una figura severa entre los criminales más duros de la ciudad portuaria. Cuando era niña fue testigo de cómo el rey Gangplank asesinó a su familia, un...","info":{"attack":8,"defense":2,"magic":5,"difficulty":1},"tags":["Marksman"],"partype":"Maná","stats":{"hp":570,"hpperlevel":93,"mp":300,"mpperlevel":35,"movespeed":325,"armor":28,"armorperlevel":3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":3.75,"hpregenperlevel":0.65,"mpregen":8.04,"mpregenperlevel":0.65,"crit":0,"critperlevel":0,"attackdamage":52,"attackdamageperlevel":2.7,"attackspeedperlevel":3,"attackspeed":0.656}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/MonkeyKing_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/MonkeyKing_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/MonkeyKing.png"},"color":"#e73e21","version":"12.1.1","id":"MonkeyKing","key":"62","name":"Wukong","title":"el Rey de los Monos","blurb":"Wukong es un vastaya embaucador que usa su fuerza, agilidad e inteligencia para confundir a sus oponentes y obtener la ventaja. Tras encontrar un amigo de por vida en el guerrero conocido como Maestro Yi, Wukong se convirtió en el último aprendiz de la...","info":{"attack":8,"defense":5,"magic":2,"difficulty":3},"tags":["Fighter","Tank"],"partype":"Maná","stats":{"hp":540,"hpperlevel":85,"mp":300,"mpperlevel":65,"movespeed":345,"armor":31,"armorperlevel":3.5,"spellblock":28,"spellblockperlevel":1.25,"attackrange":175,"hpregen":2.5,"hpregenperlevel":0.65,"mpregen":8,"mpregenperlevel":0.65,"crit":0,"critperlevel":0,"attackdamage":68,"attackdamageperlevel":3.5,"attackspeedperlevel":3,"attackspeed":0.711}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Mordekaiser_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Mordekaiser_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Mordekaiser.png"},"color":"#2ca47c","version":"12.1.1","id":"Mordekaiser","key":"82","name":"Mordekaiser","title":"el Renacido de Hierro","blurb":"Asesinado dos veces y renacido tres, Mordekaiser es un señor de la guerra brutal de una época olvidada, quien usa su brujería nigromántica para atar almas a una esclavitud eterna. Quedan muy pocos que recuerden sus conquistas precedentes o que conozcan...","info":{"attack":4,"defense":6,"magic":7,"difficulty":4},"tags":["Fighter"],"partype":"Escudo","stats":{"hp":575,"hpperlevel":90,"mp":100,"mpperlevel":0,"movespeed":335,"armor":37,"armorperlevel":3,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":5,"hpregenperlevel":0.75,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":61,"attackdamageperlevel":4,"attackspeedperlevel":1,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Morgana_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Morgana_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Morgana.png"},"color":"#e939e4","version":"12.1.1","id":"Morgana","key":"25","name":"Morgana","title":"la Desolada","blurb":"Atribulada entre su naturaleza celestial y mortal, Morgana ató sus alas para aceptar su humanidad e inflige su dolor y amargura en los deshonestos y los corruptos. Rechaza las leyes y tradiciones que considera injustas y pelea por la verdad desde las...","info":{"attack":1,"defense":6,"magic":8,"difficulty":1},"tags":["Mage","Support"],"partype":"Maná","stats":{"hp":560,"hpperlevel":90,"mp":340,"mpperlevel":60,"movespeed":335,"armor":25,"armorperlevel":3.8,"spellblock":30,"spellblockperlevel":0.5,"attackrange":450,"hpregen":5.5,"hpregenperlevel":0.4,"mpregen":11,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":56,"attackdamageperlevel":3.5,"attackspeedperlevel":1.53,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Nami_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Nami_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Nami.png"},"color":"#24bce8","version":"12.1.1","id":"Nami","key":"267","name":"Nami","title":"la Invocadora de Mareas","blurb":"Como una joven y obstinada vastaya de los mares, Nami fue la primera de la tribu Marai en dejar las olas y aventurarse a tierra firme cuando se quebrantó el ancestral acuerdo con los targonianos. Sin ninguna otra opción, se dedicó a la tarea de...","info":{"attack":4,"defense":3,"magic":7,"difficulty":5},"tags":["Support","Mage"],"partype":"Maná","stats":{"hp":490,"hpperlevel":74,"mp":365,"mpperlevel":43,"movespeed":335,"armor":29,"armorperlevel":4,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":5.5,"hpregenperlevel":0.55,"mpregen":11.5,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":51,"attackdamageperlevel":3.1,"attackspeedperlevel":2.61,"attackspeed":0.644}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Nasus_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Nasus_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Nasus.png"},"color":"#8837cb","version":"12.1.1","id":"Nasus","key":"75","name":"Nasus","title":"el Curador de las Arenas","blurb":"Nasus es una imponente criatura Ascendida con cabeza de chacal procedente de la antigua Shurima; una figura heroica a la que la gente del desierto encumbró al nivel de semidiós. Poseedor de una increíble inteligencia, fue un guardián del saber y...","info":{"attack":7,"defense":5,"magic":6,"difficulty":6},"tags":["Fighter","Tank"],"partype":"Maná","stats":{"hp":561,"hpperlevel":90,"mp":326,"mpperlevel":62,"movespeed":350,"armor":34,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":9,"hpregenperlevel":0.9,"mpregen":7.44,"mpregenperlevel":0.5,"crit":0,"critperlevel":0,"attackdamage":67,"attackdamageperlevel":3.5,"attackspeedperlevel":3.48,"attackspeed":0.638}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Nautilus_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Nautilus_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Nautilus.png"},"color":"#f46326","version":"12.1.1","id":"Nautilus","key":"111","name":"Nautilus","title":"el Titán de las Profundidades","blurb":"Una solitaria leyenda tan antigua como los primeros muelles hundidos de Aguasturbias, el gigante en armadura conocido como Nautilus deambula las oscuras aguas de la costa de las Islas de la Llama Azul. Motivado por una traición ya olvidada, ataca sin...","info":{"attack":4,"defense":6,"magic":6,"difficulty":6},"tags":["Tank","Fighter"],"partype":"Maná","stats":{"hp":576,"hpperlevel":86,"mp":400,"mpperlevel":47,"movespeed":325,"armor":39,"armorperlevel":3.75,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":8.5,"hpregenperlevel":0.55,"mpregen":8.63,"mpregenperlevel":0.5,"crit":0,"critperlevel":0,"attackdamage":61,"attackdamageperlevel":3.3,"attackspeedperlevel":1,"attackspeed":0.706}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Neeko_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Neeko_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Neeko.png"},"color":"#b87c34","version":"12.1.1","id":"Neeko","key":"518","name":"Neeko","title":"la Camaleón Curiosa","blurb":"Proveniente de una tribu vastaya perdida desde hace mucho tiempo, Neeko puede mezclarse en cualquier multitud adoptando la apariencia de los demás e incluso absorber un poco de su estado emocional para distinguir a un amigo de un enemigo en tan solo un...","info":{"attack":1,"defense":1,"magic":9,"difficulty":5},"tags":["Mage","Support"],"partype":"Maná","stats":{"hp":540,"hpperlevel":90,"mp":450,"mpperlevel":30,"movespeed":340,"armor":21,"armorperlevel":4,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":7.5,"hpregenperlevel":0.75,"mpregen":7,"mpregenperlevel":0.7,"crit":0,"critperlevel":0,"attackdamage":48,"attackdamageperlevel":2.5,"attackspeedperlevel":3.5,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Nidalee_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Nidalee_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Nidalee.png"},"color":"#c09d6d","version":"12.1.1","id":"Nidalee","key":"76","name":"Nidalee","title":"la Cazadora Salvaje","blurb":"Criada en las profundidades de la jungla, Nidalee es una rastreadora maestra que puede transformarse en puma a su voluntad. Ni mujer, ni bestia, ella defiende salvajemente su territorio de todos y cada uno de los intrusos, con trampas cuidadosamente...","info":{"attack":5,"defense":4,"magic":7,"difficulty":8},"tags":["Assassin","Mage"],"partype":"Maná","stats":{"hp":570,"hpperlevel":95,"mp":295,"mpperlevel":45,"movespeed":335,"armor":28,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":6,"hpregenperlevel":0.6,"mpregen":6,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":58,"attackdamageperlevel":3.5,"attackspeedperlevel":3.22,"attackspeed":0.638}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Nocturne_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Nocturne_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Nocturne.png"},"color":"#1c94d4","version":"12.1.1","id":"Nocturne","key":"56","name":"Nocturne","title":"la Pesadilla Eterna","blurb":"Nocturne, una fusión demoniaca traída de las pesadillas que aterran a todas las mentes conscientes, se convirtió en una fuerza primigenia de maldad pura. Su aspecto de caos líquido es el de una sombra sin rostro con ojos crueles y armado con unas...","info":{"attack":9,"defense":5,"magic":2,"difficulty":4},"tags":["Assassin","Fighter"],"partype":"Maná","stats":{"hp":585,"hpperlevel":85,"mp":275,"mpperlevel":35,"movespeed":345,"armor":38,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":0.75,"attackrange":125,"hpregen":7,"hpregenperlevel":0.75,"mpregen":7,"mpregenperlevel":0.45,"crit":0,"critperlevel":0,"attackdamage":62,"attackdamageperlevel":3.1,"attackspeedperlevel":2.7,"attackspeed":0.721}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Nunu_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Nunu_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Nunu.png"},"color":"#3ebae2","version":"12.1.1","id":"Nunu","key":"20","name":"Nunu y Willump","title":"el Niño y su Yeti","blurb":"Había una vez un niño que quería demostrar que era un héroe al matar a un temible monstruo... solo para descubrir que la bestia, un yeti solitario y mágico, simplemente necesitaba un amigo. Unidos por un poder ancestral y el amor compartido por las...","info":{"attack":4,"defense":6,"magic":7,"difficulty":4},"tags":["Tank","Fighter"],"partype":"Maná","stats":{"hp":540,"hpperlevel":82,"mp":280,"mpperlevel":42,"movespeed":345,"armor":29,"armorperlevel":3,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":5,"hpregenperlevel":0.8,"mpregen":7,"mpregenperlevel":0.5,"crit":0,"critperlevel":0,"attackdamage":61,"attackdamageperlevel":3,"attackspeedperlevel":2.25,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Olaf_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Olaf_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Olaf.png"},"color":"#e38d2b","version":"12.1.1","id":"Olaf","key":"2","name":"Olaf","title":"el Berserker","blurb":"Como una fuerza imparable de destrucción, el portador de hachas Olaf no quiere nada más que morir en glorioso combate. Proveniente de la brutal península freljordiana de Lokfar, alguna vez recibió una profecía que predecía su muerte pacífica, que es el...","info":{"attack":9,"defense":5,"magic":3,"difficulty":3},"tags":["Fighter","Tank"],"partype":"Maná","stats":{"hp":575,"hpperlevel":100,"mp":316,"mpperlevel":42,"movespeed":350,"armor":35,"armorperlevel":3,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8.5,"hpregenperlevel":0.9,"mpregen":7.5,"mpregenperlevel":0.6,"crit":0,"critperlevel":0,"attackdamage":68,"attackdamageperlevel":3.5,"attackspeedperlevel":2.7,"attackspeed":0.694}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Orianna_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Orianna_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Orianna.png"},"color":"#c87636","version":"12.1.1","id":"Orianna","key":"61","name":"Orianna","title":"la Doncella Mecánica","blurb":"Aunque una vez una curiosa chica de carne y hueso, Orianna es ahora una maravilla tecnológica hecha completamente de relojería. Sufrió una terrible enfermedad después de un accidente en los bajos distritos de Zaun y su deteriorado cuerpo tuvo que ser...","info":{"attack":4,"defense":3,"magic":9,"difficulty":7},"tags":["Mage","Support"],"partype":"Maná","stats":{"hp":530,"hpperlevel":91,"mp":418,"mpperlevel":25,"movespeed":325,"armor":17,"armorperlevel":3,"spellblock":26,"spellblockperlevel":0.5,"attackrange":525,"hpregen":7,"hpregenperlevel":0.55,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":40,"attackdamageperlevel":2.6,"attackspeedperlevel":3.5,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Ornn_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Ornn_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Ornn.png"},"color":"#ce206a","version":"12.1.1","id":"Ornn","key":"516","name":"Ornn","title":"El Fuego Debajo de la Montaña","blurb":"Ornn es el espíritu Fréljordiano de las forjas y artesanías. Trabaja en solitario en una gigantesca forja hecha en las cavernas de lava bajo el volcán conocido como Hogar. Allí, aviva las calderas burbujeantes de piedra fundida para purificar los...","info":{"attack":5,"defense":9,"magic":3,"difficulty":5},"tags":["Tank","Fighter"],"partype":"Maná","stats":{"hp":590,"hpperlevel":95,"mp":340.6,"mpperlevel":65,"movespeed":335,"armor":33,"armorperlevel":4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":9,"hpregenperlevel":0.9,"mpregen":8.01,"mpregenperlevel":0.6,"crit":0,"critperlevel":0,"attackdamage":69,"attackdamageperlevel":3.5,"attackspeedperlevel":2,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Pantheon_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Pantheon_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Pantheon.png"},"color":"#4848b6","version":"12.1.1","id":"Pantheon","key":"80","name":"Pantheon","title":"la Lanza Inquebrantable","blurb":"Antaño un reticente huésped del Aspecto de la guerra, Atreus sobrevivió cuando el poder celestial en su interior fue asesinado, negándose a sucumbir ante un golpe que, de un desgarro, borró estrellas de los cielos. Con el tiempo, aprendió a aceptar el...","info":{"attack":9,"defense":4,"magic":3,"difficulty":4},"tags":["Fighter","Assassin"],"partype":"Maná","stats":{"hp":580,"hpperlevel":95,"mp":317.12,"mpperlevel":31,"movespeed":345,"armor":40,"armorperlevel":3.75,"spellblock":28,"spellblockperlevel":1.25,"attackrange":175,"hpregen":9,"hpregenperlevel":0.65,"mpregen":7.36,"mpregenperlevel":0.45,"crit":0,"critperlevel":0,"attackdamage":64,"attackdamageperlevel":3.3,"attackspeedperlevel":2.95,"attackspeed":0.644}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Poppy_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Poppy_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Poppy.png"},"color":"#c92651","version":"12.1.1","id":"Poppy","key":"78","name":"Poppy","title":"la Guardiana del Martillo","blurb":"A Runaterra no le hacen falta campeones valientes, pero pocos son tan tenaces como Poppy. Como portadora del legendario martillo de Orlon, un arma que la supera al doble de tamaño, esta determinada yordle ha pasado años en búsqueda del aclamado ''Héroe...","info":{"attack":6,"defense":7,"magic":2,"difficulty":6},"tags":["Tank","Fighter"],"partype":"Maná","stats":{"hp":540,"hpperlevel":90,"mp":280,"mpperlevel":40,"movespeed":345,"armor":38,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8,"hpregenperlevel":0.8,"mpregen":7,"mpregenperlevel":0.7,"crit":0,"critperlevel":0,"attackdamage":64,"attackdamageperlevel":4,"attackspeedperlevel":2.5,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Pyke_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Pyke_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Pyke.png"},"color":"#326862","version":"12.1.1","id":"Pyke","key":"555","name":"Pyke","title":"el Destripador del Muelle Rojo","blurb":"Un reconocido arponero de los Muelles del Matadero de Aguasturbias, Pyke debió encontrarse con su fin en el estómago de un enorme leviatán... pero logró regresar. Ahora acecha los húmedos callejones y rincones de su anterior ciudad y usa sus nuevos...","info":{"attack":9,"defense":3,"magic":1,"difficulty":7},"tags":["Support","Assassin"],"partype":"Maná","stats":{"hp":600,"hpperlevel":90,"mp":415,"mpperlevel":50,"movespeed":330,"armor":45,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":150,"hpregen":7,"hpregenperlevel":0.5,"mpregen":8,"mpregenperlevel":1,"crit":0,"critperlevel":0,"attackdamage":62,"attackdamageperlevel":2,"attackspeedperlevel":2.5,"attackspeed":0.667}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Qiyana_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Qiyana_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Qiyana.png"},"color":"#f46217","version":"12.1.1","id":"Qiyana","key":"246","name":"Qiyana","title":"La Emperatriz de los Elementos","blurb":"En la ciudad selvática de Ixaocan, Qiyana trama su despiadado camino hacia el trono de Yun Tal. Última en la línea de sucesión familiar, se enfrenta a quienes se interpongan en su camino con descarada confianza y un dominio nunca antes visto de la magia...","info":{"attack":0,"defense":2,"magic":4,"difficulty":8},"tags":["Assassin","Fighter"],"partype":"Maná","stats":{"hp":520,"hpperlevel":110,"mp":320,"mpperlevel":50,"movespeed":335,"armor":28,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":150,"hpregen":7.5,"hpregenperlevel":0.9,"mpregen":8,"mpregenperlevel":0.7,"crit":0,"critperlevel":0,"attackdamage":66,"attackdamageperlevel":3.1,"attackspeedperlevel":2.1,"attackspeed":0.688}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Quinn_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Quinn_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Quinn.png"},"color":"#ac544c","version":"12.1.1","id":"Quinn","key":"133","name":"Quinn","title":"las Alas de Demacia","blurb":"Quinn es una caballero y exploradora de Demacia que se embarca en misiones que la llevan al mismo núcleo del territorio enemigo. Comparte un vínculo inquebrantable con su legendaria águila, Valor, y sus enemigos a menudo quedan derrotados antes de darse...","info":{"attack":9,"defense":4,"magic":2,"difficulty":5},"tags":["Marksman","Assassin"],"partype":"Maná","stats":{"hp":533,"hpperlevel":85,"mp":269,"mpperlevel":35,"movespeed":335,"armor":28,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":5.5,"hpregenperlevel":0.55,"mpregen":6.97,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":59,"attackdamageperlevel":2.4,"attackspeedperlevel":3.1,"attackspeed":0.668}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Rakan_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Rakan_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Rakan.png"},"color":"#c48494","version":"12.1.1","id":"Rakan","key":"497","name":"Rakan","title":"El Encantador","blurb":"Tan impredecible como encantador, Rakan es un vastaya infame que siempre se mete en problemas, además de ser el mejor guerrero bailarín en la historia tribal de Lhotlan. Para los humanos de las tierras altas de Jonia, su nombre ha sido por mucho tiempo...","info":{"attack":2,"defense":4,"magic":8,"difficulty":5},"tags":["Support"],"partype":"Maná","stats":{"hp":540,"hpperlevel":85,"mp":315,"mpperlevel":50,"movespeed":335,"armor":32,"armorperlevel":3.9,"spellblock":32,"spellblockperlevel":1.25,"attackrange":300,"hpregen":5,"hpregenperlevel":0.5,"mpregen":8.75,"mpregenperlevel":0.5,"crit":0,"critperlevel":0,"attackdamage":62,"attackdamageperlevel":3.5,"attackspeedperlevel":3,"attackspeed":0.635}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Rammus_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Rammus_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Rammus.png"},"color":"#d47823","version":"12.1.1","id":"Rammus","key":"33","name":"Rammus","title":"el Armadurillo","blurb":"Idolatrado por muchos, desdeñado por algunos, mistificado por todos, el curioso ser Rammus, es un enigma. Protegido por un caparazón con púas, Rammus inspira teorías cada vez más disparatadas sobre su origen a dondequiera que vaya: desde semidiós hasta...","info":{"attack":4,"defense":10,"magic":5,"difficulty":5},"tags":["Tank","Fighter"],"partype":"Maná","stats":{"hp":564,"hpperlevel":80,"mp":310,"mpperlevel":33,"movespeed":335,"armor":36,"armorperlevel":4.3,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8,"hpregenperlevel":0.55,"mpregen":7.84,"mpregenperlevel":0.5,"crit":0,"critperlevel":0,"attackdamage":56,"attackdamageperlevel":3.5,"attackspeedperlevel":2.215,"attackspeed":0.656}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/RekSai_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/RekSai_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/RekSai.png"},"color":"#2cd4f4","version":"12.1.1","id":"RekSai","key":"421","name":"Rek'Sai","title":"la Excavadora del Vacío","blurb":"Rek'Sai es una depredadora sin piedad y un engendro del Vacío que se mueve debajo de la tierra para emboscar y devorar a las presas desprevenidas. Su hambre insaciable ha dejado en calidad de desecho a regiones enteras del antes gran imperio de Shurima...","info":{"attack":8,"defense":5,"magic":2,"difficulty":3},"tags":["Fighter"],"partype":"Rabia","stats":{"hp":570,"hpperlevel":85,"mp":100,"mpperlevel":0,"movespeed":335,"armor":36,"armorperlevel":3.75,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":7.5,"hpregenperlevel":0.65,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":64,"attackdamageperlevel":3,"attackspeedperlevel":2,"attackspeed":0.667}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Rell_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Rell_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Rell.png"},"color":"#cc843c","version":"12.1.1","id":"Rell","key":"526","name":"Rell","title":"la Doncella de Hierro","blurb":"Producto de brutales experimentos realizados por la Rosa Negra, Rell es un arma viviente rebelde con la firme determinación de acabar con Noxus. Su infancia estuvo llena de miseria y horror. Tuvo que soportar procedimientos atroces para perfeccionar y...","info":{"attack":0,"defense":0,"magic":0,"difficulty":0},"tags":["Tank"],"partype":"Maná","stats":{"hp":540,"hpperlevel":90,"mp":350,"mpperlevel":45,"movespeed":335,"armor":32,"armorperlevel":3,"spellblock":32.1,"spellblockperlevel":1.25,"attackrange":175,"hpregen":7,"hpregenperlevel":0.55,"mpregen":6,"mpregenperlevel":0.35,"crit":0,"critperlevel":0,"attackdamage":55,"attackdamageperlevel":3,"attackspeedperlevel":2,"attackspeed":0.55}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Renekton_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Renekton_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Renekton.png"},"color":"#bc6027","version":"12.1.1","id":"Renekton","key":"58","name":"Renekton","title":"el Carnicero de las Arenas","blurb":"Renekton es una terrorífica criatura Ascendida movida por la ira y procedente de los desiertos abrasadores de Shurima. Antaño fue el guerrero más admirado del imperio, un líder que condujo a los ejércitos shurimanos a incontables victorias. Sin embargo...","info":{"attack":8,"defense":5,"magic":2,"difficulty":3},"tags":["Fighter","Tank"],"partype":"Furia","stats":{"hp":590,"hpperlevel":92,"mp":100,"mpperlevel":0,"movespeed":345,"armor":35,"armorperlevel":4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8,"hpregenperlevel":0.75,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":69,"attackdamageperlevel":3.75,"attackspeedperlevel":2.75,"attackspeed":0.665}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Rengar_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Rengar_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Rengar.png"},"color":"#ae793e","version":"12.1.1","id":"Rengar","key":"107","name":"Rengar","title":"el Orgullo Acechante","blurb":"Rengar es un feroz vastaya cazador de trofeos que vive para sentir la emoción de rastrear y asesinar a criaturas peligrosas. Recorre el mundo en búsqueda de las bestias más salvajes que puede encontrar y en particular persigue cualquier rastro de...","info":{"attack":7,"defense":4,"magic":2,"difficulty":8},"tags":["Assassin","Fighter"],"partype":"Ferocidad","stats":{"hp":585,"hpperlevel":90,"mp":4,"mpperlevel":0,"movespeed":345,"armor":34,"armorperlevel":3,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":7,"hpregenperlevel":0.5,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":68,"attackdamageperlevel":3,"attackspeedperlevel":3,"attackspeed":0.667}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Riven_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Riven_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Riven.png"},"color":"#8c2c14","version":"12.1.1","id":"Riven","key":"92","name":"Riven","title":"la Desterrada","blurb":"Riven, que anteriormente era una líder de los guerreros de Noxus, está exiliada en una tierra que alguna vez intentó conquistar. Ascendió por los rangos con la fuerza de su convicción y brutal eficiencia, lo cual la recompensó con su legendaria espada...","info":{"attack":8,"defense":5,"magic":1,"difficulty":8},"tags":["Fighter","Assassin"],"partype":"Ninguno","stats":{"hp":560,"hpperlevel":86,"mp":0,"mpperlevel":0,"movespeed":340,"armor":33,"armorperlevel":3.2,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8.5,"hpregenperlevel":0.5,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":64,"attackdamageperlevel":3,"attackspeedperlevel":3.5,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Rumble_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Rumble_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Rumble.png"},"color":"#c6321c","version":"12.1.1","id":"Rumble","key":"68","name":"Rumble","title":"la Amenaza Mecánica","blurb":"Rumble es un joven inventor con un peculiar temperamento. Con nada más que sus dos manos y un montón de chatarra, el yordle construyó un colosal traje mecánico equipado con un arsenal de arpones electrificados y cohetes incendiarios. Aunque otros se...","info":{"attack":3,"defense":6,"magic":8,"difficulty":10},"tags":["Fighter","Mage"],"partype":"Calor","stats":{"hp":589,"hpperlevel":85,"mp":100,"mpperlevel":0,"movespeed":345,"armor":31,"armorperlevel":3.5,"spellblock":28,"spellblockperlevel":0.75,"attackrange":125,"hpregen":8,"hpregenperlevel":0.6,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":61,"attackdamageperlevel":3.2,"attackspeedperlevel":1.85,"attackspeed":0.644}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Ryze_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Ryze_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Ryze.png"},"color":"#405dc8","version":"12.1.1","id":"Ryze","key":"13","name":"Ryze","title":"el Mago Rúnico","blurb":"Ryze, considerado por muchos como uno de los hechiceros más expertos en Runaterra, es un antiguo y endurecido archimago con una responsabilidad casi imposible de llevar. Armado con una constitución sin igual y una gran gama de conocimiento místico, se...","info":{"attack":2,"defense":2,"magic":10,"difficulty":7},"tags":["Mage","Fighter"],"partype":"Maná","stats":{"hp":575,"hpperlevel":110,"mp":300,"mpperlevel":70,"movespeed":340,"armor":22,"armorperlevel":3,"spellblock":36,"spellblockperlevel":0.5,"attackrange":550,"hpregen":8,"hpregenperlevel":0.8,"mpregen":8,"mpregenperlevel":1,"crit":0,"critperlevel":0,"attackdamage":58,"attackdamageperlevel":3,"attackspeedperlevel":2.112,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Samira_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Samira_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Samira.png"},"color":"#bc5c54","version":"12.1.1","id":"Samira","key":"360","name":"Samira","title":"la Rosa del Desierto","blurb":"Samira ve a la muerte a los ojos con una confianza obstinada, en busca de la emoción, adonde sea que vaya. Después de que su hogar shurimano fuera destruido cuando era niña, Samira encontró su verdadero llamado en Noxus, donde construyó su reputación de...","info":{"attack":8,"defense":5,"magic":3,"difficulty":6},"tags":["Marksman"],"partype":"Maná","stats":{"hp":530,"hpperlevel":88,"mp":348.88,"mpperlevel":38,"movespeed":335,"armor":26,"armorperlevel":3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":500,"hpregen":3.25,"hpregenperlevel":0.55,"mpregen":8.18,"mpregenperlevel":0.7,"crit":0,"critperlevel":0,"attackdamage":57,"attackdamageperlevel":3,"attackspeedperlevel":3.3,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Sejuani_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Sejuani_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Sejuani.png"},"color":"#1d6bc1","version":"12.1.1","id":"Sejuani","key":"113","name":"Sejuani","title":"la Furia del Norte","blurb":"Sejuani es la brutal e implacable Hija del Hielo y líder de la Garra Invernal, una de las tribus más temidas del Fréljord. La supervivencia de su gente es una constante y desesperada batalla contra los elementos, lo que los obliga a invadir a noxianos...","info":{"attack":5,"defense":7,"magic":6,"difficulty":4},"tags":["Tank","Fighter"],"partype":"Maná","stats":{"hp":560,"hpperlevel":100,"mp":400,"mpperlevel":40,"movespeed":340,"armor":34,"armorperlevel":4.25,"spellblock":32,"spellblockperlevel":1.25,"attackrange":150,"hpregen":8.5,"hpregenperlevel":1,"mpregen":7,"mpregenperlevel":0.7,"crit":0,"critperlevel":0,"attackdamage":66,"attackdamageperlevel":4,"attackspeedperlevel":3.5,"attackspeed":0.688}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Senna_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Senna_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Senna.png"},"color":"#28a1d6","version":"12.1.1","id":"Senna","key":"235","name":"Senna","title":"la Redentora","blurb":"Condenada desde la infancia a ser acechada por la sobrenatural Niebla Negra, Senna se unió a una orden sagrada conocida como los Centinelas de la Luz y luchó salvajemente contra ella. No obstante, el cruel espectro Thresh la asesinó y encerró su alma en...","info":{"attack":7,"defense":2,"magic":6,"difficulty":7},"tags":["Marksman","Support"],"partype":"Maná","stats":{"hp":520,"hpperlevel":75,"mp":350,"mpperlevel":45,"movespeed":330,"armor":28,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":600,"hpregen":3.5,"hpregenperlevel":0.55,"mpregen":11.5,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":50,"attackdamageperlevel":0,"attackspeedperlevel":4,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Seraphine_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Seraphine_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Seraphine.png"},"color":"#e42494","version":"12.1.1","id":"Seraphine","key":"147","name":"Seraphine","title":"la Cantante Soñadora","blurb":"Nacida en Piltóver de padres zaunitas, Seraphine es capaz de escuchar las almas de otros; el mundo canta para ella, y ella canta para él. Aunque estos sonidos la abrumaban en su juventud, ahora acude a ellos para inspirarse y convertir el caos en una...","info":{"attack":0,"defense":0,"magic":0,"difficulty":0},"tags":["Mage","Support"],"partype":"Maná","stats":{"hp":500,"hpperlevel":90,"mp":440,"mpperlevel":40,"movespeed":325,"armor":19,"armorperlevel":3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":6.5,"hpregenperlevel":0.6,"mpregen":8,"mpregenperlevel":1,"crit":0,"critperlevel":0,"attackdamage":55,"attackdamageperlevel":3,"attackspeedperlevel":1,"attackspeed":0.669}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Sett_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Sett_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Sett.png"},"color":"#ac4c5c","version":"12.1.1","id":"Sett","key":"875","name":"Sett","title":"El Jefe","blurb":"Sett, uno de los líderes del creciente inframundo criminal de Jonia, ascendió a la fama tras la guerra con Noxus. Se inició como un humilde púgil en las arenas de pelea de Navori, pero pronto ganó notoriedad por su fuerza salvaje y su habilidad para...","info":{"attack":8,"defense":5,"magic":1,"difficulty":2},"tags":["Fighter","Tank"],"partype":"Determinación","stats":{"hp":600,"hpperlevel":93,"mp":0,"mpperlevel":0,"movespeed":340,"armor":33,"armorperlevel":4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":7,"hpregenperlevel":0.5,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":60,"attackdamageperlevel":4,"attackspeedperlevel":1.75,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Shaco_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Shaco_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Shaco.png"},"color":"#9c2c4c","version":"12.1.1","id":"Shaco","key":"35","name":"Shaco","title":"el Bufón Siniestro","blurb":"Creado hace mucho tiempo como un juguete para un solitario príncipe, la marioneta encantada Shaco ahora se deleita con la matanza y el caos. Corrompido por una oscura magia y la pérdida de su querido dueño, la que alguna vez fue una gentil marioneta...","info":{"attack":8,"defense":4,"magic":6,"difficulty":9},"tags":["Assassin"],"partype":"Maná","stats":{"hp":560,"hpperlevel":89,"mp":297,"mpperlevel":40,"movespeed":345,"armor":30,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8.5,"hpregenperlevel":0.55,"mpregen":7.16,"mpregenperlevel":0.45,"crit":0,"critperlevel":0,"attackdamage":63,"attackdamageperlevel":3,"attackspeedperlevel":3,"attackspeed":0.694}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Shen_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Shen_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Shen.png"},"color":"#5a63bb","version":"12.1.1","id":"Shen","key":"98","name":"Shen","title":"el Ojo del Crepúsculo","blurb":"Entre los secretos guerreros jonios conocidos como los Kinkou, Shen sirve como su líder, el Ojo del Crepúsculo. Desea mantenerse libre de las confusiones que provocan la emoción, los prejuicios y el ego, y camina por la senda oculta del juicio imparcial...","info":{"attack":3,"defense":9,"magic":3,"difficulty":4},"tags":["Tank"],"partype":"Energía","stats":{"hp":540,"hpperlevel":85,"mp":400,"mpperlevel":0,"movespeed":340,"armor":34,"armorperlevel":3,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8.5,"hpregenperlevel":0.75,"mpregen":50,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":60,"attackdamageperlevel":3,"attackspeedperlevel":3,"attackspeed":0.751}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Shyvana_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Shyvana_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Shyvana.png"},"color":"#b44c14","version":"12.1.1","id":"Shyvana","key":"102","name":"Shyvana","title":"la Hija del Dragón","blurb":"Shyvana es una criatura que tiene la magia de un fragmento rúnico ardiendo dentro de su corazón. Aunque a menudo parece humanoide, puede tomar su verdadera forma como un dragón mientras incinera a sus enemigos con su aliento en llamas. Después de...","info":{"attack":8,"defense":6,"magic":3,"difficulty":4},"tags":["Fighter","Tank"],"partype":"Furia","stats":{"hp":595,"hpperlevel":95,"mp":100,"mpperlevel":0,"movespeed":350,"armor":38,"armorperlevel":3.35,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8.5,"hpregenperlevel":0.8,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":66,"attackdamageperlevel":3.4,"attackspeedperlevel":2.5,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Singed_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Singed_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Singed.png"},"color":"#58b95f","version":"12.1.1","id":"Singed","key":"27","name":"Singed","title":"el Químico Loco","blurb":"Singed es un alquimista de Zaun con un intelecto inigualable que ha dedicado su vida a superar los límites del conocimiento sin importar el costo, incluso si este es su propia cordura. ¿Su locura será calculada? Sus pociones rara vez fallan, pero a...","info":{"attack":4,"defense":8,"magic":7,"difficulty":5},"tags":["Tank","Fighter"],"partype":"Maná","stats":{"hp":580,"hpperlevel":85,"mp":330,"mpperlevel":45,"movespeed":345,"armor":34,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":9.5,"hpregenperlevel":0.55,"mpregen":7.5,"mpregenperlevel":0.55,"crit":0,"critperlevel":0,"attackdamage":63,"attackdamageperlevel":3.38,"attackspeedperlevel":1.9,"attackspeed":0.613}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Sion_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Sion_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Sion.png"},"color":"#b4090c","version":"12.1.1","id":"Sion","key":"14","name":"Sion","title":"el Coloso no Muerto","blurb":"Como héroe de guerra de una época antigua, Sion era venerado en Noxus por quitarle la vida al rey demaciano con sus propias manos. Sin embargo, se le negó el descanso eterno y lo resucitaron para servir a su imperio incluso en la muerte. Su matanza...","info":{"attack":5,"defense":9,"magic":3,"difficulty":5},"tags":["Tank","Fighter"],"partype":"Maná","stats":{"hp":545,"hpperlevel":73,"mp":330,"mpperlevel":42,"movespeed":345,"armor":32,"armorperlevel":3,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":7.5,"hpregenperlevel":0.8,"mpregen":8,"mpregenperlevel":0.6,"crit":0,"critperlevel":0,"attackdamage":68,"attackdamageperlevel":4,"attackspeedperlevel":1.3,"attackspeed":0.679}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Sivir_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Sivir_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Sivir.png"},"color":"#be6c28","version":"12.1.1","id":"Sivir","key":"15","name":"Sivir","title":"la Señora de la Batalla","blurb":"Sivir es una afamada buscadora de tesoros y capitana mercenaria que se gana la vida en el desierto de Shurima. Provista de una legendaria arma en forma de cruz e incrustada con gemas, ha peleado y ganado innumerables batallas para los que pueden...","info":{"attack":9,"defense":3,"magic":1,"difficulty":4},"tags":["Marksman"],"partype":"Maná","stats":{"hp":562,"hpperlevel":90,"mp":325,"mpperlevel":50,"movespeed":335,"armor":26,"armorperlevel":3.25,"spellblock":30,"spellblockperlevel":0.5,"attackrange":500,"hpregen":3.25,"hpregenperlevel":0.55,"mpregen":8,"mpregenperlevel":0.9,"crit":0,"critperlevel":0,"attackdamage":63,"attackdamageperlevel":3,"attackspeedperlevel":1.6,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Skarner_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Skarner_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Skarner.png"},"color":"#704eac","version":"12.1.1","id":"Skarner","key":"72","name":"Skarner","title":"la Vanguardia de Cristal","blurb":"Skarner es un gigantesco escorpión cristalino procedente de un oculto valle de Shurima. La antigua raza a la que pertenece, los brackern, es famosa por su sabiduría y su profunda conexión con la tierra, pues sus almas están fundidas con poderosos...","info":{"attack":7,"defense":6,"magic":5,"difficulty":5},"tags":["Fighter","Tank"],"partype":"Maná","stats":{"hp":580,"hpperlevel":85,"mp":320,"mpperlevel":60,"movespeed":335,"armor":38,"armorperlevel":3.8,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":9,"hpregenperlevel":0.85,"mpregen":7.2,"mpregenperlevel":0.45,"crit":0,"critperlevel":0,"attackdamage":65,"attackdamageperlevel":4.5,"attackspeedperlevel":2.1,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Sona_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Sona_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Sona.png"},"color":"#5893b8","version":"12.1.1","id":"Sona","key":"37","name":"Sona","title":"la Virtuosa de las Cuerdas","blurb":"Sona es la virtuosa demaciana más destacada del encordado etwahl. Habla solo a través de sus agraciados acordes y vibrantes arias. Estos elegantes modales la volvieron muy querida por la aristocracia, pero otros sospechan que sus hechizantes melodías en...","info":{"attack":5,"defense":2,"magic":8,"difficulty":4},"tags":["Support","Mage"],"partype":"Maná","stats":{"hp":480,"hpperlevel":77,"mp":340,"mpperlevel":45,"movespeed":325,"armor":26,"armorperlevel":3.3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":5.5,"hpregenperlevel":0.55,"mpregen":11.5,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":49,"attackdamageperlevel":3,"attackspeedperlevel":2.3,"attackspeed":0.644}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Soraka_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Soraka_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Soraka.png"},"color":"#d49054","version":"12.1.1","id":"Soraka","key":"16","name":"Soraka","title":"la Hija de las Estrellas","blurb":"Como nómada de las dimensiones celestiales más allá de Monte Targón, Soraka renunció a su inmortalidad para proteger a las razas mortales de sus mismos instintos más violentos. Se dedica a compartir las virtudes de la compasión y la misericordia a todos...","info":{"attack":2,"defense":5,"magic":7,"difficulty":3},"tags":["Support","Mage"],"partype":"Maná","stats":{"hp":535,"hpperlevel":74,"mp":425,"mpperlevel":40,"movespeed":325,"armor":32,"armorperlevel":3.8,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":2.5,"hpregenperlevel":0.5,"mpregen":11.5,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":50,"attackdamageperlevel":3,"attackspeedperlevel":2.14,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Swain_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Swain_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Swain.png"},"color":"#9c190e","version":"12.1.1","id":"Swain","key":"50","name":"Swain","title":"el Gran General Noxiano","blurb":"Jericho Swain es el visionario gobernante de una nación expansionista que solo venera a la fuerza. Aunque lo derribaron, incapacitaron y perdió su brazo izquierdo en las guerras jonias, tomó control del imperio con una inquebrantable determinación... y...","info":{"attack":2,"defense":6,"magic":9,"difficulty":8},"tags":["Mage","Fighter"],"partype":"Maná","stats":{"hp":525,"hpperlevel":85,"mp":468,"mpperlevel":28.5,"movespeed":325,"armor":23,"armorperlevel":4,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":7,"hpregenperlevel":0.65,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":58,"attackdamageperlevel":2.7,"attackspeedperlevel":2.11,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Sylas_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Sylas_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Sylas.png"},"color":"#6c84bc","version":"12.1.1","id":"Sylas","key":"517","name":"Sylas","title":"el Usurpador","blurb":"Criado en uno de los lugares más humildes de Demacia, Sylas de Dregbourne se ha convertido en un símbolo del lado más oscuro de la Gran Ciudad. Cuando era niño, su habilidad para encontrar la hechicería oculta llamó la atención de notables cazadores de...","info":{"attack":3,"defense":4,"magic":8,"difficulty":5},"tags":["Mage","Assassin"],"partype":"Maná","stats":{"hp":525,"hpperlevel":115,"mp":310,"mpperlevel":70,"movespeed":340,"armor":27,"armorperlevel":4,"spellblock":32,"spellblockperlevel":1.75,"attackrange":175,"hpregen":9,"hpregenperlevel":0.9,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":61,"attackdamageperlevel":3,"attackspeedperlevel":3.5,"attackspeed":0.645}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Syndra_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Syndra_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Syndra.png"},"color":"#a034e8","version":"12.1.1","id":"Syndra","key":"134","name":"Syndra","title":"la Soberana Oscura","blurb":"Syndra es una temible maga de Jonia con un extraordinario poder bajo su comando. Cuando era pequeña, alteró a los maestros de su aldea con su magia salvaje e imprudente. La enviaron lejos para que aprendiera a tener un mayor control, pero con el tiempo...","info":{"attack":2,"defense":3,"magic":9,"difficulty":8},"tags":["Mage","Support"],"partype":"Maná","stats":{"hp":523,"hpperlevel":90,"mp":480,"mpperlevel":40,"movespeed":330,"armor":25,"armorperlevel":3.4,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":6.5,"hpregenperlevel":0.6,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":54,"attackdamageperlevel":2.9,"attackspeedperlevel":2,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/TahmKench_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/TahmKench_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/TahmKench.png"},"color":"#84643c","version":"12.1.1","id":"TahmKench","key":"223","name":"Tahm Kench","title":"El Rey del Río","blurb":"Conocido por muchos nombres a lo largo de la historia, el demonio Tahm Kench viaja a través de las aguas de Runaterra mientras alimenta su insaciable apetito con la miseria de otros. Aunque pudiera parecer particularmente encantador y orgulloso, se...","info":{"attack":3,"defense":9,"magic":6,"difficulty":5},"tags":["Support","Tank"],"partype":"Maná","stats":{"hp":570,"hpperlevel":95,"mp":325,"mpperlevel":50,"movespeed":335,"armor":42,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":6.5,"hpregenperlevel":0.55,"mpregen":8,"mpregenperlevel":1,"crit":0,"critperlevel":0,"attackdamage":56,"attackdamageperlevel":3.2,"attackspeedperlevel":2.5,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Taliyah_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Taliyah_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Taliyah.png"},"color":"#bd612f","version":"12.1.1","id":"Taliyah","key":"163","name":"Taliyah","title":"la Tejedora de Piedra","blurb":"Taliyah es una maga nómada de Shurima que se siente dividida entre la libertad de la adolescencia y las responsabilidades adultas. Ha cruzado casi todo Valoran en un viaje para conocer la verdadera naturaleza de sus crecientes poderes, aunque más...","info":{"attack":1,"defense":7,"magic":8,"difficulty":5},"tags":["Mage","Support"],"partype":"Maná","stats":{"hp":532,"hpperlevel":90,"mp":425,"mpperlevel":30,"movespeed":335,"armor":20,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":7,"hpregenperlevel":0.7,"mpregen":9.34,"mpregenperlevel":0.85,"crit":0,"critperlevel":0,"attackdamage":58,"attackdamageperlevel":3.3,"attackspeedperlevel":1.36,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Talon_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Talon_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Talon.png"},"color":"#5c9cf4","version":"12.1.1","id":"Talon","key":"91","name":"Talon","title":"la Sombra de la Navaja","blurb":"Talon es el filo que yace en la oscuridad y un despiadado asesino que ataca sin advertencia solo para escapar antes de que alguien note su presencia. Se hizo de una reputación peligrosa en las brutales calles de Noxus, donde se vio obligado a pelear...","info":{"attack":9,"defense":3,"magic":1,"difficulty":7},"tags":["Assassin"],"partype":"Maná","stats":{"hp":588,"hpperlevel":95,"mp":377.2,"mpperlevel":37,"movespeed":335,"armor":30,"armorperlevel":3.5,"spellblock":39,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8.5,"hpregenperlevel":0.75,"mpregen":7.6,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":68,"attackdamageperlevel":3.1,"attackspeedperlevel":2.9,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Taric_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Taric_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Taric.png"},"color":"#8b64f5","version":"12.1.1","id":"Taric","key":"44","name":"Taric","title":"el Escudo de Valoran","blurb":"Taric es el Aspecto del Protector y, gracias a su increíble poder, es el guardián de la vida, el amor y la belleza en Runaterra. Caído en desgracia debido a la negligencia de su deber y exiliado de su tierra, Demacia, Taric ascendió el Monte Targón...","info":{"attack":4,"defense":8,"magic":5,"difficulty":3},"tags":["Support","Fighter"],"partype":"Maná","stats":{"hp":575,"hpperlevel":85,"mp":300,"mpperlevel":60,"movespeed":340,"armor":40,"armorperlevel":3.4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":150,"hpregen":6,"hpregenperlevel":0.5,"mpregen":8.5,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":55,"attackdamageperlevel":3.5,"attackspeedperlevel":2,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Teemo_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Teemo_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Teemo.png"},"color":"#c86026","version":"12.1.1","id":"Teemo","key":"17","name":"Teemo","title":"el Explorador Veloz","blurb":"Teemo no se inmuta ante los obstáculos más peligrosos y amenazadores mientras explora el mundo con un entusiasmo infinito y un espíritu lleno de alegría. Es un yordle con una moralidad inquebrantable que se enorgullece de seguir el código de los...","info":{"attack":5,"defense":3,"magic":7,"difficulty":6},"tags":["Marksman","Assassin"],"partype":"Maná","stats":{"hp":528,"hpperlevel":90,"mp":334,"mpperlevel":20,"movespeed":330,"armor":24,"armorperlevel":3.75,"spellblock":30,"spellblockperlevel":0.5,"attackrange":500,"hpregen":5.5,"hpregenperlevel":0.65,"mpregen":9.6,"mpregenperlevel":0.45,"crit":0,"critperlevel":0,"attackdamage":54,"attackdamageperlevel":3,"attackspeedperlevel":3.38,"attackspeed":0.69}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Thresh_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Thresh_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Thresh.png"},"color":"#10df71","version":"12.1.1","id":"Thresh","key":"412","name":"Thresh","title":"el Carcelero Implacable","blurb":"Sádico y astuto, Thresh es un espíritu ambicioso e incansable de las Islas de la Sombra. Otrora el custodio de incontables secretos arcanos, fue consumido por un poder mayor a la vida o la muerte. Ahora, se alimenta del tormento y quebranta a otros con...","info":{"attack":5,"defense":6,"magic":6,"difficulty":7},"tags":["Support","Fighter"],"partype":"Maná","stats":{"hp":530,"hpperlevel":95,"mp":274,"mpperlevel":44,"movespeed":330,"armor":28,"armorperlevel":0,"spellblock":30,"spellblockperlevel":0.5,"attackrange":450,"hpregen":7,"hpregenperlevel":0.55,"mpregen":6,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":56,"attackdamageperlevel":2.2,"attackspeedperlevel":3.5,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Tristana_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Tristana_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Tristana.png"},"color":"#b43c4e","version":"12.1.1","id":"Tristana","key":"18","name":"Tristana","title":"la Artillera Yordle","blurb":"Mientras que otros yordles usan su energía para hacer descubrimientos, inventos o simplemente travesuras, Tristana siempre estuvo inspirada por las aventuras de los grandes guerreros. Ella había escuchado mucho de Runaterra, sus facciones y sus guerras...","info":{"attack":9,"defense":3,"magic":5,"difficulty":4},"tags":["Marksman","Assassin"],"partype":"Maná","stats":{"hp":559,"hpperlevel":88,"mp":250,"mpperlevel":32,"movespeed":325,"armor":26,"armorperlevel":3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":3.75,"hpregenperlevel":0.65,"mpregen":7.2,"mpregenperlevel":0.45,"crit":0,"critperlevel":0,"attackdamage":59,"attackdamageperlevel":3.3,"attackspeedperlevel":1.5,"attackspeed":0.656}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Trundle_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Trundle_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Trundle.png"},"color":"#51acc0","version":"12.1.1","id":"Trundle","key":"48","name":"Trundle","title":"el Rey de los Troles","blurb":"Trundle es un corpulento y retorcido trol con una voraz actitud, y no hay nada que no pueda aplastar hasta someterlo, ni siquiera el mismo Fréljord. Feroz y territorial, persigue a cualquiera que sea lo suficiente tonto como para entrar a su dominio...","info":{"attack":7,"defense":6,"magic":2,"difficulty":5},"tags":["Fighter","Tank"],"partype":"Maná","stats":{"hp":616,"hpperlevel":96,"mp":281,"mpperlevel":45,"movespeed":350,"armor":37,"armorperlevel":2.7,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":6,"hpregenperlevel":0.75,"mpregen":7.5,"mpregenperlevel":0.6,"crit":0,"critperlevel":0,"attackdamage":68,"attackdamageperlevel":3,"attackspeedperlevel":2.9,"attackspeed":0.67}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Tryndamere_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Tryndamere_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Tryndamere.png"},"color":"#44ac8c","version":"12.1.1","id":"Tryndamere","key":"23","name":"Tryndamere","title":"el Rey Bárbaro","blurb":"Impulsado por la ira, Tryndamere alguna vez emprendió su camino por Fréljord y desafió abiertamente a los más grandes guerreros del norte preparándose para los días más oscuros que se avecinaban. Por mucho tiempo, el iracundo bárbaro ha buscado la...","info":{"attack":10,"defense":5,"magic":2,"difficulty":5},"tags":["Fighter","Assassin"],"partype":"Furia","stats":{"hp":626,"hpperlevel":98,"mp":100,"mpperlevel":0,"movespeed":345,"armor":33,"armorperlevel":3.1,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":8.5,"hpregenperlevel":0.9,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":72,"attackdamageperlevel":3.7,"attackspeedperlevel":2.9,"attackspeed":0.67}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/TwistedFate_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/TwistedFate_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/TwistedFate.png"},"color":"#a4644c","version":"12.1.1","id":"TwistedFate","key":"4","name":"Twisted Fate","title":"el Maestro de las Cartas","blurb":"Twisted Fate es un afamado experto en juegos de cartas y estafador. Ha apostado y usado su encanto en gran parte del mundo conocido, lo que le ha hecho ganarse el odio y la admiración de ricos y tontos por igual. Rara vez se toma las cosas en serio...","info":{"attack":6,"defense":2,"magic":6,"difficulty":9},"tags":["Mage"],"partype":"Maná","stats":{"hp":534,"hpperlevel":94,"mp":333,"mpperlevel":39,"movespeed":330,"armor":21,"armorperlevel":3.15,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":5.5,"hpregenperlevel":0.6,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":52,"attackdamageperlevel":3.3,"attackspeedperlevel":3.22,"attackspeed":0.651}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Twitch_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Twitch_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Twitch.png"},"color":"#48a54a","version":"12.1.1","id":"Twitch","key":"29","name":"Twitch","title":"la Rata Mutante","blurb":"Una rata zaunita de nacimiento, pero conocedor de la más fina suciedad por pasión. Twitch no tiene miedo de ensuciarse las patas. Apunta una ballesta potenciada con químicos hacia el centro de Piltóver y jura mostrarles a los que habitan arriba en la...","info":{"attack":9,"defense":2,"magic":3,"difficulty":6},"tags":["Marksman","Assassin"],"partype":"Maná","stats":{"hp":612,"hpperlevel":86,"mp":287.2,"mpperlevel":40,"movespeed":330,"armor":27,"armorperlevel":3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":3.75,"hpregenperlevel":0.6,"mpregen":7.26,"mpregenperlevel":0.45,"crit":0,"critperlevel":0,"attackdamage":59,"attackdamageperlevel":3.11,"attackspeedperlevel":3.38,"attackspeed":0.679}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Udyr_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Udyr_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Udyr.png"},"color":"#9c3c1c","version":"12.1.1","id":"Udyr","key":"77","name":"Udyr","title":"el Cambiapieles","blurb":"Udyr es más que un hombre; es un contenedor para el poder indomable de cuatro espíritus de animales primigenios. Al explotar las naturalezas animales de los espíritus, Udyr puede usar su fuerza única: el tigre le proporciona velocidad y ferocidad; la...","info":{"attack":8,"defense":7,"magic":4,"difficulty":7},"tags":["Fighter","Tank"],"partype":"Maná","stats":{"hp":594,"hpperlevel":92,"mp":271,"mpperlevel":50,"movespeed":350,"armor":34,"armorperlevel":4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":6,"hpregenperlevel":0.75,"mpregen":7.5,"mpregenperlevel":0.45,"crit":0,"critperlevel":0,"attackdamage":64,"attackdamageperlevel":5,"attackspeedperlevel":2.67,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Urgot_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Urgot_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Urgot.png"},"color":"#5cc44c","version":"12.1.1","id":"Urgot","key":"6","name":"Urgot","title":"el Temerario","blurb":"Urgot, quien fue alguna vez un poderoso verdugo noxiano, había sido traicionado por el imperio que lo hizo matar a tantos en su nombre. Atado con cadenas de hierro, lo forzaron a aprender el verdadero significado de la fuerza en el Dragado, una mina de...","info":{"attack":8,"defense":5,"magic":3,"difficulty":8},"tags":["Fighter","Tank"],"partype":"Maná","stats":{"hp":585,"hpperlevel":88,"mp":340,"mpperlevel":45,"movespeed":330,"armor":36,"armorperlevel":4.25,"spellblock":32,"spellblockperlevel":1.25,"attackrange":350,"hpregen":7.5,"hpregenperlevel":0.7,"mpregen":7.25,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":63,"attackdamageperlevel":4,"attackspeedperlevel":3.75,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Varus_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Varus_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Varus.png"},"color":"#a9376b","version":"12.1.1","id":"Varus","key":"110","name":"Varus","title":"la Flecha del Castigo","blurb":"Varus, como uno de los antiguos darkin, era un mortal asesino que amaba atormentar a sus enemigos y los llevaba casi hasta la locura antes de darles el flechazo final. Lo encerraron al final de la Gran Guerra Darkin, pero escapó siglos después en un...","info":{"attack":7,"defense":3,"magic":4,"difficulty":2},"tags":["Marksman","Mage"],"partype":"Maná","stats":{"hp":530,"hpperlevel":91,"mp":360,"mpperlevel":40,"movespeed":330,"armor":27,"armorperlevel":3.4,"spellblock":30,"spellblockperlevel":0.5,"attackrange":575,"hpregen":3.5,"hpregenperlevel":0.55,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":59,"attackdamageperlevel":3.4,"attackspeedperlevel":4,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Vayne_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Vayne_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Vayne.png"},"color":"#e41434","version":"12.1.1","id":"Vayne","key":"67","name":"Vayne","title":"la Cazadora Nocturna","blurb":"Shauna Vayne es una mortal e implacable cazadora de monstruos demaciana que ha dedicado su vida a encontrar y destruir al demonio que asesinó a su familia. Armada con una ballesta que lleva montada en la muñeca y un corazón lleno de venganza, solo es...","info":{"attack":10,"defense":1,"magic":1,"difficulty":8},"tags":["Marksman","Assassin"],"partype":"Maná","stats":{"hp":515,"hpperlevel":89,"mp":231.8,"mpperlevel":35,"movespeed":330,"armor":23,"armorperlevel":3.4,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":3.5,"hpregenperlevel":0.55,"mpregen":6.97,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":60,"attackdamageperlevel":2.36,"attackspeedperlevel":3.3,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Veigar_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Veigar_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Veigar.png"},"color":"#f9dc1e","version":"12.1.1","id":"Veigar","key":"45","name":"Veigar","title":"el Pequeño Maestro del Mal","blurb":"Veigar, entusiasta maestro de la magia oscura, se adaptó a poderes que pocos mortales se atreven a explorar. Como un habitante de espíritu libre de Ciudad de Bandle, deseaba rebasar las limitaciones de la magia yordle. Así fue como llegó a unos textos...","info":{"attack":2,"defense":2,"magic":10,"difficulty":7},"tags":["Mage"],"partype":"Maná","stats":{"hp":505,"hpperlevel":94,"mp":490,"mpperlevel":26,"movespeed":340,"armor":23,"armorperlevel":3.75,"spellblock":32,"spellblockperlevel":0.5,"attackrange":550,"hpregen":6.5,"hpregenperlevel":0.6,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":52,"attackdamageperlevel":2.7,"attackspeedperlevel":2.24,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Velkoz_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Velkoz_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Velkoz.png"},"color":"#c53ac4","version":"12.1.1","id":"Velkoz","key":"161","name":"Vel'Koz","title":"el Ojo del Vacío","blurb":"No está claro si Vel'Koz fue la primera manifestación del Vacío que emergió en Runaterra, pero ciertamente no ha habido ninguna que llegue a su nivel de cruel y calculadora conciencia. Mientras que los suyos devoran o corrompen todo a su alrededor, él...","info":{"attack":2,"defense":2,"magic":10,"difficulty":8},"tags":["Mage"],"partype":"Maná","stats":{"hp":520,"hpperlevel":88,"mp":469,"mpperlevel":21,"movespeed":340,"armor":22,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":5.5,"hpregenperlevel":0.55,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":55,"attackdamageperlevel":3.1416,"attackspeedperlevel":1.36,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Vex_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Vex_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Vex.png"},"color":"#36b0d2","version":"12.1.1","id":"Vex","key":"711","name":"Vex","title":"la Tristóloga","blurb":"En el corazón negro de las Islas de la Sombra, una solitaria yordle recorre la niebla espectral, satisfecha con su miseria tenebrosa. Con un suministro interminable de desasosiego adolescente y escoltada por una poderosa sombra, Vex vive en su propio...","info":{"attack":0,"defense":0,"magic":0,"difficulty":0},"tags":["Mage"],"partype":"Maná","stats":{"hp":520,"hpperlevel":90,"mp":490,"mpperlevel":32,"movespeed":335,"armor":23,"armorperlevel":3.25,"spellblock":28,"spellblockperlevel":0.5,"attackrange":550,"hpregen":6.5,"hpregenperlevel":0.6,"mpregen":6,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":54,"attackdamageperlevel":2.75,"attackspeedperlevel":1,"attackspeed":0.669}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Vi_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Vi_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Vi.png"},"color":"#c43764","version":"12.1.1","id":"Vi","key":"254","name":"Vi","title":"la Vigilante de Piltóver","blurb":"Vi es una antigua criminal de las calles de Zaun impulsiva e imponente con un respeto hacia las autoridades casi nulo. Vi creció sola y desarrolló un instinto de supervivencia muy fino, así como un sentido del humor retorcido. Ahora trabaja con los...","info":{"attack":8,"defense":5,"magic":3,"difficulty":4},"tags":["Fighter","Assassin"],"partype":"Maná","stats":{"hp":585,"hpperlevel":85,"mp":295,"mpperlevel":65,"movespeed":340,"armor":30,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":10,"hpregenperlevel":1,"mpregen":8,"mpregenperlevel":0.65,"crit":0,"critperlevel":0,"attackdamage":63,"attackdamageperlevel":3,"attackspeedperlevel":2,"attackspeed":0.644}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Viego_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Viego_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Viego.png"},"color":"#43bbae","version":"12.1.1","id":"Viego","key":"234","name":"Viego","title":"El Rey Arruinado","blurb":"Otrora gobernante de un reino perdido en el tiempo, Viego falleció hace mas de mil años cuando su intento de regresar a su esposa de la muerte desencadenó la catástrofe mágica conocida como la Ruina. Transformado en un espectro poderoso y desprovisto de...","info":{"attack":6,"defense":4,"magic":2,"difficulty":5},"tags":["Assassin","Fighter"],"partype":"Ninguno","stats":{"hp":560,"hpperlevel":95,"mp":10000,"mpperlevel":0,"movespeed":345,"armor":34,"armorperlevel":4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":200,"hpregen":7,"hpregenperlevel":0.7,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":57,"attackdamageperlevel":3.5,"attackspeedperlevel":2.5,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Viktor_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Viktor_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Viktor.png"},"color":"#cc4c24","version":"12.1.1","id":"Viktor","key":"112","name":"Viktor","title":"el Heraldo Mecánico","blurb":"Como heraldo de una nueva era tecnológica, Viktor ha dedicado su vida al progreso de la humanidad. Es un idealista que busca elevar a la gente de Zaun a un nuevo nivel de comprensión y cree que la humanidad solo podrá alcanzar todo su potencial una vez...","info":{"attack":2,"defense":4,"magic":10,"difficulty":9},"tags":["Mage"],"partype":"Maná","stats":{"hp":530,"hpperlevel":90,"mp":405,"mpperlevel":45,"movespeed":335,"armor":23,"armorperlevel":4,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":8,"hpregenperlevel":0.65,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":53,"attackdamageperlevel":3,"attackspeedperlevel":2.11,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Vladimir_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Vladimir_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Vladimir.png"},"color":"#be3e38","version":"12.1.1","id":"Vladimir","key":"8","name":"Vladimir","title":"el Segador Carmesí","blurb":"Vladimir, un demonio con sed de sangre mortal, ha influenciado la política de Noxus desde los primeros días del imperio. Además de extender su vida de manera sobrenatural, su maestría de la hemomancia le permite controlar las mentes y cuerpos de otros...","info":{"attack":2,"defense":6,"magic":8,"difficulty":7},"tags":["Mage"],"partype":"Impulso Carmesí","stats":{"hp":537,"hpperlevel":96,"mp":2,"mpperlevel":0,"movespeed":330,"armor":23,"armorperlevel":3.3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":450,"hpregen":7,"hpregenperlevel":0.6,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":55,"attackdamageperlevel":3,"attackspeedperlevel":2,"attackspeed":0.658}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Volibear_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Volibear_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Volibear.png"},"color":"#4464bc","version":"12.1.1","id":"Volibear","key":"106","name":"Volibear","title":"la Tormenta Implacable","blurb":"Para quienes aún lo veneran, Volibear es la encarnación de la tormenta. Destructivo, salvaje y con una determinación obstinada, existió antes de que los mortales caminaran sobre la tundra del Fréljord. Protege salvajemente las tierras que él y los demás...","info":{"attack":7,"defense":7,"magic":4,"difficulty":3},"tags":["Fighter","Tank"],"partype":"Maná","stats":{"hp":580,"hpperlevel":90,"mp":350,"mpperlevel":70,"movespeed":340,"armor":31,"armorperlevel":4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":150,"hpregen":9,"hpregenperlevel":0.75,"mpregen":6.25,"mpregenperlevel":0.5,"crit":0,"critperlevel":0,"attackdamage":60,"attackdamageperlevel":3,"attackspeedperlevel":2,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Warwick_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Warwick_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Warwick.png"},"color":"#9e5e4c","version":"12.1.1","id":"Warwick","key":"19","name":"Warwick","title":"la Furia Desatada de Zaun","blurb":"Warwick es un monstruo que ronda por los callejones grises de Zaun. Víctima de agonizantes experimentos, su cuerpo está fusionado con un sistema complejo de cámaras y bombas, una maquinaria que llena sus venas con furia alquímica. Warwick emerge de las...","info":{"attack":9,"defense":5,"magic":3,"difficulty":3},"tags":["Fighter","Tank"],"partype":"Maná","stats":{"hp":550,"hpperlevel":85,"mp":280,"mpperlevel":35,"movespeed":335,"armor":33,"armorperlevel":3.2,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":4,"hpregenperlevel":0.75,"mpregen":7.47,"mpregenperlevel":0.58,"crit":0,"critperlevel":0,"attackdamage":65,"attackdamageperlevel":3,"attackspeedperlevel":2.3,"attackspeed":0.638}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Xayah_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Xayah_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Xayah.png"},"color":"#ae1e5c","version":"12.1.1","id":"Xayah","key":"498","name":"Xayah","title":"la Rebelde","blurb":"Letal y precisa, Xayah es una vastaya revolucionaria que lleva a cabo una guerra personal para salvar a su gente. Utiliza su velocidad, astucia y plumas afiladas para abatir a cualquiera que se interponga en su camino. Xayah pelea junto a su compañero y...","info":{"attack":10,"defense":6,"magic":1,"difficulty":5},"tags":["Marksman"],"partype":"Maná","stats":{"hp":590,"hpperlevel":88,"mp":340,"mpperlevel":40,"movespeed":330,"armor":25,"armorperlevel":3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":3.25,"hpregenperlevel":0.75,"mpregen":8.25,"mpregenperlevel":0.75,"crit":0,"critperlevel":0,"attackdamage":60,"attackdamageperlevel":3.5,"attackspeedperlevel":3.9,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Xerath_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Xerath_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Xerath.png"},"color":"#3c62c6","version":"12.1.1","id":"Xerath","key":"101","name":"Xerath","title":"el Mago Ascendente","blurb":"Xerath es un mago Ascendido de la antigua Shurima, un ser con energía arcana retorciéndose en los quebrados fragmentos de un sarcófago mágico. Estuvo atrapado durante milenios bajo las arenas del desierto, pero el ascenso de Shurima lo liberó de su...","info":{"attack":1,"defense":3,"magic":10,"difficulty":8},"tags":["Mage"],"partype":"Maná","stats":{"hp":526,"hpperlevel":92,"mp":459,"mpperlevel":22,"movespeed":340,"armor":22,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":525,"hpregen":5.5,"hpregenperlevel":0.55,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":55,"attackdamageperlevel":3,"attackspeedperlevel":1.36,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/XinZhao_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/XinZhao_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/XinZhao.png"},"color":"#c98462","version":"12.1.1","id":"XinZhao","key":"5","name":"Xin Zhao","title":"el Senescal de Demacia","blurb":"Xin Zhao es un determinado guerrero y leal a la dinastía regente de los Escudo de Luz. Alguna vez condenado al coliseo de combate de Noxus, sobrevivió a un sin fin de batallas de gladiadores, pero después de ser liberado por fuerzas demacianas, juró su...","info":{"attack":8,"defense":6,"magic":3,"difficulty":2},"tags":["Fighter","Assassin"],"partype":"Maná","stats":{"hp":570,"hpperlevel":92,"mp":274,"mpperlevel":55,"movespeed":345,"armor":35,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":8,"hpregenperlevel":0.7,"mpregen":7.26,"mpregenperlevel":0.45,"crit":0,"critperlevel":0,"attackdamage":63,"attackdamageperlevel":3,"attackspeedperlevel":3.5,"attackspeed":0.645}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Yasuo_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Yasuo_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Yasuo.png"},"color":"#4174b2","version":"12.1.1","id":"Yasuo","key":"157","name":"Yasuo","title":"el Imperdonable","blurb":"Yasuo, un jonio de gran determinación, es un ágil espadachín entrenado para empuñar al mismo viento contra sus enemigos. Cuando era joven y orgulloso, lo acusaron de asesinar a su maestro, algo que no era verdad. Al no poder demostrar su inocencia, se...","info":{"attack":8,"defense":4,"magic":4,"difficulty":10},"tags":["Fighter","Assassin"],"partype":"Flujo","stats":{"hp":490,"hpperlevel":87,"mp":100,"mpperlevel":0,"movespeed":345,"armor":30,"armorperlevel":3.4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":6.5,"hpregenperlevel":0.9,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":60,"attackdamageperlevel":3,"attackspeedperlevel":3.5,"attackspeed":0.697}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Yone_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Yone_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Yone.png"},"color":"#e31c30","version":"12.1.1","id":"Yone","key":"777","name":"Yone","title":"el Imborrable","blurb":"En vida era Yone, medio hermano de Yasuo y estudiante destacado de la escuela de espadachines de su aldea. Tras morir a manos de su hermano, fue acechado por una entidad malévola del reino espiritual y forzado a asesinarla con su propia espada. Ahora...","info":{"attack":8,"defense":4,"magic":4,"difficulty":8},"tags":["Assassin","Fighter"],"partype":"Flujo","stats":{"hp":550,"hpperlevel":85,"mp":500,"mpperlevel":0,"movespeed":345,"armor":28,"armorperlevel":3.4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":7.5,"hpregenperlevel":0.75,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":60,"attackdamageperlevel":2,"attackspeedperlevel":3.5,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Yorick_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Yorick_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Yorick.png"},"color":"#3968c5","version":"12.1.1","id":"Yorick","key":"83","name":"Yorick","title":"Pastor de Almas","blurb":"Yorick, el último superviviente de una orden religiosa olvidada hace tiempo, carga con la bendición y la maldición del poder sobre los muertos. Atrapado en las Islas de la Sombra, sus únicos compañeros son cadáveres en descomposición y los espíritus...","info":{"attack":6,"defense":6,"magic":4,"difficulty":6},"tags":["Fighter","Tank"],"partype":"Maná","stats":{"hp":580,"hpperlevel":100,"mp":300,"mpperlevel":60,"movespeed":340,"armor":39,"armorperlevel":4,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":8,"hpregenperlevel":0.8,"mpregen":7.5,"mpregenperlevel":0.75,"crit":0,"critperlevel":0,"attackdamage":62,"attackdamageperlevel":5,"attackspeedperlevel":2,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Yuumi_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Yuumi_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Yuumi.png"},"color":"#b4744c","version":"12.1.1","id":"Yuumi","key":"350","name":"Yuumi","title":"la gatita mágica","blurb":"Yuumi, una gatita mágica proveniente de la Ciudad de Bandle, alguna vez fue la compañera de una hechicera yordle, Norra. Cuando su dueña desapareció misteriosamente, Yuumi se convirtió en la Guardiana del Libro de los Umbrales, perteneciente a Norra...","info":{"attack":5,"defense":1,"magic":8,"difficulty":2},"tags":["Support","Mage"],"partype":"Maná","stats":{"hp":480,"hpperlevel":70,"mp":400,"mpperlevel":45,"movespeed":330,"armor":25,"armorperlevel":3,"spellblock":25,"spellblockperlevel":0.3,"attackrange":500,"hpregen":7,"hpregenperlevel":0.55,"mpregen":10,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":55,"attackdamageperlevel":3.1,"attackspeedperlevel":1,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Zac_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Zac_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Zac.png"},"color":"#5ad1b3","version":"12.1.1","id":"Zac","key":"154","name":"Zac","title":"el Arma Secreta","blurb":"Zac es el producto de un derrame tóxico que pasó por una soldadura quimtech y que cayó en una caverna aislada en lo profundo del Sumidero de Zaun. A pesar de su humilde origen, Zac pasó de ser un fluido primigenio a un ser pensante que vive en las...","info":{"attack":3,"defense":7,"magic":7,"difficulty":8},"tags":["Tank","Fighter"],"partype":"Ninguno","stats":{"hp":615,"hpperlevel":95,"mp":0,"mpperlevel":0,"movespeed":340,"armor":33,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":175,"hpregen":8,"hpregenperlevel":0.5,"mpregen":0,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":60,"attackdamageperlevel":3.4,"attackspeedperlevel":1.6,"attackspeed":0.736}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Zed_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Zed_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Zed.png"},"color":"#c0683a","version":"12.1.1","id":"Zed","key":"238","name":"Zed","title":"el Maestro de las Sombras","blurb":"Implacable y despiadado, Zed es el líder de la Orden de la Sombra, una organización que él creó con la intención de militarizar las tradiciones de artes marciales y mágicas de Jonia para repeler a los invasores noxianos. Durante la guerra, la...","info":{"attack":9,"defense":2,"magic":1,"difficulty":7},"tags":["Assassin"],"partype":"Energía","stats":{"hp":584,"hpperlevel":85,"mp":200,"mpperlevel":0,"movespeed":345,"armor":32,"armorperlevel":3.5,"spellblock":32,"spellblockperlevel":1.25,"attackrange":125,"hpregen":7,"hpregenperlevel":0.65,"mpregen":50,"mpregenperlevel":0,"crit":0,"critperlevel":0,"attackdamage":63,"attackdamageperlevel":3.4,"attackspeedperlevel":3.3,"attackspeed":0.651}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Ziggs_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Ziggs_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Ziggs.png"},"color":"#b48058","version":"12.1.1","id":"Ziggs","key":"115","name":"Ziggs","title":"el Experto en Hexplosivos ","blurb":"Con un amor por las grandes bombas y los fusibles cortos, el yordle Ziggs es una explosiva fuerza de la naturaleza. Como asistente de un inventor en Piltóver, estaba aburrido de su predecible vida y se hizo amigo de una loca bombardera de cabello azul...","info":{"attack":2,"defense":4,"magic":9,"difficulty":4},"tags":["Mage"],"partype":"Maná","stats":{"hp":536,"hpperlevel":92,"mp":480,"mpperlevel":23.5,"movespeed":325,"armor":22,"armorperlevel":3.3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":6.5,"hpregenperlevel":0.6,"mpregen":8,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":54,"attackdamageperlevel":3.1,"attackspeedperlevel":2,"attackspeed":0.656}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Zilean_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Zilean_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Zilean.png"},"color":"#4c8eac","version":"12.1.1","id":"Zilean","key":"26","name":"Zilean","title":"el Guardián del Tiempo","blurb":"Anteriormente un poderoso mago de Icathia, Zilean se obsesionó con el paso del tiempo después de presenciar la destrucción de su tierra por el Vacío. No dando ni un minuto para lamentar la catastrófica pérdida, invocó a ancestrales magias del tiempo...","info":{"attack":2,"defense":5,"magic":8,"difficulty":6},"tags":["Support","Mage"],"partype":"Maná","stats":{"hp":504,"hpperlevel":82,"mp":452,"mpperlevel":50,"movespeed":335,"armor":24,"armorperlevel":3.8,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":5.5,"hpregenperlevel":0.5,"mpregen":11.34,"mpregenperlevel":0.8,"crit":0,"critperlevel":0,"attackdamage":52,"attackdamageperlevel":3,"attackspeedperlevel":2.13,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Zoe_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Zoe_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Zoe.png"},"color":"#e46857","version":"12.1.1","id":"Zoe","key":"142","name":"Zoe","title":"el Aspecto del Crepúsculo","blurb":"Como la personificación de las travesuras, la imaginación y el cambio, Zoe actúa como la mensajera cósmica de Targón y anuncia grandes acontecimientos que pueden alterar mundos. Su mera presencia distorsiona las matemáticas arcanas que rigen las...","info":{"attack":1,"defense":7,"magic":8,"difficulty":5},"tags":["Mage","Support"],"partype":"Maná","stats":{"hp":560,"hpperlevel":92,"mp":425,"mpperlevel":25,"movespeed":340,"armor":21,"armorperlevel":3.5,"spellblock":30,"spellblockperlevel":0.5,"attackrange":550,"hpregen":6.5,"hpregenperlevel":0.6,"mpregen":8,"mpregenperlevel":0.65,"crit":0,"critperlevel":0,"attackdamage":58,"attackdamageperlevel":3.3,"attackspeedperlevel":2.5,"attackspeed":0.625}},{"new":false,"images":{"portrait":"http://ddragon.leagueoflegends.com/cdn/img/champion/loading/Zyra_0.jpg","landscape":"http://ddragon.leagueoflegends.com/cdn/img/champion/splash/Zyra_0.jpg","thumbnail":"http://ddragon.leagueoflegends.com/cdn/12.1.1/img/champion/Zyra.png"},"color":"#a4604e","version":"12.1.1","id":"Zyra","key":"143","name":"Zyra","title":"el Despertar de las Espinas","blurb":"Nacida en una antigua y mágica catástrofe, Zyra es la manifestación de la ira de la naturaleza: una seductora mezcla entre planta y humana que crea vida nueva a cada paso. Ve a los mortales de Valoran como poco más que presa para su progenie de semillas...","info":{"attack":4,"defense":3,"magic":8,"difficulty":7},"tags":["Mage","Support"],"partype":"Maná","stats":{"hp":504,"hpperlevel":79,"mp":418,"mpperlevel":25,"movespeed":340,"armor":29,"armorperlevel":3,"spellblock":30,"spellblockperlevel":0.5,"attackrange":575,"hpregen":5.5,"hpregenperlevel":0.5,"mpregen":13,"mpregenperlevel":0.4,"crit":0,"critperlevel":0,"attackdamage":53,"attackdamageperlevel":3.2,"attackspeedperlevel":2.11,"attackspeed":0.625}}]} \ No newline at end of file diff --git a/scripts/screenshots.js b/scripts/screenshots.js index c3ecb76..be01c09 100644 --- a/scripts/screenshots.js +++ b/scripts/screenshots.js @@ -1,53 +1,85 @@ "use strict"; -const puppeteer = require("puppeteer"); -const chalk = require("chalk"); -const core = require("@actions/core"); +import fs from "fs"; +import puppeteer from "puppeteer"; +import chalk from "chalk"; +import core from "@actions/core"; -const { champions, version } = require("../public/data/latest.json"); +import { getVersions, fetchVersion } from "../utils/versions.js"; + +const VERSION_FILE = "public/data/version.txt"; /** * - * @returns {string} Champion id + * @returns {Promise} Champion id */ -function getRandomChampion() { +async function getRandomChampion(version) { + const champions = await fetchVersion(version); const index = Math.floor(Math.random() * champions.length); return champions[index].id; } +async function takeScreenshots(version) { + const PAGE_URL = "https://league-of-react.vercel.app"; + + const browser = await puppeteer.launch({ + defaultViewport: { + width: 375, + height: 667 + } + }); + + const page = await browser.newPage(); + + console.log(chalk.cyan(`Taking screenshot on ${PAGE_URL}/`)); + await page.goto(PAGE_URL, { + waitUntil: "networkidle0", + timeout: 0 + }); + + await page.screenshot({ path: "docs/images/home.png" }); + console.log(chalk.green("Screenshot successfully")); + + const champion = await getRandomChampion(version); + console.log( + chalk.cyan(`Taking screenshot on ${PAGE_URL}/champions/${champion}`) + ); + + await page.goto(`${PAGE_URL}/champions/${champion}`, { + waitUntil: "networkidle0", + timeout: 0 + }); + + await page.screenshot({ path: "docs/images/champion.png" }); + await browser.close(); + console.log(chalk.green("Screenshot successfully")); + + await fs.promises.writeFile(VERSION_FILE, version); + core.setOutput("latest-version", version); + core.setOutput("should-commit", true); +} + (async () => { try { - const browser = await puppeteer.launch({ - defaultViewport: { - width: 375, - height: 667 - } - }); - - const page = await browser.newPage(); - const PAGE_URL = "https://league-of-react.vercel.app"; - - console.log(chalk.cyan("Taking screenshot on /")); - await page.goto(PAGE_URL, { - waitUntil: "networkidle0", - timeout: 0 - }); - - await page.screenshot({ path: "docs/images/home.png" }); - console.log(chalk.green("Screenshot successfully")); - - const champion = getRandomChampion(); - console.log(chalk.cyan(`Taking screenshot on /champions/${champion}`)); - - await page.goto(`${PAGE_URL}/champions/${champion}`, { - waitUntil: "networkidle0", - timeout: 0 - }); - - await page.screenshot({ path: "docs/images/champion.png" }); - console.log(chalk.green("Screenshot successfully")); - await browser.close(); - core.setOutput("latest-version", version); + const { latest } = await getVersions(); + const force = process.argv[2] === "--force"; + + if (!fs.existsSync(VERSION_FILE) || force) { + return await takeScreenshots(latest); + } + + const currentVersion = fs.readFileSync(VERSION_FILE).toString(); + + if (currentVersion !== latest) { + return await takeScreenshots(latest); + } + + core.setOutput("should-commit", false); + console.log( + chalk.yellow( + `The latest version ${currentVersion} hasn't changed. You can use --force flag for take the screenshots anyway` + ) + ); } catch (error) { console.error(error); } diff --git a/scripts/update.js b/scripts/update.js deleted file mode 100644 index 5edd7b0..0000000 --- a/scripts/update.js +++ /dev/null @@ -1,88 +0,0 @@ -"use strict"; - -const { promises: fs } = require("fs"); -const path = require("path"); -const fetch = require("node-fetch"); -const chalk = require("chalk"); -const core = require("@actions/core"); -const Piscina = require("piscina"); - -/** - * Two latest LoL versions - * @typedef {{latest: string, previous: string}} Versions - */ - -/** - * Get the lastest two versions of LoL - * @returns {Promise} Two latest versions - */ -async function getVersions() { - const url = "https://ddragon.leagueoflegends.com/api/versions.json"; - const response = await fetch(url); - const [latest, previous] = await response.json(); - - return { latest, previous }; -} - -/** - * Update champions data - * @param {Versions} versions - */ -async function update(versions) { - const { latest, previous } = versions; - - console.log(chalk.cyan(`Downloading version ${latest}`)); - const latestChamps = await fetchChampions(latest); - const previousChamps = await fetchChampions(previous); - - const newChampion = latestChamps.find( - (champion, index) => previousChamps[index]?.id !== champion.id - ); - - const piscina = new Piscina({ - filename: path.resolve(__dirname, "worker.js") - }); - - const champions = await Promise.all( - latestChamps.map((champion) => - piscina.run({ champion, newChampion, version: latest }) - ) - ); - - await fs.writeFile( - "public/data/latest.json", - JSON.stringify({ version: latest, champions }) - ); - - core.setOutput("latest-version", latest); - console.log(chalk.green(`Version ${latest} successfully downloaded.`)); -} - -/** - * - * @param {string} version - * @returns {string} URL version - */ -function getVersionUrl(version) { - return `http://ddragon.leagueoflegends.com/cdn/${version}/data/es_MX/champion.json`; -} - -/** - * Get champions of specific version - * @param {string} version - * @returns {Promise} Champions array - */ -async function fetchChampions(version) { - const response = await fetch(getVersionUrl(version)); - const json = await response.json(); - return Object.values(json.data); -} - -(async () => { - try { - const versions = await getVersions(); - await update(versions); - } catch (error) { - console.error(error); - } -})(); diff --git a/scripts/worker.js b/scripts/worker.js deleted file mode 100644 index 49f046c..0000000 --- a/scripts/worker.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; - -const Vibrant = require("node-vibrant"); - -/** - * - * @param {{ - * champion:IChampion - * newChampion: string, - * version: string - * }} args - - * @returns {Promise} - */ -module.exports = async function ({ champion, newChampion, version }) { - // eslint-disable-next-line no-unused-vars - const { image, ...rest } = champion; - const images = getChampionImages(champion.id, version); - const palette = await Vibrant.from(images.thumbnail).getPalette(); - - console.log(`${champion.id} ✅`); - - return { - new: champion.id === newChampion, - images, - color: palette.Vibrant.hex, - ...rest - }; -}; - -/** - * Get champion images - * @param {string} id - * @param {string} version - * @returns {{ - * portrait: string, - * landscape: string, - * thumbnail: string - * }} URL images - */ -function getChampionImages(id, version) { - return { - portrait: `http://ddragon.leagueoflegends.com/cdn/img/champion/loading/${id}_0.jpg`, - landscape: `http://ddragon.leagueoflegends.com/cdn/img/champion/splash/${id}_0.jpg`, - thumbnail: `http://ddragon.leagueoflegends.com/cdn/${version}/img/champion/${id}.png` - }; -} diff --git a/services/champions.js b/services/champions.js new file mode 100644 index 0000000..d803be5 --- /dev/null +++ b/services/champions.js @@ -0,0 +1,53 @@ +import { differenceBy } from "lodash"; +import { getVersions, fetchVersion } from "@/utils/versions"; + +export async function getAllChampions() { + const { latest, previous } = await getVersions(); + + const latestChamps = await fetchVersion(latest); + const previousChamps = await fetchVersion(previous); + const newChampions = differenceBy(latestChamps, previousChamps, "id"); + + const champions = latestChamps.map((champion) => { + const { id, name } = champion; + const thumbnail = `http://ddragon.leagueoflegends.com/cdn/img/champion/loading/${id}_0.jpg`; + const isNew = newChampions.some((iterator) => iterator.id === id); + + return { + id, + name, + thumbnail, + new: isNew + }; + }); + + return champions; +} + +export async function getChampion(id) { + const { latest } = await getVersions(); + + const response = await fetch( + `http://ddragon.leagueoflegends.com/cdn/${latest}/data/es_MX/champion/${id}.json` + ); + const json = await response.json(); + const champion = json.data[id]; + const { name, title, lore } = champion; + + return { + id, + name, + title, + lore, + images: getSplashArts(champion) + }; +} + +function getSplashArts(champion) { + const { id } = champion; + + return champion.skins.map( + (skin) => + `http://ddragon.leagueoflegends.com/cdn/img/champion/splash/${id}_${skin.num}.jpg` + ); +} diff --git a/src/components/Thumbnail.js b/src/components/Thumbnail.js deleted file mode 100644 index c4f9a55..0000000 --- a/src/components/Thumbnail.js +++ /dev/null @@ -1,49 +0,0 @@ -import { memo, useEffect, useRef, useState } from "react"; -import Link from "next/link"; -import styles from "@/styles/Thumbnail.module.css"; - -/** - * - * @param {{champion: IChampion}} props - */ -function Thumbnail({ champion }) { - const [loading, setLoading] = useState(true); - const [imgSize, setImgSize] = useState(150); - const imgRef = useRef(); - - const handleLoad = () => { - setLoading(false); - }; - - useEffect(() => { - setImgSize(imgRef.current?.width || 150); - }, []); - - return ( - - ); -} - -export default memo(Thumbnail, (a, b) => a.champion.name === b.champion.name); diff --git a/src/pages/champions/[id].js b/src/pages/champions/[id].js deleted file mode 100644 index a4bcb38..0000000 --- a/src/pages/champions/[id].js +++ /dev/null @@ -1,81 +0,0 @@ -import Head from "next/head"; -import { useEffect } from "react"; -import { useTheme } from "@/context/theme"; -import styles from "@/styles/Champion.module.css"; - -export async function getStaticPaths() { - const { champions } = require("@/public/data/latest.json"); - - const paths = champions.map((champion) => ({ - params: { - id: champion.id - } - })); - - return { - paths, - fallback: false - }; -} - -export async function getStaticProps(context) { - const { champions } = require("@/public/data/latest.json"); - const champion = champions.find( - (champion) => champion.id === context.params.id - ); - - return { - props: { - champion - } - }; -} - -/** - * - * @param {{champion: IChampion}} props - * @returns - */ -function Champion({ champion }) { - const { setTheme } = useTheme(); - - useEffect(() => { - setTheme(champion.color); - }, [setTheme, champion.color]); - - return ( - <> - - {champion.name} - League of React - -
-
-
-

{champion.name}

- {champion.title} -
-
- {champion.new && NUEVO} - {champion.name} - - {champion.name} -
-
-
- - ); -} - -export default Champion; diff --git a/src/styles/Champion.module.css b/src/styles/Champion.module.css deleted file mode 100644 index 8681e29..0000000 --- a/src/styles/Champion.module.css +++ /dev/null @@ -1,56 +0,0 @@ -.champion { - background-color: var(--LIGHT_GRAY); - padding: 1rem; - border-radius: 0.5rem; - gap: 1rem; -} - -.name { - margin: 0; -} - -.title { - font-weight: bold; - text-transform: uppercase; - display: block; - margin: 1rem 0; - font-size: 0.85rem; -} - -.images img { - border-radius: 0.5rem; -} - -.vertical { - width: 100%; -} - -.horizontal { - display: none; -} - -@media screen and (min-width: 475px) { - .champion { - display: grid; - grid-template-areas: "image details"; - grid-auto-columns: 1fr auto; - } - - .details { - grid-area: details; - display: flex; - flex-direction: column; - justify-content: center; - } -} - -@media screen and (min-width: 600px) { - .vertical { - display: none; - } - - .horizontal { - display: inline-block; - width: 100%; - } -} diff --git a/src/styles/Thumbnail.module.css b/src/styles/Thumbnail.module.css deleted file mode 100644 index 108533c..0000000 --- a/src/styles/Thumbnail.module.css +++ /dev/null @@ -1,46 +0,0 @@ -.thumbnail { - cursor: pointer; - text-align: center; - position: relative; -} - -.thumbnail img { - width: 100%; - height: auto; - border-radius: 0.5rem; -} - -.champion_name { - font-weight: bold; - display: block; - margin-top: 0.5rem; -} - -.skeleton { - position: absolute; - left: 0; - top: 0; - background: linear-gradient( - to right, - rgba(0, 0, 0, 0.1), - rgba(0, 0, 0, 0.15), - rgba(0, 0, 0, 0.1) - ); - width: 150px; - height: 150px; - border-radius: 0.5rem; - margin-bottom: 0.5rem; - animation-name: loading; - animation-timing-function: linear; - animation-duration: 2s; - animation-iteration-count: infinite; -} - -@keyframes loading { - 0% { - background-position: -150px 0; - } - 100% { - background-position: 150px 0; - } -} diff --git a/styles/Champion.module.css b/styles/Champion.module.css new file mode 100644 index 0000000..e729520 --- /dev/null +++ b/styles/Champion.module.css @@ -0,0 +1,83 @@ +.splash_art { + width: 100%; + position: relative; +} + +.splash_art img { + border-radius: 0.5rem; + width: 100%; + aspect-ratio: 16 / 9; + object-fit: cover; +} + +.overlay { + position: absolute; + height: 100%; + width: 100%; + top: 0; + left: 0; + background: linear-gradient( + 0deg, + rgba(34, 40, 49, 1) 0%, + rgba(34, 40, 49, 0) 35% + ); +} + +.details { + position: relative; + margin-top: -2.5rem; + padding: 0 2rem; +} + +.name { + margin: 0; + font-size: 3.5rem; + letter-spacing: 0.25rem; + font-style: italic; +} + +.title { + font-weight: 500; + font-style: italic; + text-transform: uppercase; + display: block; + margin-top: 0; + margin-bottom: 2rem; + letter-spacing: 0.1rem; + font-size: 1rem; +} + +.lore { + text-align: left; + letter-spacing: 0.1rem; + font-size: 0.85rem; + line-height: 1.25rem; +} + +@media screen and (min-width: 600px) { + .details { + margin-top: -3.25rem; + } + + .name { + font-size: 4.5rem; + } + + .title { + font-size: 1.5rem; + } +} + +@media screen and (min-width: 800px) { + .details { + margin-top: -4.5rem; + } + + .name { + font-size: 6rem; + } + + .title { + font-size: 1.5rem; + } +} diff --git a/src/styles/Header.module.css b/styles/Header.module.css similarity index 95% rename from src/styles/Header.module.css rename to styles/Header.module.css index ebab9f6..3de90b3 100644 --- a/src/styles/Header.module.css +++ b/styles/Header.module.css @@ -10,6 +10,7 @@ justify-content: space-between; padding: 1rem; transition: all 0.2s ease-out; + margin-bottom: 1rem; } .nav a { @@ -27,7 +28,6 @@ background-color: var(--YELLOW); display: inline-block; padding: 0.5rem 0.75rem; - margin: 1rem auto; border-radius: 50rem; font-size: 0.75rem; font-weight: bold; diff --git a/src/styles/Search.module.css b/styles/Search.module.css similarity index 65% rename from src/styles/Search.module.css rename to styles/Search.module.css index 330aa6a..32b937e 100644 --- a/src/styles/Search.module.css +++ b/styles/Search.module.css @@ -1,9 +1,9 @@ .search { - background-color: var(--LIGHT_GRAY); - padding: 0.5rem; - border-radius: 0.5rem; + background-color: rgba(0, 0, 0, 0.35); + padding: 0.55rem; + border-radius: 5px; display: flex; - gap: 0.5rem; + gap: 0.4rem; margin: 0 auto 1rem; max-width: 300px; } @@ -14,7 +14,7 @@ border-radius: 0.25rem; border: none; outline: none; - padding: 0.25rem; + padding: 0.55rem 0.65rem; font-size: 1rem; font-family: "Roboto"; } @@ -25,3 +25,7 @@ color: #fff; cursor: pointer; } + +.search button svg { + width: 20px; +} diff --git a/styles/Thumbnail.module.css b/styles/Thumbnail.module.css new file mode 100644 index 0000000..38a769e --- /dev/null +++ b/styles/Thumbnail.module.css @@ -0,0 +1,30 @@ +.thumbnail { + cursor: pointer; + text-align: center; + position: relative; + background-color: rgba(0, 0, 0, 0.35); + border-radius: 3px; + overflow: hidden; +} + +.thumbnail img { + width: 100%; + height: auto; + transition: all 0.3s ease; + aspect-ratio: 1; + object-fit: cover; + object-position: top; + border-radius: 3px 3px 0 0; + transform: scale(1.15); +} + +.champion_name { + font-weight: bold; + display: block; + padding: 0.5em; +} + +.thumbnail:hover img { + transform: scale(1.1); + border-radius: 5px; +} diff --git a/src/styles/index.css b/styles/index.css similarity index 69% rename from src/styles/index.css rename to styles/index.css index 3a4fbfb..6693fcc 100644 --- a/src/styles/index.css +++ b/styles/index.css @@ -44,30 +44,33 @@ svg { } main { - width: 90%; - margin: 1rem auto; - max-width: 1100px; + width: 100%; + padding: 1rem; text-align: center; } main .grid { - background: var(--LIGHT_GRAY); - padding: 1rem; display: grid; gap: 1rem; - grid-template-columns: repeat(auto-fill, 120px); - justify-content: space-between; + grid-template-columns: repeat(2, 1fr); + justify-content: center; border-radius: 0.5rem; } -@media screen and (min-width: 400px) { +@media screen and (min-width: 650px) { + main .grid { + grid-template-columns: repeat(3, 1fr); + } +} + +@media screen and (min-width: 800px) { main .grid { - grid-template-columns: repeat(auto-fill, 100px); + grid-template-columns: repeat(4, 1fr); } } -@media screen and (min-width: 900px) { +@media screen and (min-width: 1000px) { main .grid { - grid-template-columns: repeat(auto-fill, 150px); + grid-template-columns: repeat(5, 1fr); } } diff --git a/src/utils.js b/utils/index.js similarity index 100% rename from src/utils.js rename to utils/index.js diff --git a/utils/versions.js b/utils/versions.js new file mode 100644 index 0000000..64636e6 --- /dev/null +++ b/utils/versions.js @@ -0,0 +1,26 @@ +import fetch from "node-fetch"; + +/** + * Get champions of specific version + * @param {string} version + * @returns {Promise} Champions array + */ +export async function fetchVersion(version) { + const response = await fetch( + `http://ddragon.leagueoflegends.com/cdn/${version}/data/es_MX/champion.json` + ); + const json = await response.json(); + return Object.values(json.data); +} + +/** + * Get the lastest two versions of LoL + * @returns {Promise} Two latest versions + */ +export async function getVersions() { + const url = "https://ddragon.leagueoflegends.com/api/versions.json"; + const response = await fetch(url); + const [latest, previous] = await response.json(); + + return { latest, previous }; +}