<%= page.title %>
+ <% if ( process.env.NODE_ENV !== 'production' ) { %> +<%= error %>+
diff --git a/.babelrc b/.babelrc
new file mode 100644
index 0000000..aea7cd7
--- /dev/null
+++ b/.babelrc
@@ -0,0 +1,12 @@
+{
+ "presets": [
+ [
+ "@babel/preset-env",
+ {
+ "targets": {
+ "esmodules": true
+ }
+ }
+ ]
+ ]
+}
\ No newline at end of file
diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..181d69b
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,6 @@
+NODE_ENV=development
+PORT=3000
+MONGODB_URI=mongodb://images-upload-db/upload
+TRUST_PROXY=loopback
+PAGINATION=16
+SECRET=waemaeMe5ahc6ce1chaeKohKa6Io8Eik
\ No newline at end of file
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..eddfa34
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,26 @@
+module.exports = {
+ env: {
+ browser: true,
+ es2021: true
+ },
+ extends: 'google',
+ overrides: [
+ {
+ env: {
+ node: true
+ },
+ files: [
+ '.eslintrc.{js,cjs}'
+ ],
+ parserOptions: {
+ sourceType: 'script'
+ }
+ }
+ ],
+ parserOptions: {
+ ecmaVersion: 'latest',
+ sourceType: 'module'
+ },
+ rules: {
+ }
+}
diff --git a/.gitignore b/.gitignore
index ceaea36..e067c4f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -130,3 +130,5 @@ dist
.yarn/install-state.gz
.pnp.*
+.DS_Store
+uploads
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100755
index 0000000..75fac8e
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+. "$(dirname -- "$0")/_/husky.sh"
+
+npm run lint
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..9373655
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,40 @@
+version: "2.4"
+
+services:
+ images-upload-www:
+ container_name: images-upload-www
+ image: "node:18"
+ restart: always
+ user: "node"
+ working_dir: /home/node/app
+ command: >
+ bash -c "
+ npm install &&
+ npm run watch"
+ volumes:
+ - ./:/home/node/app
+ - /home/node/node_modules
+ ports:
+ - 2666:3000
+ depends_on:
+ - images-upload-db
+ environment:
+ NODE_ENV: ${NODE_ENV}
+ PORT: ${PORT}
+ MONGODB_URI: ${MONGODB_URI}
+ SECRET: ${SECRET}
+ TRUST_PROXY: ${TRUST_PROXY}
+ PAGINATION: ${PAGINATION}
+ DEBUG: "*"
+ networks:
+ - images-upload
+ images-upload-db:
+ container_name: images-upload-db
+ image: mongo:latest
+ restart: always
+ networks:
+ - images-upload
+
+networks:
+ images-upload:
+ driver: bridge
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..2f6b2da
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,7915 @@
+{
+ "name": "simple-images-upload",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "simple-images-upload",
+ "version": "1.0.0",
+ "license": "CC-BY-NC-SA-4.0",
+ "dependencies": {
+ "connect-ensure-login": "^0.1.1",
+ "connect-flash": "^0.1.1",
+ "connect-mongo": "^5.0.0",
+ "cookie-parser": "^1.4.6",
+ "debug": "^4.3.4",
+ "ejs": "^3.1.9",
+ "express": "^4.18.2",
+ "express-session": "^1.17.3",
+ "knacss": "^8.0.4",
+ "mongoose": "^7.5.2",
+ "mongoose-unique-validator": "^4.0.0",
+ "multer": "^1.4.5-lts.1",
+ "passport": "^0.6.0",
+ "passport-http": "^0.3.0",
+ "passport-local": "^1.0.0",
+ "rand-token": "^1.0.1",
+ "sharp": "^0.32.6"
+ },
+ "devDependencies": {
+ "@babel/cli": "^7.22.15",
+ "@babel/preset-env": "^7.22.20",
+ "eslint": "^8.50.0",
+ "eslint-config-google": "^0.14.0",
+ "husky": "^8.0.3",
+ "nodemon": "^3.0.1",
+ "npm-run-all": "^4.1.5",
+ "sass": "^1.68.0"
+ }
+ },
+ "node_modules/@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
+ "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/cli": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.22.15.tgz",
+ "integrity": "sha512-prtg5f6zCERIaECeTZzd2fMtVjlfjhUcO+fBLQ6DXXdq5FljN+excVitJ2nogsusdf31LeqkjAfXZ7Xq+HmN8g==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "commander": "^4.0.1",
+ "convert-source-map": "^1.1.0",
+ "fs-readdir-recursive": "^1.1.0",
+ "glob": "^7.2.0",
+ "make-dir": "^2.1.0",
+ "slash": "^2.0.0"
+ },
+ "bin": {
+ "babel": "bin/babel.js",
+ "babel-external-helpers": "bin/babel-external-helpers.js"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "optionalDependencies": {
+ "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3",
+ "chokidar": "^3.4.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.22.13",
+ "chalk": "^2.4.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz",
+ "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.20.tgz",
+ "integrity": "sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.22.13",
+ "@babel/generator": "^7.22.15",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-module-transforms": "^7.22.20",
+ "@babel/helpers": "^7.22.15",
+ "@babel/parser": "^7.22.16",
+ "@babel/template": "^7.22.15",
+ "@babel/traverse": "^7.22.20",
+ "@babel/types": "^7.22.19",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/core/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz",
+ "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@babel/types": "^7.22.15",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
+ "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz",
+ "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz",
+ "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.22.9",
+ "@babel/helper-validator-option": "^7.22.15",
+ "browserslist": "^4.21.9",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz",
+ "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.5",
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz",
+ "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "regexpu-core": "^5.3.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz",
+ "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
+ "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.22.5",
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz",
+ "integrity": "sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.20.tgz",
+ "integrity": "sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
+ "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-remap-async-to-generator": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz",
+ "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-wrap-function": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz",
+ "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-member-expression-to-functions": "^7.22.15",
+ "@babel/helper-optimise-call-expression": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
+ "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.22.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
+ "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz",
+ "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-wrap-function": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz",
+ "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.22.19"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz",
+ "integrity": "sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@babel/template": "^7.22.15",
+ "@babel/traverse": "^7.22.15",
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.22.16",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz",
+ "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==",
+ "dev": true,
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz",
+ "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz",
+ "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/plugin-transform-optional-chaining": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.13.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.21.0-placeholder-for-preset-env.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz",
+ "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz",
+ "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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-unicode-sets-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz",
+ "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-generator-functions": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz",
+ "integrity": "sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.9",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz",
+ "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-remap-async-to-generator": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz",
+ "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz",
+ "integrity": "sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-properties": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz",
+ "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-static-block": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz",
+ "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.11",
+ "@babel/helper-plugin-utils": "^7.22.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-transform-classes": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz",
+ "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-environment-visitor": "^7.22.5",
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-optimise-call-expression": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.9",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "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.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz",
+ "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/template": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.15.tgz",
+ "integrity": "sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz",
+ "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz",
+ "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dynamic-import": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz",
+ "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.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-transform-exponentiation-operator": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz",
+ "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-export-namespace-from": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz",
+ "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.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-transform-for-of": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz",
+ "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz",
+ "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.5",
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-json-strings": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz",
+ "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.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-transform-literals": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz",
+ "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-logical-assignment-operators": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz",
+ "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.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-transform-member-expression-literals": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz",
+ "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz",
+ "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz",
+ "integrity": "sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-simple-access": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz",
+ "integrity": "sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-module-transforms": "^7.22.9",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz",
+ "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
+ "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-new-target": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz",
+ "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz",
+ "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.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-transform-numeric-separator": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz",
+ "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.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-transform-object-rest-spread": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz",
+ "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.22.9",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz",
+ "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-replace-supers": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-optional-catch-binding": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz",
+ "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.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-transform-optional-chaining": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.15.tgz",
+ "integrity": "sha512-ngQ2tBhq5vvSJw2Q2Z9i7ealNkpDMU0rGWnHPKqRZO0tzZ5tlaoz4hDvhXioOoaE0X2vfNss1djwg0DXlfu30A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.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-transform-parameters": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz",
+ "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-methods": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz",
+ "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-property-in-object": {
+ "version": "7.22.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz",
+ "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.22.5",
+ "@babel/helper-create-class-features-plugin": "^7.22.11",
+ "@babel/helper-plugin-utils": "^7.22.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-transform-property-literals": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz",
+ "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regenerator": {
+ "version": "7.22.10",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz",
+ "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "regenerator-transform": "^0.15.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-reserved-words": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz",
+ "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz",
+ "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-spread": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz",
+ "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-sticky-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz",
+ "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-template-literals": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz",
+ "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz",
+ "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
+ "version": "7.22.10",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz",
+ "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-property-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz",
+ "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz",
+ "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-sets-regex": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz",
+ "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/preset-env": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.20.tgz",
+ "integrity": "sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.22.20",
+ "@babel/helper-compilation-targets": "^7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-validator-option": "^7.22.15",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-import-assertions": "^7.22.5",
+ "@babel/plugin-syntax-import-attributes": "^7.22.5",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@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-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.22.5",
+ "@babel/plugin-transform-async-generator-functions": "^7.22.15",
+ "@babel/plugin-transform-async-to-generator": "^7.22.5",
+ "@babel/plugin-transform-block-scoped-functions": "^7.22.5",
+ "@babel/plugin-transform-block-scoping": "^7.22.15",
+ "@babel/plugin-transform-class-properties": "^7.22.5",
+ "@babel/plugin-transform-class-static-block": "^7.22.11",
+ "@babel/plugin-transform-classes": "^7.22.15",
+ "@babel/plugin-transform-computed-properties": "^7.22.5",
+ "@babel/plugin-transform-destructuring": "^7.22.15",
+ "@babel/plugin-transform-dotall-regex": "^7.22.5",
+ "@babel/plugin-transform-duplicate-keys": "^7.22.5",
+ "@babel/plugin-transform-dynamic-import": "^7.22.11",
+ "@babel/plugin-transform-exponentiation-operator": "^7.22.5",
+ "@babel/plugin-transform-export-namespace-from": "^7.22.11",
+ "@babel/plugin-transform-for-of": "^7.22.15",
+ "@babel/plugin-transform-function-name": "^7.22.5",
+ "@babel/plugin-transform-json-strings": "^7.22.11",
+ "@babel/plugin-transform-literals": "^7.22.5",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.22.11",
+ "@babel/plugin-transform-member-expression-literals": "^7.22.5",
+ "@babel/plugin-transform-modules-amd": "^7.22.5",
+ "@babel/plugin-transform-modules-commonjs": "^7.22.15",
+ "@babel/plugin-transform-modules-systemjs": "^7.22.11",
+ "@babel/plugin-transform-modules-umd": "^7.22.5",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
+ "@babel/plugin-transform-new-target": "^7.22.5",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11",
+ "@babel/plugin-transform-numeric-separator": "^7.22.11",
+ "@babel/plugin-transform-object-rest-spread": "^7.22.15",
+ "@babel/plugin-transform-object-super": "^7.22.5",
+ "@babel/plugin-transform-optional-catch-binding": "^7.22.11",
+ "@babel/plugin-transform-optional-chaining": "^7.22.15",
+ "@babel/plugin-transform-parameters": "^7.22.15",
+ "@babel/plugin-transform-private-methods": "^7.22.5",
+ "@babel/plugin-transform-private-property-in-object": "^7.22.11",
+ "@babel/plugin-transform-property-literals": "^7.22.5",
+ "@babel/plugin-transform-regenerator": "^7.22.10",
+ "@babel/plugin-transform-reserved-words": "^7.22.5",
+ "@babel/plugin-transform-shorthand-properties": "^7.22.5",
+ "@babel/plugin-transform-spread": "^7.22.5",
+ "@babel/plugin-transform-sticky-regex": "^7.22.5",
+ "@babel/plugin-transform-template-literals": "^7.22.5",
+ "@babel/plugin-transform-typeof-symbol": "^7.22.5",
+ "@babel/plugin-transform-unicode-escapes": "^7.22.10",
+ "@babel/plugin-transform-unicode-property-regex": "^7.22.5",
+ "@babel/plugin-transform-unicode-regex": "^7.22.5",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.22.5",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "@babel/types": "^7.22.19",
+ "babel-plugin-polyfill-corejs2": "^0.4.5",
+ "babel-plugin-polyfill-corejs3": "^0.8.3",
+ "babel-plugin-polyfill-regenerator": "^0.5.2",
+ "core-js-compat": "^3.31.0",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/preset-modules": {
+ "version": "0.1.6-no-external-plugins",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==",
+ "dev": true
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz",
+ "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==",
+ "dev": true,
+ "dependencies": {
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
+ "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.22.13",
+ "@babel/parser": "^7.22.15",
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.20.tgz",
+ "integrity": "sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.22.13",
+ "@babel/generator": "^7.22.15",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.22.5",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.22.16",
+ "@babel/types": "^7.22.19",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.22.19",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz",
+ "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.19",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.8.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.1.tgz",
+ "integrity": "sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz",
+ "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.6.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.22.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz",
+ "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/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==",
+ "dev": true,
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@eslint/eslintrc/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/@eslint/js": {
+ "version": "8.50.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz",
+ "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.11",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz",
+ "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==",
+ "dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
+ "dev": true
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.19",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
+ "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@mongodb-js/saslprep": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.0.tgz",
+ "integrity": "sha512-Xfijy7HvfzzqiOAhAepF4SGN5e9leLkMvg/OPOF97XemjfVCYN/oWa75wnkc6mltMSTwY+XlbhWgUOJmkFspSw==",
+ "optional": true,
+ "dependencies": {
+ "sparse-bitfield": "^3.0.3"
+ }
+ },
+ "node_modules/@nicolo-ribaudo/chokidar-2": {
+ "version": "2.1.8-no-fsevents.3",
+ "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz",
+ "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==",
+ "dev": true,
+ "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/@types/node": {
+ "version": "20.6.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.3.tgz",
+ "integrity": "sha512-HksnYH4Ljr4VQgEy2lTStbCKv/P590tmPe5HqOnv9Gprffgv5WXAY+Y5Gqniu0GGqeTCUdBnzC3QSrzPkBkAMA=="
+ },
+ "node_modules/@types/q": {
+ "version": "1.5.6",
+ "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.6.tgz",
+ "integrity": "sha512-IKjZ8RjTSwD4/YG+2gtj7BPFRB/lNbWKTiSj3M7U/TD2B7HfYCxvp2Zz6xA2WIY7pAuL1QOUPw8gQRbUrrq4fQ=="
+ },
+ "node_modules/@types/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog=="
+ },
+ "node_modules/@types/whatwg-url": {
+ "version": "8.2.2",
+ "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz",
+ "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/webidl-conversions": "*"
+ }
+ },
+ "node_modules/abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
+ },
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.10.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
+ "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
+ "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/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/alphanum-sort": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ=="
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/append-field": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
+ "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw=="
+ },
+ "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/array-buffer-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
+ "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "is-array-buffer": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
+ },
+ "node_modules/array.prototype.reduce": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz",
+ "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz",
+ "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "is-array-buffer": "^3.0.2",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "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/async": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
+ },
+ "node_modules/autoprefixer": {
+ "version": "9.8.8",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz",
+ "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==",
+ "dependencies": {
+ "browserslist": "^4.12.0",
+ "caniuse-lite": "^1.0.30001109",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "picocolors": "^0.2.1",
+ "postcss": "^7.0.32",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ }
+ },
+ "node_modules/autoprefixer/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
+ },
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/b4a": {
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
+ "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw=="
+ },
+ "node_modules/babel-plugin-polyfill-corejs2": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz",
+ "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.22.6",
+ "@babel/helper-define-polyfill-provider": "^0.4.2",
+ "semver": "^6.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz",
+ "integrity": "sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.4.2",
+ "core-js-compat": "^3.32.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz",
+ "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.4.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "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/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true,
+ "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/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/body-parser": {
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
+ "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.11.0",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/body-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/body-parser/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.21.11",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.11.tgz",
+ "integrity": "sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001538",
+ "electron-to-chromium": "^1.4.526",
+ "node-releases": "^2.0.13",
+ "update-browserslist-db": "^1.0.13"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/bson": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.0.tgz",
+ "integrity": "sha512-B+QB4YmDx9RStKv8LLSl/aVIEV3nYJc3cJNNTK2Cd1TL+7P+cNpw9mAPeCgc5K+j01Dv6sxUzcITXDx7ZU3F0w==",
+ "engines": {
+ "node": ">=14.20.1"
+ }
+ },
+ "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/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
+ },
+ "node_modules/busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+ "dependencies": {
+ "streamsearch": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.16.0"
+ }
+ },
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "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/caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+ "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==",
+ "dependencies": {
+ "callsites": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+ "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==",
+ "dependencies": {
+ "caller-callsite": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caniuse-api": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
+ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "caniuse-lite": "^1.0.0",
+ "lodash.memoize": "^4.1.2",
+ "lodash.uniq": "^4.5.0"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001538",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001538.tgz",
+ "integrity": "sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
+ "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/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "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/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/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
+ "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/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "node_modules/color/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/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/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "node_modules/concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "engines": [
+ "node >= 0.8"
+ ],
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/connect-ensure-login": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/connect-ensure-login/-/connect-ensure-login-0.1.1.tgz",
+ "integrity": "sha512-u0LGY/YXgkqdD4uVz8Gkri0adby5SBPYIFQvIa4FjBIaZUN0yuZPVHsjAA2bUiprGyjh8NlqxPUcIzzfTiXhQQ==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/connect-flash": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz",
+ "integrity": "sha512-2rcfELQt/ZMP+SM/pG8PyhJRaLKp+6Hk2IUBNkEit09X+vwn3QsAL3ZbYtxUn7NVPzbMTSLRDhqe0B/eh30RYA==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/connect-mongo": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/connect-mongo/-/connect-mongo-5.0.0.tgz",
+ "integrity": "sha512-s93jiP6GkRApn5duComx6RLwtP23YrulPxShz+8peX7svd6Q+MS8nKLhKCCazbP92C13eTVaIOxgeLt0ezIiCg==",
+ "dependencies": {
+ "debug": "^4.3.1",
+ "kruptein": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=12.9.0"
+ },
+ "peerDependencies": {
+ "express-session": "^1.17.1",
+ "mongodb": "^5.1.0"
+ }
+ },
+ "node_modules/content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "dev": true
+ },
+ "node_modules/cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
+ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-parser": {
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz",
+ "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==",
+ "dependencies": {
+ "cookie": "0.4.1",
+ "cookie-signature": "1.0.6"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.32.2",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz",
+ "integrity": "sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==",
+ "dev": true,
+ "dependencies": {
+ "browserslist": "^4.21.10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "node_modules/cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dependencies": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/cross-spawn/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/css-declaration-sorter": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz",
+ "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==",
+ "dependencies": {
+ "postcss": "^7.0.1",
+ "timsort": "^0.3.0"
+ },
+ "engines": {
+ "node": ">4"
+ }
+ },
+ "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-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/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssnano": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz",
+ "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==",
+ "dependencies": {
+ "cosmiconfig": "^5.0.0",
+ "cssnano-preset-default": "^4.0.8",
+ "is-resolvable": "^1.0.0",
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-preset-default": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz",
+ "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==",
+ "dependencies": {
+ "css-declaration-sorter": "^4.0.1",
+ "cssnano-util-raw-cache": "^4.0.1",
+ "postcss": "^7.0.0",
+ "postcss-calc": "^7.0.1",
+ "postcss-colormin": "^4.0.3",
+ "postcss-convert-values": "^4.0.1",
+ "postcss-discard-comments": "^4.0.2",
+ "postcss-discard-duplicates": "^4.0.2",
+ "postcss-discard-empty": "^4.0.1",
+ "postcss-discard-overridden": "^4.0.1",
+ "postcss-merge-longhand": "^4.0.11",
+ "postcss-merge-rules": "^4.0.3",
+ "postcss-minify-font-values": "^4.0.2",
+ "postcss-minify-gradients": "^4.0.2",
+ "postcss-minify-params": "^4.0.2",
+ "postcss-minify-selectors": "^4.0.2",
+ "postcss-normalize-charset": "^4.0.1",
+ "postcss-normalize-display-values": "^4.0.2",
+ "postcss-normalize-positions": "^4.0.2",
+ "postcss-normalize-repeat-style": "^4.0.2",
+ "postcss-normalize-string": "^4.0.2",
+ "postcss-normalize-timing-functions": "^4.0.2",
+ "postcss-normalize-unicode": "^4.0.1",
+ "postcss-normalize-url": "^4.0.1",
+ "postcss-normalize-whitespace": "^4.0.2",
+ "postcss-ordered-values": "^4.1.2",
+ "postcss-reduce-initial": "^4.0.3",
+ "postcss-reduce-transforms": "^4.0.2",
+ "postcss-svgo": "^4.0.3",
+ "postcss-unique-selectors": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-get-arguments": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz",
+ "integrity": "sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-get-match": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz",
+ "integrity": "sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-raw-cache": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz",
+ "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-same-parent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz",
+ "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "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/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decompress-response": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "dependencies": {
+ "mimic-response": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz",
+ "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.1",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
+ "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
+ "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-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.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ]
+ },
+ "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/dot-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "dependencies": {
+ "is-obj": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ },
+ "node_modules/ejs": {
+ "version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
+ "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
+ "dependencies": {
+ "jake": "^10.8.5"
+ },
+ "bin": {
+ "ejs": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.528",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.528.tgz",
+ "integrity": "sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA=="
+ },
+ "node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "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/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.22.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz",
+ "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "arraybuffer.prototype.slice": "^1.0.2",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.1",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.12",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.5.1",
+ "safe-array-concat": "^1.0.1",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.8",
+ "string.prototype.trimend": "^1.0.7",
+ "string.prototype.trimstart": "^1.0.7",
+ "typed-array-buffer": "^1.0.0",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.11"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-array-method-boxes-properly": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
+ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
+ "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3",
+ "has": "^1.0.3",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "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/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-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.50.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz",
+ "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.2",
+ "@eslint/js": "8.50.0",
+ "@humanwhocodes/config-array": "^0.11.11",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-google": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz",
+ "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=5.16.0"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/eslint/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/eslint/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "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/eslint/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "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/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.22.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz",
+ "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "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/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "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": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "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.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/expand-template": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/express": {
+ "version": "4.18.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
+ "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.1",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.5.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.2.0",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.11.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/express-session": {
+ "version": "1.17.3",
+ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz",
+ "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==",
+ "dependencies": {
+ "cookie": "0.4.2",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~2.0.0",
+ "on-headers": "~1.0.2",
+ "parseurl": "~1.3.3",
+ "safe-buffer": "5.2.1",
+ "uid-safe": "~2.1.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/express-session/node_modules/cookie": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/express-session/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/express-session/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/express/node_modules/cookie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/express/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/express/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "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-fifo": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ=="
+ },
+ "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": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true
+ },
+ "node_modules/fastq": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "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/filelist": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+ "dependencies": {
+ "minimatch": "^5.0.1"
+ }
+ },
+ "node_modules/filelist/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/filelist/node_modules/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/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/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz",
+ "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.2.7",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.9",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
+ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
+ "dev": true
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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-readdir-recursive": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
+ "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==",
+ "dev": true
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "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/function.prototype.name": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/github-from-package": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dependencies": {
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "dev": true
+ },
+ "node_modules/gulp-rename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz",
+ "integrity": "sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hex-color-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
+ "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ=="
+ },
+ "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/hsl-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
+ "integrity": "sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A=="
+ },
+ "node_modules/hsla-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
+ "integrity": "sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA=="
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/husky": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
+ "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
+ "dev": true,
+ "bin": {
+ "husky": "lib/bin.js"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/typicode"
+ }
+ },
+ "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": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/ignore-by-default": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
+ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
+ "dev": true
+ },
+ "node_modules/immutable": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz",
+ "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==",
+ "dev": true
+ },
+ "node_modules/import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "dependencies": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA=="
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
+ "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/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
+ "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.0",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/ip": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
+ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ=="
+ },
+ "node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-array-buffer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
+ "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.0",
+ "is-typed-array": "^1.1.10"
+ },
+ "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": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
+ },
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dependencies": {
+ "has-bigints": "^1.0.1"
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-color-stop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
+ "integrity": "sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA==",
+ "dependencies": {
+ "css-color-names": "^0.0.4",
+ "hex-color-regex": "^1.1.0",
+ "hsl-regex": "^1.0.0",
+ "hsla-regex": "^1.0.0",
+ "rgb-regex": "^1.0.1",
+ "rgba-regex": "^1.0.0"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
+ "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
+ "dev": true,
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-negative-zero": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-resolvable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg=="
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
+ "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
+ "dependencies": {
+ "which-typed-array": "^1.1.11"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "node_modules/jake": {
+ "version": "10.8.7",
+ "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz",
+ "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==",
+ "dependencies": {
+ "async": "^3.2.3",
+ "chalk": "^4.0.2",
+ "filelist": "^1.0.4",
+ "minimatch": "^3.1.2"
+ },
+ "bin": {
+ "jake": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jake/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/jake/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/jake/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/jake/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/jake/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/jake/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/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
+ "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=="
+ },
+ "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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/kareem": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz",
+ "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "4.5.3",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz",
+ "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/knacss": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/knacss/-/knacss-8.0.4.tgz",
+ "integrity": "sha512-J1XPRkzJyJtkeaLytUtxOZE/rR0ajA8/2BTsPeq2dALVUw8NrsYKoZlsrd5vrAvpijZ4X0hd8Oe15dLiZShRAA==",
+ "dependencies": {
+ "autoprefixer": "^9.7.1",
+ "cssnano": "^4.1.10",
+ "gulp-rename": "^2.0.0",
+ "postcss-combine-media-query": "^1.0.1"
+ }
+ },
+ "node_modules/kruptein": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/kruptein/-/kruptein-3.0.6.tgz",
+ "integrity": "sha512-EQJjTwAJfQkC4NfdQdo3HXM2a9pmBm8oidzH270cYu1MbgXPNPMJuldN7OPX+qdhPO5rw4X3/iKz0BFBfkXGKA==",
+ "dependencies": {
+ "asn1.js": "^5.4.1"
+ },
+ "engines": {
+ "node": ">8"
+ }
+ },
+ "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/load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
+ "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/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
+ "dev": true
+ },
+ "node_modules/lodash.foreach": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
+ "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ=="
+ },
+ "node_modules/lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ=="
+ },
+ "node_modules/lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="
+ },
+ "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=="
+ },
+ "node_modules/lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
+ },
+ "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==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/make-dir/node_modules/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "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/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/memory-pager": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
+ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
+ "optional": true
+ },
+ "node_modules/memorystream": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "dependencies": {
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
+ },
+ "node_modules/mongodb": {
+ "version": "5.9.0",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.0.tgz",
+ "integrity": "sha512-g+GCMHN1CoRUA+wb1Agv0TI4YTSiWr42B5ulkiAfLLHitGK1R+PkSAf3Lr5rPZwi/3F04LiaZEW0Kxro9Fi2TA==",
+ "peer": true,
+ "dependencies": {
+ "bson": "^5.5.0",
+ "mongodb-connection-string-url": "^2.6.0",
+ "socks": "^2.7.1"
+ },
+ "engines": {
+ "node": ">=14.20.1"
+ },
+ "optionalDependencies": {
+ "@mongodb-js/saslprep": "^1.1.0"
+ },
+ "peerDependencies": {
+ "@aws-sdk/credential-providers": "^3.188.0",
+ "@mongodb-js/zstd": "^1.0.0",
+ "kerberos": "^1.0.0 || ^2.0.0",
+ "mongodb-client-encryption": ">=2.3.0 <3",
+ "snappy": "^7.2.2"
+ },
+ "peerDependenciesMeta": {
+ "@aws-sdk/credential-providers": {
+ "optional": true
+ },
+ "@mongodb-js/zstd": {
+ "optional": true
+ },
+ "kerberos": {
+ "optional": true
+ },
+ "mongodb-client-encryption": {
+ "optional": true
+ },
+ "snappy": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/mongodb-connection-string-url": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz",
+ "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==",
+ "dependencies": {
+ "@types/whatwg-url": "^8.2.1",
+ "whatwg-url": "^11.0.0"
+ }
+ },
+ "node_modules/mongoose": {
+ "version": "7.5.2",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.5.2.tgz",
+ "integrity": "sha512-yEkmI1jfiog7QUvMWz3eB/XoA3/5DrVvSz+z3V5hnq8VtZIHC7ujEV0RKzRXwr8QNMOs+OTB7+aK7R/N/V3yXA==",
+ "dependencies": {
+ "bson": "^5.4.0",
+ "kareem": "2.5.1",
+ "mongodb": "5.8.1",
+ "mpath": "0.9.0",
+ "mquery": "5.0.0",
+ "ms": "2.1.3",
+ "sift": "16.0.1"
+ },
+ "engines": {
+ "node": ">=14.20.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mongoose"
+ }
+ },
+ "node_modules/mongoose-unique-validator": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mongoose-unique-validator/-/mongoose-unique-validator-4.0.0.tgz",
+ "integrity": "sha512-lOvL7wOZ8wM2Kggk6zPZuglmld7hmzf6TdNk/h9EidTH9iZNLl3Y2ZgRPjYd/so1AODLawehY56roa6HjX6jew==",
+ "dependencies": {
+ "lodash.foreach": "^4.1.0",
+ "lodash.get": "^4.0.2",
+ "lodash.merge": "^4.6.2"
+ },
+ "peerDependencies": {
+ "mongoose": "^7.0.0"
+ }
+ },
+ "node_modules/mongoose/node_modules/mongodb": {
+ "version": "5.8.1",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.8.1.tgz",
+ "integrity": "sha512-wKyh4kZvm6NrCPH8AxyzXm3JBoEf4Xulo0aUWh3hCgwgYJxyQ1KLST86ZZaSWdj6/kxYUA3+YZuyADCE61CMSg==",
+ "dependencies": {
+ "bson": "^5.4.0",
+ "mongodb-connection-string-url": "^2.6.0",
+ "socks": "^2.7.1"
+ },
+ "engines": {
+ "node": ">=14.20.1"
+ },
+ "optionalDependencies": {
+ "@mongodb-js/saslprep": "^1.1.0"
+ },
+ "peerDependencies": {
+ "@aws-sdk/credential-providers": "^3.188.0",
+ "@mongodb-js/zstd": "^1.0.0",
+ "kerberos": "^1.0.0 || ^2.0.0",
+ "mongodb-client-encryption": ">=2.3.0 <3",
+ "snappy": "^7.2.2"
+ },
+ "peerDependenciesMeta": {
+ "@aws-sdk/credential-providers": {
+ "optional": true
+ },
+ "@mongodb-js/zstd": {
+ "optional": true
+ },
+ "kerberos": {
+ "optional": true
+ },
+ "mongodb-client-encryption": {
+ "optional": true
+ },
+ "snappy": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/mongoose/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "node_modules/mpath": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz",
+ "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mquery": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz",
+ "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==",
+ "dependencies": {
+ "debug": "4.x"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "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/multer": {
+ "version": "1.4.5-lts.1",
+ "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz",
+ "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==",
+ "dependencies": {
+ "append-field": "^1.0.0",
+ "busboy": "^1.0.0",
+ "concat-stream": "^1.5.2",
+ "mkdirp": "^0.5.4",
+ "object-assign": "^4.1.1",
+ "type-is": "^1.6.4",
+ "xtend": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/napi-build-utils": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true
+ },
+ "node_modules/node-abi": {
+ "version": "3.47.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.47.0.tgz",
+ "integrity": "sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==",
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.13",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
+ "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ=="
+ },
+ "node_modules/nodemon": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz",
+ "integrity": "sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==",
+ "dev": true,
+ "dependencies": {
+ "chokidar": "^3.5.2",
+ "debug": "^3.2.7",
+ "ignore-by-default": "^1.0.1",
+ "minimatch": "^3.1.2",
+ "pstree.remy": "^1.1.8",
+ "semver": "^7.5.3",
+ "simple-update-notifier": "^2.0.0",
+ "supports-color": "^5.5.0",
+ "touch": "^3.1.0",
+ "undefsafe": "^2.0.5"
+ },
+ "bin": {
+ "nodemon": "bin/nodemon.js"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/nodemon"
+ }
+ },
+ "node_modules/nodemon/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/nopt": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+ "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
+ "dev": true,
+ "dependencies": {
+ "abbrev": "1"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-url": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
+ "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/npm-run-all": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
+ "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "chalk": "^2.4.1",
+ "cross-spawn": "^6.0.5",
+ "memorystream": "^0.3.1",
+ "minimatch": "^3.0.4",
+ "pidtree": "^0.3.0",
+ "read-pkg": "^3.0.0",
+ "shell-quote": "^1.6.1",
+ "string.prototype.padend": "^3.0.0"
+ },
+ "bin": {
+ "npm-run-all": "bin/npm-run-all/index.js",
+ "run-p": "bin/run-p/index.js",
+ "run-s": "bin/run-s/index.js"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "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/num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg=="
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.12.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
+ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
+ "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.4",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.getownpropertydescriptors": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz",
+ "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==",
+ "dependencies": {
+ "array.prototype.reduce": "^1.0.6",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "safe-array-concat": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
+ "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+ "dev": true,
+ "dependencies": {
+ "@aashutoshrathi/word-wrap": "^1.2.3",
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parent-module/node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/passport": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/passport/-/passport-0.6.0.tgz",
+ "integrity": "sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==",
+ "dependencies": {
+ "passport-strategy": "1.x.x",
+ "pause": "0.0.1",
+ "utils-merge": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/jaredhanson"
+ }
+ },
+ "node_modules/passport-http": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/passport-http/-/passport-http-0.3.0.tgz",
+ "integrity": "sha512-OwK9DkqGVlJfO8oD0Bz1VDIo+ijD3c1ZbGGozIZw+joIP0U60pXY7goB+8wiDWtNqHpkTaQiJ9Ux1jE3Ykmpuw==",
+ "dependencies": {
+ "passport-strategy": "1.x.x"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/passport-local": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz",
+ "integrity": "sha512-9wCE6qKznvf9mQYYbgJ3sVOHmCWoUNMVFoZzNoznmISbhnNNPhN9xfY3sLmScHMetEJeoY7CXwfhCe7argfQow==",
+ "dependencies": {
+ "passport-strategy": "1.x.x"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/passport-strategy": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
+ "integrity": "sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "node_modules/path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
+ },
+ "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/pause": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
+ "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg=="
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pidtree": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz",
+ "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==",
+ "dev": true,
+ "bin": {
+ "pidtree": "bin/pidtree.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-calc": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz",
+ "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==",
+ "dependencies": {
+ "postcss": "^7.0.27",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.0.2"
+ }
+ },
+ "node_modules/postcss-colormin": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz",
+ "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "color": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-colormin/node_modules/color": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "dependencies": {
+ "color-convert": "^1.9.3",
+ "color-string": "^1.6.0"
+ }
+ },
+ "node_modules/postcss-colormin/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-combine-media-query": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-combine-media-query/-/postcss-combine-media-query-1.0.1.tgz",
+ "integrity": "sha512-DFSXuYy3ltDkC2esIF0ORoS9DCjlyfWhtoQkG9brZMuJY1ABOER95sm3dvccR6IEgSrYX4RgqiHD4Lq3JGrxyw==",
+ "dependencies": {
+ "postcss": "^7.0.21"
+ }
+ },
+ "node_modules/postcss-convert-values": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz",
+ "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-convert-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-discard-comments": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz",
+ "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-discard-duplicates": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz",
+ "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-discard-empty": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz",
+ "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-discard-overridden": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz",
+ "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-merge-longhand": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz",
+ "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==",
+ "dependencies": {
+ "css-color-names": "0.0.4",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "stylehacks": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-merge-rules": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz",
+ "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "cssnano-util-same-parent": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0",
+ "vendors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/postcss-minify-font-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz",
+ "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-minify-gradients": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz",
+ "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "is-color-stop": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-minify-params": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz",
+ "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==",
+ "dependencies": {
+ "alphanum-sort": "^1.0.0",
+ "browserslist": "^4.0.0",
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "uniqs": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-params/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-minify-selectors": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz",
+ "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==",
+ "dependencies": {
+ "alphanum-sort": "^1.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/postcss-normalize-charset": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz",
+ "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-display-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz",
+ "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==",
+ "dependencies": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-positions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz",
+ "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-repeat-style": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz",
+ "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-string": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz",
+ "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==",
+ "dependencies": {
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-timing-functions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz",
+ "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==",
+ "dependencies": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-unicode": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz",
+ "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz",
+ "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==",
+ "dependencies": {
+ "is-absolute-url": "^2.0.0",
+ "normalize-url": "^3.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-normalize-whitespace": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz",
+ "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-ordered-values": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz",
+ "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-reduce-initial": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz",
+ "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-reduce-transforms": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz",
+ "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==",
+ "dependencies": {
+ "cssnano-util-get-match": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.0.13",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
+ "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-svgo": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz",
+ "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "svgo": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-svgo/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ },
+ "node_modules/postcss-unique-selectors": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz",
+ "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==",
+ "dependencies": {
+ "alphanum-sort": "^1.0.0",
+ "postcss": "^7.0.0",
+ "uniqs": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
+ },
+ "node_modules/postcss/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
+ },
+ "node_modules/prebuild-install": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
+ "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
+ "dependencies": {
+ "detect-libc": "^2.0.0",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
+ "napi-build-utils": "^1.0.1",
+ "node-abi": "^3.3.0",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^4.0.0",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0"
+ },
+ "bin": {
+ "prebuild-install": "bin.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/prebuild-install/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/prebuild-install/node_modules/tar-fs": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "dependencies": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "node_modules/prebuild-install/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/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/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/proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "dependencies": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/pstree.remy": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
+ "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
+ "dev": true
+ },
+ "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.3.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
+ "engines": {
+ "node": ">=0.6.0",
+ "teleport": ">=0.2.0"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/queue-tick": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
+ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag=="
+ },
+ "node_modules/rand-token": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rand-token/-/rand-token-1.0.1.tgz",
+ "integrity": "sha512-Zri5SfJmEzBJ3IexFdigvPSCamslJ7UjLkUn0tlgH7COJvaUr5V7FyUYgKifEMTw7gFO8ZLcWjcU+kq8akipzg==",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/random-bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
+ "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
+ "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/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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/readable-stream/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/readable-stream/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/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/regenerate-unicode-properties": {
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
+ "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
+ "dev": true,
+ "dependencies": {
+ "regenerate": "^1.4.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
+ "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==",
+ "dev": true
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
+ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
+ "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "set-function-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/regexpu-core": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/regjsgen": "^0.8.0",
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.1.0",
+ "regjsparser": "^0.9.1",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regjsparser": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
+ "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
+ "dev": true,
+ "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": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.6",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz",
+ "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "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/rgb-regex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
+ "integrity": "sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w=="
+ },
+ "node_modules/rgba-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
+ "integrity": "sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg=="
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "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-array-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz",
+ "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/safe-regex-test": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
+ "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "node_modules/sass": {
+ "version": "1.68.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.68.0.tgz",
+ "integrity": "sha512-Lmj9lM/fef0nQswm1J2HJcEsBUba4wgNx2fea6yJHODREoMFnwRpZydBnX/RjyXw2REIwdkbqE4hrTo4qfDBUA==",
+ "dev": true,
+ "dependencies": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "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/semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/send": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/send/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/send/node_modules/debug/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/send/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "node_modules/serve-static": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+ "dependencies": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.18.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/set-function-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
+ "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "node_modules/sharp": {
+ "version": "0.32.6",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
+ "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "color": "^4.2.3",
+ "detect-libc": "^2.0.2",
+ "node-addon-api": "^6.1.0",
+ "prebuild-install": "^7.1.1",
+ "semver": "^7.5.4",
+ "simple-get": "^4.0.1",
+ "tar-fs": "^3.0.4",
+ "tunnel-agent": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "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/sift": {
+ "version": "16.0.1",
+ "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz",
+ "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ=="
+ },
+ "node_modules/simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+ "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/simple-get": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+ "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+ "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": {
+ "decompress-response": "^6.0.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/simple-swizzle/node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ },
+ "node_modules/simple-update-notifier": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
+ "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/smart-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
+ "engines": {
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/socks": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
+ "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
+ "dependencies": {
+ "ip": "^2.0.0",
+ "smart-buffer": "^4.2.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "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/source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sparse-bitfield": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
+ "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
+ "optional": true,
+ "dependencies": {
+ "memory-pager": "^1.0.2"
+ }
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "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.15",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz",
+ "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==",
+ "dev": true
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
+ },
+ "node_modules/stable": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
+ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
+ "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility"
+ },
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/streamsearch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/streamx": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz",
+ "integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==",
+ "dependencies": {
+ "fast-fifo": "^1.1.0",
+ "queue-tick": "^1.0.1"
+ }
+ },
+ "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/string_decoder/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/string.prototype.padend": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz",
+ "integrity": "sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
+ "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
+ "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
+ "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "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": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/stylehacks": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz",
+ "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/stylehacks/node_modules/postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/tar-fs": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
+ "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
+ "dependencies": {
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^3.1.5"
+ }
+ },
+ "node_modules/tar-stream": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz",
+ "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==",
+ "dependencies": {
+ "b4a": "^1.6.4",
+ "fast-fifo": "^1.2.0",
+ "streamx": "^2.15.0"
+ }
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true
+ },
+ "node_modules/timsort": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
+ "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A=="
+ },
+ "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/touch": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
+ "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
+ "dev": true,
+ "dependencies": {
+ "nopt": "~1.0.10"
+ },
+ "bin": {
+ "nodetouch": "bin/nodetouch.js"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
+ "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
+ "dependencies": {
+ "punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
+ "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
+ "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+ "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
+ },
+ "node_modules/uid-safe": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
+ "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
+ "dependencies": {
+ "random-bytes": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/undefsafe": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
+ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
+ "dev": true
+ },
+ "node_modules/unicode-canonical-property-names-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
+ "dev": true,
+ "dependencies": {
+ "unicode-canonical-property-names-ecmascript": "^2.0.0",
+ "unicode-property-aliases-ecmascript": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-value-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-property-aliases-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA=="
+ },
+ "node_modules/uniqs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+ "integrity": "sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ=="
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/unquote": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
+ "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg=="
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "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/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "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/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vendors": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz",
+ "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/whatwg-url": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
+ "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
+ "dependencies": {
+ "tr46": "^3.0.0",
+ "webidl-conversions": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "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.11",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz",
+ "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "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=="
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..0a86c5c
--- /dev/null
+++ b/package.json
@@ -0,0 +1,68 @@
+{
+ "name": "simple-images-upload",
+ "version": "1.0.0",
+ "description": "Simple application to store and share image with bbcode integration",
+ "main": "src/bin/www",
+ "scripts": {
+ "run:all": "npm-run-all build sass start",
+ "build": "npx babel ./src --out-dir dist --copy-files",
+ "sass": "npx sass sass/index.scss public/css/main.css -s compressed --color",
+ "watch": "npx nodemon -e js,scss",
+ "start": "node ./dist/bin/www",
+ "lint": "npx eslint ./src --ext .js",
+ "lint:fix": "npx eslint --fix ./src --ext .js",
+ "prepare": "husky install"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git@git.darkou.fr:dbroqua/simple-images-upload.git"
+ },
+ "author": {
+ "name": "Damien Broqua",
+ "email": "contact@darkou.fr",
+ "url": "https://www.darkou.fr"
+ },
+ "license": "CC-BY-NC-SA-4.0",
+ "nodemonConfig": {
+ "exec": "npm run run:all",
+ "watch": [
+ "src/*",
+ "sass/*",
+ "javascripts/*"
+ ],
+ "ignore": [
+ "**/__tests__/**",
+ "*.test.js",
+ "*.spec.js"
+ ]
+ },
+ "devDependencies": {
+ "@babel/cli": "^7.22.15",
+ "@babel/preset-env": "^7.22.20",
+ "eslint": "^8.50.0",
+ "eslint-config-google": "^0.14.0",
+ "husky": "^8.0.3",
+ "nodemon": "^3.0.1",
+ "npm-run-all": "^4.1.5",
+ "sass": "^1.68.0"
+ },
+ "dependencies": {
+ "connect-ensure-login": "^0.1.1",
+ "connect-flash": "^0.1.1",
+ "connect-mongo": "^5.0.0",
+ "cookie-parser": "^1.4.6",
+ "debug": "^4.3.4",
+ "ejs": "^3.1.9",
+ "express": "^4.18.2",
+ "express-session": "^1.17.3",
+ "knacss": "^8.0.4",
+ "mongoose": "^7.5.2",
+ "mongoose-unique-validator": "^4.0.0",
+ "multer": "^1.4.5-lts.1",
+ "passport": "^0.6.0",
+ "passport-http": "^0.3.0",
+ "passport-local": "^1.0.0",
+ "rand-token": "^1.0.1",
+ "sharp": "^0.32.6"
+ }
+}
diff --git a/public/css/main.css b/public/css/main.css
new file mode 100644
index 0000000..0fc891a
--- /dev/null
+++ b/public/css/main.css
@@ -0,0 +1 @@
+*,*::before,*::after{box-sizing:border-box;min-width:0;min-height:0}html{font-size:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:100%;overflow-wrap:break-word}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:1rem;line-height:1.5;background-color:#fff;color:#212529}h1,.h1-like,h2,.h2-like,h3,.h3-like,h4,.h4-like,h5,.h5-like,h6,.h6-like{color:#212529}a{color:#454d5d;text-decoration:underline}a:focus,a:hover,a:active{color:#212529;text-decoration:underline}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}h1,.h1-like,h2,.h2-like{margin-top:0;margin-bottom:1rem}p,address,ol,ul,dl,blockquote,pre,h3,.h3-like,h4,.h4-like,h5,.h5-like,h6,.h6-like,dt,dd{margin-top:0;margin-bottom:.5rem}ol ol,ol ul,ul ol,ul ul,li ul,li ol,nav ul,nav ol,li p,li .p-like{margin-top:0;margin-bottom:0}ul,ol{padding-left:1rem}nav ul,nav ol{list-style:none;padding:0}audio,canvas,iframe,img,svg,video{vertical-align:middle}img,table,td,blockquote,pre,code,input,textarea,select,video,svg,iframe{max-width:100%}iframe,img,input,select,textarea{height:auto}img{border-style:none}iframe{border-style:none}svg:not([fill]){fill:currentColor}svg:not(:root){overflow:hidden}table{border-collapse:collapse}hr{box-sizing:content-box;height:0;overflow:visible;border:0;border-top:1px solid;margin:1rem 0;clear:both;color:inherit}table{width:100%;max-width:100%;table-layout:fixed;border-collapse:collapse;vertical-align:top;margin-bottom:1rem}.visually-hidden,.sr-only{position:absolute !important;border:0 !important;height:1px !important;width:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important}@media(prefers-reduced-motion: reduce){*{animation:none !important;transition:none !important}}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled=true],[disabled]{cursor:not-allowed}[aria-hidden=false][hidden]{display:initial}[aria-hidden=false][hidden]:not(:focus){clip:rect(0, 0, 0, 0);position:absolute}a,area,button,input,label,select,summary,textarea,[tabindex]{-ms-touch-action:manipulation;touch-action:manipulation}button,input,select,textarea{margin:0;background-color:rgba(0,0,0,0);color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;letter-spacing:inherit;vertical-align:middle}button,input:not([type=radio]):not([type=checkbox]),select,textarea{border:0}pre,code,kbd,samp{font-family:monospace,monospace;font-size:1em}pre{tab-size:2;white-space:pre-wrap;line-height:normal;overflow:auto;-ms-overflow-style:scrollbar}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}form,fieldset{border:none}fieldset{margin:0;padding:1rem}legend{display:table;max-width:100%;padding:0 .125rem;border:0;color:inherit;white-space:normal}label{display:inline-block;cursor:pointer}textarea{overflow:auto;vertical-align:top;resize:vertical;white-space:pre-wrap}progress{display:inline-block;width:100%;vertical-align:baseline}output{display:inline-block}summary{display:list-item}template{display:none}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}@media print{*{background:rgba(0,0,0,0) !important;box-shadow:none !important;text-shadow:none !important}body{width:auto;margin:auto;font-family:serif;font-size:12pt}p,.p-like,h1,.h1-like,h2,.h2-like,h3,.h3-like,h4,.h4-like,h5,.h5-like,h6,.h6-like,blockquote,label,ul,ol{color:#000;margin:auto}.print{display:block}.no-print{display:none}p,.p-like,blockquote{orphans:3;widows:3}blockquote,ul,ol{page-break-inside:avoid}h1,.h1-like,h2,.h2-like,h3,.h3-like,caption{page-break-after:avoid}a{color:#000}a[href^="javascript:"]::after,a[href^="#"]::after{content:""}}.layout-maxed{display:grid}@media(min-width: 576px){.layout-maxed{grid-template-columns:minmax(0.5rem, 1fr) minmax(auto, 576px) minmax(0.5rem, 1fr)}}@media(min-width: 992px){.layout-maxed{grid-template-columns:minmax(0.5rem, 1fr) minmax(auto, 992px) minmax(0.5rem, 1fr)}}@media(min-width: 1330px){.layout-maxed{grid-template-columns:minmax(0.5rem, 1fr) minmax(auto, 1330px) minmax(0.5rem, 1fr)}}.layout-maxed>*{grid-column:2}.layout-hero{grid-column:1/-1;display:grid;grid-template-columns:inherit}.layout-hero>*{grid-column:2}.layout-hero-img{grid-column:1/-1;justify-self:center;max-width:100%}.hidden{display:none}.block{display:block}.inline{display:inline}.inline-block{display:inline-block}.flex{display:flex}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-no-wrap{flex-wrap:nowrap}.flex-shrink{flex-shrink:1}.flex-no-shrink{flex-shrink:0}.flex-grow{flex-grow:1}.flex-no-grow{flex-grow:0}.float-left{float:left}.float-right{float:right}.float-none{float:none}.text-bold{font-weight:bold}.text-italic{font-style:italic}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-smaller{font-size:smaller}.text-bigger{font-size:bigger}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-wrap{overflow-wrap:break-word}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.align-start{align-content:start}.align-end{align-content:end}.align-center{align-content:center}.align-between{align-content:space-between}.align-around{align-content:space-around}.align-evenly{align-content:space-evenly}.align-items-start{align-items:flex-start}.align-items-end{align-items:flex-end}.align-items-center{align-items:center}.place-center{place-content:center}.justify-self-auto{justify-self:auto}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.justify-self-stretch{justify-self:stretch}.align-self-auto{align-self:auto}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-stretch{align-self:stretch}.align-top{vertical-align:top}.align-bottom{vertical-align:bottom}.align-middle{vertical-align:middle}.item-first{order:-100}.item-last{order:100}@media(min-width: 576px){.sm\:hidden{display:none}}@media(min-width: 992px){.md\:hidden{display:none}}@media(min-width: 1330px){.lg\:hidden{display:none}}@media(min-width: 576px){.sm\:block{display:block}}@media(min-width: 992px){.md\:block{display:block}}@media(min-width: 1330px){.lg\:block{display:block}}@media(min-width: 576px){.sm\:inline{display:inline}}@media(min-width: 992px){.md\:inline{display:inline}}@media(min-width: 1330px){.lg\:inline{display:inline}}@media(min-width: 576px){.sm\:inline-block{display:inline-block}}@media(min-width: 992px){.md\:inline-block{display:inline-block}}@media(min-width: 1330px){.lg\:inline-block{display:inline-block}}@media(min-width: 576px){.sm\:flex{display:flex}}@media(min-width: 992px){.md\:flex{display:flex}}@media(min-width: 1330px){.lg\:flex{display:flex}}@media(min-width: 576px){.sm\:flex-row{flex-direction:row}}@media(min-width: 992px){.md\:flex-row{flex-direction:row}}@media(min-width: 1330px){.lg\:flex-row{flex-direction:row}}@media(min-width: 576px){.sm\:flex-col{flex-direction:column}}@media(min-width: 992px){.md\:flex-col{flex-direction:column}}@media(min-width: 1330px){.lg\:flex-col{flex-direction:column}}@media(min-width: 576px){.sm\:flex-wrap{flex-wrap:wrap}}@media(min-width: 992px){.md\:flex-wrap{flex-wrap:wrap}}@media(min-width: 1330px){.lg\:flex-wrap{flex-wrap:wrap}}@media(min-width: 576px){.sm\:flex-no-wrap{flex-wrap:nowrap}}@media(min-width: 992px){.md\:flex-no-wrap{flex-wrap:nowrap}}@media(min-width: 1330px){.lg\:flex-no-wrap{flex-wrap:nowrap}}@media(min-width: 576px){.sm\:flex-shrink{flex-shrink:1}}@media(min-width: 992px){.md\:flex-shrink{flex-shrink:1}}@media(min-width: 1330px){.lg\:flex-shrink{flex-shrink:1}}@media(min-width: 576px){.sm\:flex-no-shrink{flex-shrink:0}}@media(min-width: 992px){.md\:flex-no-shrink{flex-shrink:0}}@media(min-width: 1330px){.lg\:flex-no-shrink{flex-shrink:0}}@media(min-width: 576px){.sm\:flex-grow{flex-grow:1}}@media(min-width: 992px){.md\:flex-grow{flex-grow:1}}@media(min-width: 1330px){.lg\:flex-grow{flex-grow:1}}@media(min-width: 576px){.sm\:flex-no-grow{flex-grow:0}}@media(min-width: 992px){.md\:flex-no-grow{flex-grow:0}}@media(min-width: 1330px){.lg\:flex-no-grow{flex-grow:0}}@media(min-width: 576px){.sm\:float-left{float:left}}@media(min-width: 992px){.md\:float-left{float:left}}@media(min-width: 1330px){.lg\:float-left{float:left}}@media(min-width: 576px){.sm\:float-right{float:right}}@media(min-width: 992px){.md\:float-right{float:right}}@media(min-width: 1330px){.lg\:float-right{float:right}}@media(min-width: 576px){.sm\:float-none{float:none}}@media(min-width: 992px){.md\:float-none{float:none}}@media(min-width: 1330px){.lg\:float-none{float:none}}@media(min-width: 576px){.sm\:text-bold{font-weight:bold}}@media(min-width: 992px){.md\:text-bold{font-weight:bold}}@media(min-width: 1330px){.lg\:text-bold{font-weight:bold}}@media(min-width: 576px){.sm\:text-italic{font-style:italic}}@media(min-width: 992px){.md\:text-italic{font-style:italic}}@media(min-width: 1330px){.lg\:text-italic{font-style:italic}}@media(min-width: 576px){.sm\:text-uppercase{text-transform:uppercase}}@media(min-width: 992px){.md\:text-uppercase{text-transform:uppercase}}@media(min-width: 1330px){.lg\:text-uppercase{text-transform:uppercase}}@media(min-width: 576px){.sm\:text-lowercase{text-transform:lowercase}}@media(min-width: 992px){.md\:text-lowercase{text-transform:lowercase}}@media(min-width: 1330px){.lg\:text-lowercase{text-transform:lowercase}}@media(min-width: 576px){.sm\:text-smaller{font-size:smaller}}@media(min-width: 992px){.md\:text-smaller{font-size:smaller}}@media(min-width: 1330px){.lg\:text-smaller{font-size:smaller}}@media(min-width: 576px){.sm\:text-bigger{font-size:bigger}}@media(min-width: 992px){.md\:text-bigger{font-size:bigger}}@media(min-width: 1330px){.lg\:text-bigger{font-size:bigger}}@media(min-width: 576px){.sm\:text-left{text-align:left}}@media(min-width: 992px){.md\:text-left{text-align:left}}@media(min-width: 1330px){.lg\:text-left{text-align:left}}@media(min-width: 576px){.sm\:text-center{text-align:center}}@media(min-width: 992px){.md\:text-center{text-align:center}}@media(min-width: 1330px){.lg\:text-center{text-align:center}}@media(min-width: 576px){.sm\:text-right{text-align:right}}@media(min-width: 992px){.md\:text-right{text-align:right}}@media(min-width: 1330px){.lg\:text-right{text-align:right}}@media(min-width: 576px){.sm\:text-justify{text-align:justify}}@media(min-width: 992px){.md\:text-justify{text-align:justify}}@media(min-width: 1330px){.lg\:text-justify{text-align:justify}}@media(min-width: 576px){.sm\:text-wrap{overflow-wrap:break-word}}@media(min-width: 992px){.md\:text-wrap{overflow-wrap:break-word}}@media(min-width: 1330px){.lg\:text-wrap{overflow-wrap:break-word}}@media(min-width: 576px){.sm\:justify-start{justify-content:flex-start}}@media(min-width: 992px){.md\:justify-start{justify-content:flex-start}}@media(min-width: 1330px){.lg\:justify-start{justify-content:flex-start}}@media(min-width: 576px){.sm\:justify-end{justify-content:flex-end}}@media(min-width: 992px){.md\:justify-end{justify-content:flex-end}}@media(min-width: 1330px){.lg\:justify-end{justify-content:flex-end}}@media(min-width: 576px){.sm\:justify-center{justify-content:center}}@media(min-width: 992px){.md\:justify-center{justify-content:center}}@media(min-width: 1330px){.lg\:justify-center{justify-content:center}}@media(min-width: 576px){.sm\:justify-between{justify-content:space-between}}@media(min-width: 992px){.md\:justify-between{justify-content:space-between}}@media(min-width: 1330px){.lg\:justify-between{justify-content:space-between}}@media(min-width: 576px){.sm\:justify-around{justify-content:space-around}}@media(min-width: 992px){.md\:justify-around{justify-content:space-around}}@media(min-width: 1330px){.lg\:justify-around{justify-content:space-around}}@media(min-width: 576px){.sm\:justify-evenly{justify-content:space-evenly}}@media(min-width: 992px){.md\:justify-evenly{justify-content:space-evenly}}@media(min-width: 1330px){.lg\:justify-evenly{justify-content:space-evenly}}@media(min-width: 576px){.sm\:justify-items-start{justify-items:start}}@media(min-width: 992px){.md\:justify-items-start{justify-items:start}}@media(min-width: 1330px){.lg\:justify-items-start{justify-items:start}}@media(min-width: 576px){.sm\:justify-items-end{justify-items:end}}@media(min-width: 992px){.md\:justify-items-end{justify-items:end}}@media(min-width: 1330px){.lg\:justify-items-end{justify-items:end}}@media(min-width: 576px){.sm\:justify-items-center{justify-items:center}}@media(min-width: 992px){.md\:justify-items-center{justify-items:center}}@media(min-width: 1330px){.lg\:justify-items-center{justify-items:center}}@media(min-width: 576px){.sm\:align-start{align-content:start}}@media(min-width: 992px){.md\:align-start{align-content:start}}@media(min-width: 1330px){.lg\:align-start{align-content:start}}@media(min-width: 576px){.sm\:align-end{align-content:end}}@media(min-width: 992px){.md\:align-end{align-content:end}}@media(min-width: 1330px){.lg\:align-end{align-content:end}}@media(min-width: 576px){.sm\:align-center{align-content:center}}@media(min-width: 992px){.md\:align-center{align-content:center}}@media(min-width: 1330px){.lg\:align-center{align-content:center}}@media(min-width: 576px){.sm\:align-between{align-content:space-between}}@media(min-width: 992px){.md\:align-between{align-content:space-between}}@media(min-width: 1330px){.lg\:align-between{align-content:space-between}}@media(min-width: 576px){.sm\:align-around{align-content:space-around}}@media(min-width: 992px){.md\:align-around{align-content:space-around}}@media(min-width: 1330px){.lg\:align-around{align-content:space-around}}@media(min-width: 576px){.sm\:align-evenly{align-content:space-evenly}}@media(min-width: 992px){.md\:align-evenly{align-content:space-evenly}}@media(min-width: 1330px){.lg\:align-evenly{align-content:space-evenly}}@media(min-width: 576px){.sm\:align-items-start{align-items:flex-start}}@media(min-width: 992px){.md\:align-items-start{align-items:flex-start}}@media(min-width: 1330px){.lg\:align-items-start{align-items:flex-start}}@media(min-width: 576px){.sm\:align-items-end{align-items:flex-end}}@media(min-width: 992px){.md\:align-items-end{align-items:flex-end}}@media(min-width: 1330px){.lg\:align-items-end{align-items:flex-end}}@media(min-width: 576px){.sm\:align-items-center{align-items:center}}@media(min-width: 992px){.md\:align-items-center{align-items:center}}@media(min-width: 1330px){.lg\:align-items-center{align-items:center}}@media(min-width: 576px){.sm\:place-center{place-content:center}}@media(min-width: 992px){.md\:place-center{place-content:center}}@media(min-width: 1330px){.lg\:place-center{place-content:center}}@media(min-width: 576px){.sm\:justify-self-auto{justify-self:auto}}@media(min-width: 992px){.md\:justify-self-auto{justify-self:auto}}@media(min-width: 1330px){.lg\:justify-self-auto{justify-self:auto}}@media(min-width: 576px){.sm\:justify-self-start{justify-self:start}}@media(min-width: 992px){.md\:justify-self-start{justify-self:start}}@media(min-width: 1330px){.lg\:justify-self-start{justify-self:start}}@media(min-width: 576px){.sm\:justify-self-end{justify-self:end}}@media(min-width: 992px){.md\:justify-self-end{justify-self:end}}@media(min-width: 1330px){.lg\:justify-self-end{justify-self:end}}@media(min-width: 576px){.sm\:justify-self-center{justify-self:center}}@media(min-width: 992px){.md\:justify-self-center{justify-self:center}}@media(min-width: 1330px){.lg\:justify-self-center{justify-self:center}}@media(min-width: 576px){.sm\:justify-self-stretch{justify-self:stretch}}@media(min-width: 992px){.md\:justify-self-stretch{justify-self:stretch}}@media(min-width: 1330px){.lg\:justify-self-stretch{justify-self:stretch}}@media(min-width: 576px){.sm\:align-self-auto{align-self:auto}}@media(min-width: 992px){.md\:align-self-auto{align-self:auto}}@media(min-width: 1330px){.lg\:align-self-auto{align-self:auto}}@media(min-width: 576px){.sm\:align-self-start{align-self:flex-start}}@media(min-width: 992px){.md\:align-self-start{align-self:flex-start}}@media(min-width: 1330px){.lg\:align-self-start{align-self:flex-start}}@media(min-width: 576px){.sm\:align-self-end{align-self:flex-end}}@media(min-width: 992px){.md\:align-self-end{align-self:flex-end}}@media(min-width: 1330px){.lg\:align-self-end{align-self:flex-end}}@media(min-width: 576px){.sm\:align-self-center{align-self:center}}@media(min-width: 992px){.md\:align-self-center{align-self:center}}@media(min-width: 1330px){.lg\:align-self-center{align-self:center}}@media(min-width: 576px){.sm\:align-self-stretch{align-self:stretch}}@media(min-width: 992px){.md\:align-self-stretch{align-self:stretch}}@media(min-width: 1330px){.lg\:align-self-stretch{align-self:stretch}}@media(min-width: 576px){.sm\:align-top{vertical-align:top}}@media(min-width: 992px){.md\:align-top{vertical-align:top}}@media(min-width: 1330px){.lg\:align-top{vertical-align:top}}@media(min-width: 576px){.sm\:align-bottom{vertical-align:bottom}}@media(min-width: 992px){.md\:align-bottom{vertical-align:bottom}}@media(min-width: 1330px){.lg\:align-bottom{vertical-align:bottom}}@media(min-width: 576px){.sm\:align-middle{vertical-align:middle}}@media(min-width: 992px){.md\:align-middle{vertical-align:middle}}@media(min-width: 1330px){.lg\:align-middle{vertical-align:middle}}@media(min-width: 576px){.sm\:item-first{order:-100}}@media(min-width: 992px){.md\:item-first{order:-100}}@media(min-width: 1330px){.lg\:item-first{order:-100}}@media(min-width: 576px){.sm\:item-last{order:100}}@media(min-width: 992px){.md\:item-last{order:100}}@media(min-width: 1330px){.lg\:item-last{order:100}}.is-unstyled{list-style:none;padding-left:0}.is-disabled,[disabled]{opacity:.6;cursor:not-allowed !important;filter:grayscale(1)}.text-normal{font-weight:normal;font-style:normal;text-transform:none}@media(min-width: 576px){.sm\:visually-hidden{position:absolute !important;border:0 !important;height:1px !important;width:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important}.sm\:is-unstyled{list-style:none;padding-left:0}.sm\:is-disabled{opacity:.6;cursor:not-allowed !important;filter:grayscale(1)}.sm\:text-normal{font-weight:normal;font-style:normal;text-transform:none}}@media(min-width: 992px){.md\:visually-hidden{position:absolute !important;border:0 !important;height:1px !important;width:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important}.md\:is-unstyled{list-style:none;padding-left:0}.md\:is-disabled{opacity:.6;cursor:not-allowed !important;filter:grayscale(1)}.md\:text-normal{font-weight:normal;font-style:normal;text-transform:none}}@media(min-width: 1330px){.lg\:visually-hidden{position:absolute !important;border:0 !important;height:1px !important;width:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important}.lg\:is-unstyled{list-style:none;padding-left:0}.lg\:is-disabled{opacity:.6;cursor:not-allowed !important;filter:grayscale(1)}.lg\:text-normal{font-weight:normal;font-style:normal;text-transform:none}}.text-10{font-size:.625rem}.text-11{font-size:.6875rem}.text-12{font-size:.75rem}.text-14{font-size:.875rem}.text-16{font-size:1rem}.text-18{font-size:1.125rem}.text-20{font-size:1.25rem}.text-24{font-size:1.5rem}.text-30{font-size:1.875rem}.text-36{font-size:2.25rem}.text-base{font-size:1rem}.text-inherit{font-size:"inherit"}@media(min-width: 576px){.sm\:text-10{font-size:.625rem}}@media(min-width: 992px){.md\:text-10{font-size:.625rem}}@media(min-width: 1330px){.lg\:text-10{font-size:.625rem}}@media(min-width: 576px){.sm\:text-11{font-size:.6875rem}}@media(min-width: 992px){.md\:text-11{font-size:.6875rem}}@media(min-width: 1330px){.lg\:text-11{font-size:.6875rem}}@media(min-width: 576px){.sm\:text-12{font-size:.75rem}}@media(min-width: 992px){.md\:text-12{font-size:.75rem}}@media(min-width: 1330px){.lg\:text-12{font-size:.75rem}}@media(min-width: 576px){.sm\:text-14{font-size:.875rem}}@media(min-width: 992px){.md\:text-14{font-size:.875rem}}@media(min-width: 1330px){.lg\:text-14{font-size:.875rem}}@media(min-width: 576px){.sm\:text-16{font-size:1rem}}@media(min-width: 992px){.md\:text-16{font-size:1rem}}@media(min-width: 1330px){.lg\:text-16{font-size:1rem}}@media(min-width: 576px){.sm\:text-18{font-size:1.125rem}}@media(min-width: 992px){.md\:text-18{font-size:1.125rem}}@media(min-width: 1330px){.lg\:text-18{font-size:1.125rem}}@media(min-width: 576px){.sm\:text-20{font-size:1.25rem}}@media(min-width: 992px){.md\:text-20{font-size:1.25rem}}@media(min-width: 1330px){.lg\:text-20{font-size:1.25rem}}@media(min-width: 576px){.sm\:text-24{font-size:1.5rem}}@media(min-width: 992px){.md\:text-24{font-size:1.5rem}}@media(min-width: 1330px){.lg\:text-24{font-size:1.5rem}}@media(min-width: 576px){.sm\:text-30{font-size:1.875rem}}@media(min-width: 992px){.md\:text-30{font-size:1.875rem}}@media(min-width: 1330px){.lg\:text-30{font-size:1.875rem}}@media(min-width: 576px){.sm\:text-36{font-size:2.25rem}}@media(min-width: 992px){.md\:text-36{font-size:2.25rem}}@media(min-width: 1330px){.lg\:text-36{font-size:2.25rem}}@media(min-width: 576px){.sm\:text-base{font-size:1rem}}@media(min-width: 992px){.md\:text-base{font-size:1rem}}@media(min-width: 1330px){.lg\:text-base{font-size:1rem}}@media(min-width: 576px){.sm\:text-inherit{font-size:"inherit"}}@media(min-width: 992px){.md\:text-inherit{font-size:"inherit"}}@media(min-width: 1330px){.lg\:text-inherit{font-size:"inherit"}}.p-0{padding:0}.pt-0{padding-top:0}.pr-0{padding-right:0}.pb-0{padding-bottom:0}.pl-0{padding-left:0}.px-0{padding-left:0;padding-right:0}.py-0{padding-top:0;padding-bottom:0}.m-0{margin:0}.mt-0{margin-top:0}.mr-0{margin-right:0}.mb-0{margin-bottom:0}.ml-0{margin-left:0}.mx-0{margin-left:0;margin-right:0}.my-0{margin-top:0;margin-bottom:0}@media(min-width: 576px){.sm\:p-0{padding:0}.sm\:pt-0{padding-top:0}.sm\:pr-0{padding-right:0}.sm\:pb-0{padding-bottom:0}.sm\:pl-0{padding-left:0}.sm\:px-0{padding-left:0;padding-right:0}.sm\:py-0{padding-top:0;padding-bottom:0}.sm\:m-0{margin:0}.sm\:mt-0{margin-top:0}.sm\:mr-0{margin-right:0}.sm\:mb-0{margin-bottom:0}.sm\:ml-0{margin-left:0}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:my-0{margin-top:0;margin-bottom:0}}@media(min-width: 992px){.md\:p-0{padding:0}.md\:pt-0{padding-top:0}.md\:pr-0{padding-right:0}.md\:pb-0{padding-bottom:0}.md\:pl-0{padding-left:0}.md\:px-0{padding-left:0;padding-right:0}.md\:py-0{padding-top:0;padding-bottom:0}.md\:m-0{margin:0}.md\:mt-0{margin-top:0}.md\:mr-0{margin-right:0}.md\:mb-0{margin-bottom:0}.md\:ml-0{margin-left:0}.md\:mx-0{margin-left:0;margin-right:0}.md\:my-0{margin-top:0;margin-bottom:0}}@media(min-width: 1330px){.lg\:p-0{padding:0}.lg\:pt-0{padding-top:0}.lg\:pr-0{padding-right:0}.lg\:pb-0{padding-bottom:0}.lg\:pl-0{padding-left:0}.lg\:px-0{padding-left:0;padding-right:0}.lg\:py-0{padding-top:0;padding-bottom:0}.lg\:m-0{margin:0}.lg\:mt-0{margin-top:0}.lg\:mr-0{margin-right:0}.lg\:mb-0{margin-bottom:0}.lg\:ml-0{margin-left:0}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:my-0{margin-top:0;margin-bottom:0}}.p-2{padding:.125rem}.pt-2{padding-top:.125rem}.pr-2{padding-right:.125rem}.pb-2{padding-bottom:.125rem}.pl-2{padding-left:.125rem}.px-2{padding-left:.125rem;padding-right:.125rem}.py-2{padding-top:.125rem;padding-bottom:.125rem}.m-2{margin:.125rem}.mt-2{margin-top:.125rem}.mr-2{margin-right:.125rem}.mb-2{margin-bottom:.125rem}.ml-2{margin-left:.125rem}.mx-2{margin-left:.125rem;margin-right:.125rem}.my-2{margin-top:.125rem;margin-bottom:.125rem}@media(min-width: 576px){.sm\:p-2{padding:.125rem}.sm\:pt-2{padding-top:.125rem}.sm\:pr-2{padding-right:.125rem}.sm\:pb-2{padding-bottom:.125rem}.sm\:pl-2{padding-left:.125rem}.sm\:px-2{padding-left:.125rem;padding-right:.125rem}.sm\:py-2{padding-top:.125rem;padding-bottom:.125rem}.sm\:m-2{margin:.125rem}.sm\:mt-2{margin-top:.125rem}.sm\:mr-2{margin-right:.125rem}.sm\:mb-2{margin-bottom:.125rem}.sm\:ml-2{margin-left:.125rem}.sm\:mx-2{margin-left:.125rem;margin-right:.125rem}.sm\:my-2{margin-top:.125rem;margin-bottom:.125rem}}@media(min-width: 992px){.md\:p-2{padding:.125rem}.md\:pt-2{padding-top:.125rem}.md\:pr-2{padding-right:.125rem}.md\:pb-2{padding-bottom:.125rem}.md\:pl-2{padding-left:.125rem}.md\:px-2{padding-left:.125rem;padding-right:.125rem}.md\:py-2{padding-top:.125rem;padding-bottom:.125rem}.md\:m-2{margin:.125rem}.md\:mt-2{margin-top:.125rem}.md\:mr-2{margin-right:.125rem}.md\:mb-2{margin-bottom:.125rem}.md\:ml-2{margin-left:.125rem}.md\:mx-2{margin-left:.125rem;margin-right:.125rem}.md\:my-2{margin-top:.125rem;margin-bottom:.125rem}}@media(min-width: 1330px){.lg\:p-2{padding:.125rem}.lg\:pt-2{padding-top:.125rem}.lg\:pr-2{padding-right:.125rem}.lg\:pb-2{padding-bottom:.125rem}.lg\:pl-2{padding-left:.125rem}.lg\:px-2{padding-left:.125rem;padding-right:.125rem}.lg\:py-2{padding-top:.125rem;padding-bottom:.125rem}.lg\:m-2{margin:.125rem}.lg\:mt-2{margin-top:.125rem}.lg\:mr-2{margin-right:.125rem}.lg\:mb-2{margin-bottom:.125rem}.lg\:ml-2{margin-left:.125rem}.lg\:mx-2{margin-left:.125rem;margin-right:.125rem}.lg\:my-2{margin-top:.125rem;margin-bottom:.125rem}}.p-5{padding:.313rem}.pt-5{padding-top:.313rem}.pr-5{padding-right:.313rem}.pb-5{padding-bottom:.313rem}.pl-5{padding-left:.313rem}.px-5{padding-left:.313rem;padding-right:.313rem}.py-5{padding-top:.313rem;padding-bottom:.313rem}.m-5{margin:.313rem}.mt-5{margin-top:.313rem}.mr-5{margin-right:.313rem}.mb-5{margin-bottom:.313rem}.ml-5{margin-left:.313rem}.mx-5{margin-left:.313rem;margin-right:.313rem}.my-5{margin-top:.313rem;margin-bottom:.313rem}@media(min-width: 576px){.sm\:p-5{padding:.313rem}.sm\:pt-5{padding-top:.313rem}.sm\:pr-5{padding-right:.313rem}.sm\:pb-5{padding-bottom:.313rem}.sm\:pl-5{padding-left:.313rem}.sm\:px-5{padding-left:.313rem;padding-right:.313rem}.sm\:py-5{padding-top:.313rem;padding-bottom:.313rem}.sm\:m-5{margin:.313rem}.sm\:mt-5{margin-top:.313rem}.sm\:mr-5{margin-right:.313rem}.sm\:mb-5{margin-bottom:.313rem}.sm\:ml-5{margin-left:.313rem}.sm\:mx-5{margin-left:.313rem;margin-right:.313rem}.sm\:my-5{margin-top:.313rem;margin-bottom:.313rem}}@media(min-width: 992px){.md\:p-5{padding:.313rem}.md\:pt-5{padding-top:.313rem}.md\:pr-5{padding-right:.313rem}.md\:pb-5{padding-bottom:.313rem}.md\:pl-5{padding-left:.313rem}.md\:px-5{padding-left:.313rem;padding-right:.313rem}.md\:py-5{padding-top:.313rem;padding-bottom:.313rem}.md\:m-5{margin:.313rem}.md\:mt-5{margin-top:.313rem}.md\:mr-5{margin-right:.313rem}.md\:mb-5{margin-bottom:.313rem}.md\:ml-5{margin-left:.313rem}.md\:mx-5{margin-left:.313rem;margin-right:.313rem}.md\:my-5{margin-top:.313rem;margin-bottom:.313rem}}@media(min-width: 1330px){.lg\:p-5{padding:.313rem}.lg\:pt-5{padding-top:.313rem}.lg\:pr-5{padding-right:.313rem}.lg\:pb-5{padding-bottom:.313rem}.lg\:pl-5{padding-left:.313rem}.lg\:px-5{padding-left:.313rem;padding-right:.313rem}.lg\:py-5{padding-top:.313rem;padding-bottom:.313rem}.lg\:m-5{margin:.313rem}.lg\:mt-5{margin-top:.313rem}.lg\:mr-5{margin-right:.313rem}.lg\:mb-5{margin-bottom:.313rem}.lg\:ml-5{margin-left:.313rem}.lg\:mx-5{margin-left:.313rem;margin-right:.313rem}.lg\:my-5{margin-top:.313rem;margin-bottom:.313rem}}.p-8{padding:.5rem}.pt-8{padding-top:.5rem}.pr-8{padding-right:.5rem}.pb-8{padding-bottom:.5rem}.pl-8{padding-left:.5rem}.px-8{padding-left:.5rem;padding-right:.5rem}.py-8{padding-top:.5rem;padding-bottom:.5rem}.m-8{margin:.5rem}.mt-8{margin-top:.5rem}.mr-8{margin-right:.5rem}.mb-8{margin-bottom:.5rem}.ml-8{margin-left:.5rem}.mx-8{margin-left:.5rem;margin-right:.5rem}.my-8{margin-top:.5rem;margin-bottom:.5rem}@media(min-width: 576px){.sm\:p-8{padding:.5rem}.sm\:pt-8{padding-top:.5rem}.sm\:pr-8{padding-right:.5rem}.sm\:pb-8{padding-bottom:.5rem}.sm\:pl-8{padding-left:.5rem}.sm\:px-8{padding-left:.5rem;padding-right:.5rem}.sm\:py-8{padding-top:.5rem;padding-bottom:.5rem}.sm\:m-8{margin:.5rem}.sm\:mt-8{margin-top:.5rem}.sm\:mr-8{margin-right:.5rem}.sm\:mb-8{margin-bottom:.5rem}.sm\:ml-8{margin-left:.5rem}.sm\:mx-8{margin-left:.5rem;margin-right:.5rem}.sm\:my-8{margin-top:.5rem;margin-bottom:.5rem}}@media(min-width: 992px){.md\:p-8{padding:.5rem}.md\:pt-8{padding-top:.5rem}.md\:pr-8{padding-right:.5rem}.md\:pb-8{padding-bottom:.5rem}.md\:pl-8{padding-left:.5rem}.md\:px-8{padding-left:.5rem;padding-right:.5rem}.md\:py-8{padding-top:.5rem;padding-bottom:.5rem}.md\:m-8{margin:.5rem}.md\:mt-8{margin-top:.5rem}.md\:mr-8{margin-right:.5rem}.md\:mb-8{margin-bottom:.5rem}.md\:ml-8{margin-left:.5rem}.md\:mx-8{margin-left:.5rem;margin-right:.5rem}.md\:my-8{margin-top:.5rem;margin-bottom:.5rem}}@media(min-width: 1330px){.lg\:p-8{padding:.5rem}.lg\:pt-8{padding-top:.5rem}.lg\:pr-8{padding-right:.5rem}.lg\:pb-8{padding-bottom:.5rem}.lg\:pl-8{padding-left:.5rem}.lg\:px-8{padding-left:.5rem;padding-right:.5rem}.lg\:py-8{padding-top:.5rem;padding-bottom:.5rem}.lg\:m-8{margin:.5rem}.lg\:mt-8{margin-top:.5rem}.lg\:mr-8{margin-right:.5rem}.lg\:mb-8{margin-bottom:.5rem}.lg\:ml-8{margin-left:.5rem}.lg\:mx-8{margin-left:.5rem;margin-right:.5rem}.lg\:my-8{margin-top:.5rem;margin-bottom:.5rem}}.p-10{padding:.625rem}.pt-10{padding-top:.625rem}.pr-10{padding-right:.625rem}.pb-10{padding-bottom:.625rem}.pl-10{padding-left:.625rem}.px-10{padding-left:.625rem;padding-right:.625rem}.py-10{padding-top:.625rem;padding-bottom:.625rem}.m-10{margin:.625rem}.mt-10{margin-top:.625rem}.mr-10{margin-right:.625rem}.mb-10{margin-bottom:.625rem}.ml-10{margin-left:.625rem}.mx-10{margin-left:.625rem;margin-right:.625rem}.my-10{margin-top:.625rem;margin-bottom:.625rem}@media(min-width: 576px){.sm\:p-10{padding:.625rem}.sm\:pt-10{padding-top:.625rem}.sm\:pr-10{padding-right:.625rem}.sm\:pb-10{padding-bottom:.625rem}.sm\:pl-10{padding-left:.625rem}.sm\:px-10{padding-left:.625rem;padding-right:.625rem}.sm\:py-10{padding-top:.625rem;padding-bottom:.625rem}.sm\:m-10{margin:.625rem}.sm\:mt-10{margin-top:.625rem}.sm\:mr-10{margin-right:.625rem}.sm\:mb-10{margin-bottom:.625rem}.sm\:ml-10{margin-left:.625rem}.sm\:mx-10{margin-left:.625rem;margin-right:.625rem}.sm\:my-10{margin-top:.625rem;margin-bottom:.625rem}}@media(min-width: 992px){.md\:p-10{padding:.625rem}.md\:pt-10{padding-top:.625rem}.md\:pr-10{padding-right:.625rem}.md\:pb-10{padding-bottom:.625rem}.md\:pl-10{padding-left:.625rem}.md\:px-10{padding-left:.625rem;padding-right:.625rem}.md\:py-10{padding-top:.625rem;padding-bottom:.625rem}.md\:m-10{margin:.625rem}.md\:mt-10{margin-top:.625rem}.md\:mr-10{margin-right:.625rem}.md\:mb-10{margin-bottom:.625rem}.md\:ml-10{margin-left:.625rem}.md\:mx-10{margin-left:.625rem;margin-right:.625rem}.md\:my-10{margin-top:.625rem;margin-bottom:.625rem}}@media(min-width: 1330px){.lg\:p-10{padding:.625rem}.lg\:pt-10{padding-top:.625rem}.lg\:pr-10{padding-right:.625rem}.lg\:pb-10{padding-bottom:.625rem}.lg\:pl-10{padding-left:.625rem}.lg\:px-10{padding-left:.625rem;padding-right:.625rem}.lg\:py-10{padding-top:.625rem;padding-bottom:.625rem}.lg\:m-10{margin:.625rem}.lg\:mt-10{margin-top:.625rem}.lg\:mr-10{margin-right:.625rem}.lg\:mb-10{margin-bottom:.625rem}.lg\:ml-10{margin-left:.625rem}.lg\:mx-10{margin-left:.625rem;margin-right:.625rem}.lg\:my-10{margin-top:.625rem;margin-bottom:.625rem}}.p-16{padding:1rem}.pt-16{padding-top:1rem}.pr-16{padding-right:1rem}.pb-16{padding-bottom:1rem}.pl-16{padding-left:1rem}.px-16{padding-left:1rem;padding-right:1rem}.py-16{padding-top:1rem;padding-bottom:1rem}.m-16{margin:1rem}.mt-16{margin-top:1rem}.mr-16{margin-right:1rem}.mb-16{margin-bottom:1rem}.ml-16{margin-left:1rem}.mx-16{margin-left:1rem;margin-right:1rem}.my-16{margin-top:1rem;margin-bottom:1rem}@media(min-width: 576px){.sm\:p-16{padding:1rem}.sm\:pt-16{padding-top:1rem}.sm\:pr-16{padding-right:1rem}.sm\:pb-16{padding-bottom:1rem}.sm\:pl-16{padding-left:1rem}.sm\:px-16{padding-left:1rem;padding-right:1rem}.sm\:py-16{padding-top:1rem;padding-bottom:1rem}.sm\:m-16{margin:1rem}.sm\:mt-16{margin-top:1rem}.sm\:mr-16{margin-right:1rem}.sm\:mb-16{margin-bottom:1rem}.sm\:ml-16{margin-left:1rem}.sm\:mx-16{margin-left:1rem;margin-right:1rem}.sm\:my-16{margin-top:1rem;margin-bottom:1rem}}@media(min-width: 992px){.md\:p-16{padding:1rem}.md\:pt-16{padding-top:1rem}.md\:pr-16{padding-right:1rem}.md\:pb-16{padding-bottom:1rem}.md\:pl-16{padding-left:1rem}.md\:px-16{padding-left:1rem;padding-right:1rem}.md\:py-16{padding-top:1rem;padding-bottom:1rem}.md\:m-16{margin:1rem}.md\:mt-16{margin-top:1rem}.md\:mr-16{margin-right:1rem}.md\:mb-16{margin-bottom:1rem}.md\:ml-16{margin-left:1rem}.md\:mx-16{margin-left:1rem;margin-right:1rem}.md\:my-16{margin-top:1rem;margin-bottom:1rem}}@media(min-width: 1330px){.lg\:p-16{padding:1rem}.lg\:pt-16{padding-top:1rem}.lg\:pr-16{padding-right:1rem}.lg\:pb-16{padding-bottom:1rem}.lg\:pl-16{padding-left:1rem}.lg\:px-16{padding-left:1rem;padding-right:1rem}.lg\:py-16{padding-top:1rem;padding-bottom:1rem}.lg\:m-16{margin:1rem}.lg\:mt-16{margin-top:1rem}.lg\:mr-16{margin-right:1rem}.lg\:mb-16{margin-bottom:1rem}.lg\:ml-16{margin-left:1rem}.lg\:mx-16{margin-left:1rem;margin-right:1rem}.lg\:my-16{margin-top:1rem;margin-bottom:1rem}}.p-20{padding:1.25rem}.pt-20{padding-top:1.25rem}.pr-20{padding-right:1.25rem}.pb-20{padding-bottom:1.25rem}.pl-20{padding-left:1.25rem}.px-20{padding-left:1.25rem;padding-right:1.25rem}.py-20{padding-top:1.25rem;padding-bottom:1.25rem}.m-20{margin:1.25rem}.mt-20{margin-top:1.25rem}.mr-20{margin-right:1.25rem}.mb-20{margin-bottom:1.25rem}.ml-20{margin-left:1.25rem}.mx-20{margin-left:1.25rem;margin-right:1.25rem}.my-20{margin-top:1.25rem;margin-bottom:1.25rem}@media(min-width: 576px){.sm\:p-20{padding:1.25rem}.sm\:pt-20{padding-top:1.25rem}.sm\:pr-20{padding-right:1.25rem}.sm\:pb-20{padding-bottom:1.25rem}.sm\:pl-20{padding-left:1.25rem}.sm\:px-20{padding-left:1.25rem;padding-right:1.25rem}.sm\:py-20{padding-top:1.25rem;padding-bottom:1.25rem}.sm\:m-20{margin:1.25rem}.sm\:mt-20{margin-top:1.25rem}.sm\:mr-20{margin-right:1.25rem}.sm\:mb-20{margin-bottom:1.25rem}.sm\:ml-20{margin-left:1.25rem}.sm\:mx-20{margin-left:1.25rem;margin-right:1.25rem}.sm\:my-20{margin-top:1.25rem;margin-bottom:1.25rem}}@media(min-width: 992px){.md\:p-20{padding:1.25rem}.md\:pt-20{padding-top:1.25rem}.md\:pr-20{padding-right:1.25rem}.md\:pb-20{padding-bottom:1.25rem}.md\:pl-20{padding-left:1.25rem}.md\:px-20{padding-left:1.25rem;padding-right:1.25rem}.md\:py-20{padding-top:1.25rem;padding-bottom:1.25rem}.md\:m-20{margin:1.25rem}.md\:mt-20{margin-top:1.25rem}.md\:mr-20{margin-right:1.25rem}.md\:mb-20{margin-bottom:1.25rem}.md\:ml-20{margin-left:1.25rem}.md\:mx-20{margin-left:1.25rem;margin-right:1.25rem}.md\:my-20{margin-top:1.25rem;margin-bottom:1.25rem}}@media(min-width: 1330px){.lg\:p-20{padding:1.25rem}.lg\:pt-20{padding-top:1.25rem}.lg\:pr-20{padding-right:1.25rem}.lg\:pb-20{padding-bottom:1.25rem}.lg\:pl-20{padding-left:1.25rem}.lg\:px-20{padding-left:1.25rem;padding-right:1.25rem}.lg\:py-20{padding-top:1.25rem;padding-bottom:1.25rem}.lg\:m-20{margin:1.25rem}.lg\:mt-20{margin-top:1.25rem}.lg\:mr-20{margin-right:1.25rem}.lg\:mb-20{margin-bottom:1.25rem}.lg\:ml-20{margin-left:1.25rem}.lg\:mx-20{margin-left:1.25rem;margin-right:1.25rem}.lg\:my-20{margin-top:1.25rem;margin-bottom:1.25rem}}.p-24{padding:1.5rem}.pt-24{padding-top:1.5rem}.pr-24{padding-right:1.5rem}.pb-24{padding-bottom:1.5rem}.pl-24{padding-left:1.5rem}.px-24{padding-left:1.5rem;padding-right:1.5rem}.py-24{padding-top:1.5rem;padding-bottom:1.5rem}.m-24{margin:1.5rem}.mt-24{margin-top:1.5rem}.mr-24{margin-right:1.5rem}.mb-24{margin-bottom:1.5rem}.ml-24{margin-left:1.5rem}.mx-24{margin-left:1.5rem;margin-right:1.5rem}.my-24{margin-top:1.5rem;margin-bottom:1.5rem}@media(min-width: 576px){.sm\:p-24{padding:1.5rem}.sm\:pt-24{padding-top:1.5rem}.sm\:pr-24{padding-right:1.5rem}.sm\:pb-24{padding-bottom:1.5rem}.sm\:pl-24{padding-left:1.5rem}.sm\:px-24{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-24{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:m-24{margin:1.5rem}.sm\:mt-24{margin-top:1.5rem}.sm\:mr-24{margin-right:1.5rem}.sm\:mb-24{margin-bottom:1.5rem}.sm\:ml-24{margin-left:1.5rem}.sm\:mx-24{margin-left:1.5rem;margin-right:1.5rem}.sm\:my-24{margin-top:1.5rem;margin-bottom:1.5rem}}@media(min-width: 992px){.md\:p-24{padding:1.5rem}.md\:pt-24{padding-top:1.5rem}.md\:pr-24{padding-right:1.5rem}.md\:pb-24{padding-bottom:1.5rem}.md\:pl-24{padding-left:1.5rem}.md\:px-24{padding-left:1.5rem;padding-right:1.5rem}.md\:py-24{padding-top:1.5rem;padding-bottom:1.5rem}.md\:m-24{margin:1.5rem}.md\:mt-24{margin-top:1.5rem}.md\:mr-24{margin-right:1.5rem}.md\:mb-24{margin-bottom:1.5rem}.md\:ml-24{margin-left:1.5rem}.md\:mx-24{margin-left:1.5rem;margin-right:1.5rem}.md\:my-24{margin-top:1.5rem;margin-bottom:1.5rem}}@media(min-width: 1330px){.lg\:p-24{padding:1.5rem}.lg\:pt-24{padding-top:1.5rem}.lg\:pr-24{padding-right:1.5rem}.lg\:pb-24{padding-bottom:1.5rem}.lg\:pl-24{padding-left:1.5rem}.lg\:px-24{padding-left:1.5rem;padding-right:1.5rem}.lg\:py-24{padding-top:1.5rem;padding-bottom:1.5rem}.lg\:m-24{margin:1.5rem}.lg\:mt-24{margin-top:1.5rem}.lg\:mr-24{margin-right:1.5rem}.lg\:mb-24{margin-bottom:1.5rem}.lg\:ml-24{margin-left:1.5rem}.lg\:mx-24{margin-left:1.5rem;margin-right:1.5rem}.lg\:my-24{margin-top:1.5rem;margin-bottom:1.5rem}}.p-36{padding:2.25rem}.pt-36{padding-top:2.25rem}.pr-36{padding-right:2.25rem}.pb-36{padding-bottom:2.25rem}.pl-36{padding-left:2.25rem}.px-36{padding-left:2.25rem;padding-right:2.25rem}.py-36{padding-top:2.25rem;padding-bottom:2.25rem}.m-36{margin:2.25rem}.mt-36{margin-top:2.25rem}.mr-36{margin-right:2.25rem}.mb-36{margin-bottom:2.25rem}.ml-36{margin-left:2.25rem}.mx-36{margin-left:2.25rem;margin-right:2.25rem}.my-36{margin-top:2.25rem;margin-bottom:2.25rem}@media(min-width: 576px){.sm\:p-36{padding:2.25rem}.sm\:pt-36{padding-top:2.25rem}.sm\:pr-36{padding-right:2.25rem}.sm\:pb-36{padding-bottom:2.25rem}.sm\:pl-36{padding-left:2.25rem}.sm\:px-36{padding-left:2.25rem;padding-right:2.25rem}.sm\:py-36{padding-top:2.25rem;padding-bottom:2.25rem}.sm\:m-36{margin:2.25rem}.sm\:mt-36{margin-top:2.25rem}.sm\:mr-36{margin-right:2.25rem}.sm\:mb-36{margin-bottom:2.25rem}.sm\:ml-36{margin-left:2.25rem}.sm\:mx-36{margin-left:2.25rem;margin-right:2.25rem}.sm\:my-36{margin-top:2.25rem;margin-bottom:2.25rem}}@media(min-width: 992px){.md\:p-36{padding:2.25rem}.md\:pt-36{padding-top:2.25rem}.md\:pr-36{padding-right:2.25rem}.md\:pb-36{padding-bottom:2.25rem}.md\:pl-36{padding-left:2.25rem}.md\:px-36{padding-left:2.25rem;padding-right:2.25rem}.md\:py-36{padding-top:2.25rem;padding-bottom:2.25rem}.md\:m-36{margin:2.25rem}.md\:mt-36{margin-top:2.25rem}.md\:mr-36{margin-right:2.25rem}.md\:mb-36{margin-bottom:2.25rem}.md\:ml-36{margin-left:2.25rem}.md\:mx-36{margin-left:2.25rem;margin-right:2.25rem}.md\:my-36{margin-top:2.25rem;margin-bottom:2.25rem}}@media(min-width: 1330px){.lg\:p-36{padding:2.25rem}.lg\:pt-36{padding-top:2.25rem}.lg\:pr-36{padding-right:2.25rem}.lg\:pb-36{padding-bottom:2.25rem}.lg\:pl-36{padding-left:2.25rem}.lg\:px-36{padding-left:2.25rem;padding-right:2.25rem}.lg\:py-36{padding-top:2.25rem;padding-bottom:2.25rem}.lg\:m-36{margin:2.25rem}.lg\:mt-36{margin-top:2.25rem}.lg\:mr-36{margin-right:2.25rem}.lg\:mb-36{margin-bottom:2.25rem}.lg\:ml-36{margin-left:2.25rem}.lg\:mx-36{margin-left:2.25rem;margin-right:2.25rem}.lg\:my-36{margin-top:2.25rem;margin-bottom:2.25rem}}.p-auto{padding:auto}.pt-auto{padding-top:auto}.pr-auto{padding-right:auto}.pb-auto{padding-bottom:auto}.pl-auto{padding-left:auto}.px-auto{padding-left:auto;padding-right:auto}.py-auto{padding-top:auto;padding-bottom:auto}.m-auto{margin:auto}.mt-auto{margin-top:auto}.mr-auto{margin-right:auto}.mb-auto{margin-bottom:auto}.ml-auto{margin-left:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-auto{margin-top:auto;margin-bottom:auto}@media(min-width: 576px){.sm\:p-auto{padding:auto}.sm\:pt-auto{padding-top:auto}.sm\:pr-auto{padding-right:auto}.sm\:pb-auto{padding-bottom:auto}.sm\:pl-auto{padding-left:auto}.sm\:px-auto{padding-left:auto;padding-right:auto}.sm\:py-auto{padding-top:auto;padding-bottom:auto}.sm\:m-auto{margin:auto}.sm\:mt-auto{margin-top:auto}.sm\:mr-auto{margin-right:auto}.sm\:mb-auto{margin-bottom:auto}.sm\:ml-auto{margin-left:auto}.sm\:mx-auto{margin-left:auto;margin-right:auto}.sm\:my-auto{margin-top:auto;margin-bottom:auto}}@media(min-width: 992px){.md\:p-auto{padding:auto}.md\:pt-auto{padding-top:auto}.md\:pr-auto{padding-right:auto}.md\:pb-auto{padding-bottom:auto}.md\:pl-auto{padding-left:auto}.md\:px-auto{padding-left:auto;padding-right:auto}.md\:py-auto{padding-top:auto;padding-bottom:auto}.md\:m-auto{margin:auto}.md\:mt-auto{margin-top:auto}.md\:mr-auto{margin-right:auto}.md\:mb-auto{margin-bottom:auto}.md\:ml-auto{margin-left:auto}.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:my-auto{margin-top:auto;margin-bottom:auto}}@media(min-width: 1330px){.lg\:p-auto{padding:auto}.lg\:pt-auto{padding-top:auto}.lg\:pr-auto{padding-right:auto}.lg\:pb-auto{padding-bottom:auto}.lg\:pl-auto{padding-left:auto}.lg\:px-auto{padding-left:auto;padding-right:auto}.lg\:py-auto{padding-top:auto;padding-bottom:auto}.lg\:m-auto{margin:auto}.lg\:mt-auto{margin-top:auto}.lg\:mr-auto{margin-right:auto}.lg\:mb-auto{margin-bottom:auto}.lg\:ml-auto{margin-left:auto}.lg\:mx-auto{margin-left:auto;margin-right:auto}.lg\:my-auto{margin-top:auto;margin-bottom:auto}}.grid{display:grid}@media(min-width: 576px){.sm\:grid{display:grid}}@media(min-width: 992px){.md\:grid{display:grid}}@media(min-width: 1330px){.lg\:grid{display:grid}}.grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.grid-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr))}.grid-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr))}.grid-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr))}@media(min-width: 576px){.sm\:grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.sm\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr))}}@media(min-width: 992px){.md\:grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr))}}@media(min-width: 1330px){.lg\:grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr))}}.gap-0{gap:0}.gap-x-0{column-gap:0}.gap-y-0{row-gap:0}.gap-5{gap:.313rem}.gap-x-5{column-gap:.313rem}.gap-y-5{row-gap:.313rem}.gap-10{gap:.625rem}.gap-x-10{column-gap:.625rem}.gap-y-10{row-gap:.625rem}.gap-16{gap:1rem}.gap-x-16{column-gap:1rem}.gap-y-16{row-gap:1rem}.gap-20{gap:1.25rem}.gap-x-20{column-gap:1.25rem}.gap-y-20{row-gap:1.25rem}.gap-36{gap:2.25rem}.gap-x-36{column-gap:2.25rem}.gap-y-36{row-gap:2.25rem}@media(min-width: 576px){.sm\:gap-0{gap:0}.sm\:gap-x-0{column-gap:0}.sm\:gap-y-0{row-gap:0}.sm\:gap-5{gap:.313rem}.sm\:gap-x-5{column-gap:.313rem}.sm\:gap-y-5{row-gap:.313rem}.sm\:gap-10{gap:.625rem}.sm\:gap-x-10{column-gap:.625rem}.sm\:gap-y-10{row-gap:.625rem}.sm\:gap-16{gap:1rem}.sm\:gap-x-16{column-gap:1rem}.sm\:gap-y-16{row-gap:1rem}.sm\:gap-20{gap:1.25rem}.sm\:gap-x-20{column-gap:1.25rem}.sm\:gap-y-20{row-gap:1.25rem}.sm\:gap-36{gap:2.25rem}.sm\:gap-x-36{column-gap:2.25rem}.sm\:gap-y-36{row-gap:2.25rem}}@media(min-width: 992px){.md\:gap-0{gap:0}.md\:gap-x-0{column-gap:0}.md\:gap-y-0{row-gap:0}.md\:gap-5{gap:.313rem}.md\:gap-x-5{column-gap:.313rem}.md\:gap-y-5{row-gap:.313rem}.md\:gap-10{gap:.625rem}.md\:gap-x-10{column-gap:.625rem}.md\:gap-y-10{row-gap:.625rem}.md\:gap-16{gap:1rem}.md\:gap-x-16{column-gap:1rem}.md\:gap-y-16{row-gap:1rem}.md\:gap-20{gap:1.25rem}.md\:gap-x-20{column-gap:1.25rem}.md\:gap-y-20{row-gap:1.25rem}.md\:gap-36{gap:2.25rem}.md\:gap-x-36{column-gap:2.25rem}.md\:gap-y-36{row-gap:2.25rem}}@media(min-width: 1330px){.lg\:gap-0{gap:0}.lg\:gap-x-0{column-gap:0}.lg\:gap-y-0{row-gap:0}.lg\:gap-5{gap:.313rem}.lg\:gap-x-5{column-gap:.313rem}.lg\:gap-y-5{row-gap:.313rem}.lg\:gap-10{gap:.625rem}.lg\:gap-x-10{column-gap:.625rem}.lg\:gap-y-10{row-gap:.625rem}.lg\:gap-16{gap:1rem}.lg\:gap-x-16{column-gap:1rem}.lg\:gap-y-16{row-gap:1rem}.lg\:gap-20{gap:1.25rem}.lg\:gap-x-20{column-gap:1.25rem}.lg\:gap-y-20{row-gap:1.25rem}.lg\:gap-36{gap:2.25rem}.lg\:gap-x-36{column-gap:2.25rem}.lg\:gap-y-36{row-gap:2.25rem}}.col-start-1{grid-column-start:1}.col-end-1{grid-column-end:1}.col-span-1{grid-column:span 1/span 1}.col-span-full{grid-column:1/-1}.row-start-1{grid-row-start:1}.row-end-1{grid-row-end:1}.row-span-1{grid-row:span 1/span 1}.col-start-2{grid-column-start:2}.col-end-2{grid-column-end:2}.col-span-2{grid-column:span 2/span 2}.col-span-full{grid-column:1/-1}.row-start-2{grid-row-start:2}.row-end-2{grid-row-end:2}.row-span-2{grid-row:span 2/span 2}.col-start-3{grid-column-start:3}.col-end-3{grid-column-end:3}.col-span-3{grid-column:span 3/span 3}.col-span-full{grid-column:1/-1}.row-start-3{grid-row-start:3}.row-end-3{grid-row-end:3}.row-span-3{grid-row:span 3/span 3}.col-start-4{grid-column-start:4}.col-end-4{grid-column-end:4}.col-span-4{grid-column:span 4/span 4}.col-span-full{grid-column:1/-1}.row-start-4{grid-row-start:4}.row-end-4{grid-row-end:4}.row-span-4{grid-row:span 4/span 4}.col-start-5{grid-column-start:5}.col-end-5{grid-column-end:5}.col-span-5{grid-column:span 5/span 5}.col-span-full{grid-column:1/-1}.row-start-5{grid-row-start:5}.row-end-5{grid-row-end:5}.row-span-5{grid-row:span 5/span 5}.col-start-6{grid-column-start:6}.col-end-6{grid-column-end:6}.col-span-6{grid-column:span 6/span 6}.col-span-full{grid-column:1/-1}.row-start-6{grid-row-start:6}.row-end-6{grid-row-end:6}.row-span-6{grid-row:span 6/span 6}@media(min-width: 576px){.sm\:col-start-1{grid-column-start:1}.sm\:col-end-1{grid-column-end:1}.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-full{grid-column:1/-1}.sm\:row-start-1{grid-row-start:1}.sm\:row-end-1{grid-row-end:1}.sm\:row-span-1{grid-row:span 1/span 1}.sm\:col-start-2{grid-column-start:2}.sm\:col-end-2{grid-column-end:2}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-full{grid-column:1/-1}.sm\:row-start-2{grid-row-start:2}.sm\:row-end-2{grid-row-end:2}.sm\:row-span-2{grid-row:span 2/span 2}.sm\:col-start-3{grid-column-start:3}.sm\:col-end-3{grid-column-end:3}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:col-span-full{grid-column:1/-1}.sm\:row-start-3{grid-row-start:3}.sm\:row-end-3{grid-row-end:3}.sm\:row-span-3{grid-row:span 3/span 3}.sm\:col-start-4{grid-column-start:4}.sm\:col-end-4{grid-column-end:4}.sm\:col-span-4{grid-column:span 4/span 4}.sm\:col-span-full{grid-column:1/-1}.sm\:row-start-4{grid-row-start:4}.sm\:row-end-4{grid-row-end:4}.sm\:row-span-4{grid-row:span 4/span 4}.sm\:col-start-5{grid-column-start:5}.sm\:col-end-5{grid-column-end:5}.sm\:col-span-5{grid-column:span 5/span 5}.sm\:col-span-full{grid-column:1/-1}.sm\:row-start-5{grid-row-start:5}.sm\:row-end-5{grid-row-end:5}.sm\:row-span-5{grid-row:span 5/span 5}.sm\:col-start-6{grid-column-start:6}.sm\:col-end-6{grid-column-end:6}.sm\:col-span-6{grid-column:span 6/span 6}.sm\:col-span-full{grid-column:1/-1}.sm\:row-start-6{grid-row-start:6}.sm\:row-end-6{grid-row-end:6}.sm\:row-span-6{grid-row:span 6/span 6}}@media(min-width: 992px){.md\:col-start-1{grid-column-start:1}.md\:col-end-1{grid-column-end:1}.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-full{grid-column:1/-1}.md\:row-start-1{grid-row-start:1}.md\:row-end-1{grid-row-end:1}.md\:row-span-1{grid-row:span 1/span 1}.md\:col-start-2{grid-column-start:2}.md\:col-end-2{grid-column-end:2}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-full{grid-column:1/-1}.md\:row-start-2{grid-row-start:2}.md\:row-end-2{grid-row-end:2}.md\:row-span-2{grid-row:span 2/span 2}.md\:col-start-3{grid-column-start:3}.md\:col-end-3{grid-column-end:3}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-full{grid-column:1/-1}.md\:row-start-3{grid-row-start:3}.md\:row-end-3{grid-row-end:3}.md\:row-span-3{grid-row:span 3/span 3}.md\:col-start-4{grid-column-start:4}.md\:col-end-4{grid-column-end:4}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-full{grid-column:1/-1}.md\:row-start-4{grid-row-start:4}.md\:row-end-4{grid-row-end:4}.md\:row-span-4{grid-row:span 4/span 4}.md\:col-start-5{grid-column-start:5}.md\:col-end-5{grid-column-end:5}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-full{grid-column:1/-1}.md\:row-start-5{grid-row-start:5}.md\:row-end-5{grid-row-end:5}.md\:row-span-5{grid-row:span 5/span 5}.md\:col-start-6{grid-column-start:6}.md\:col-end-6{grid-column-end:6}.md\:col-span-6{grid-column:span 6/span 6}.md\:col-span-full{grid-column:1/-1}.md\:row-start-6{grid-row-start:6}.md\:row-end-6{grid-row-end:6}.md\:row-span-6{grid-row:span 6/span 6}}@media(min-width: 1330px){.lg\:col-start-1{grid-column-start:1}.lg\:col-end-1{grid-column-end:1}.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-full{grid-column:1/-1}.lg\:row-start-1{grid-row-start:1}.lg\:row-end-1{grid-row-end:1}.lg\:row-span-1{grid-row:span 1/span 1}.lg\:col-start-2{grid-column-start:2}.lg\:col-end-2{grid-column-end:2}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-full{grid-column:1/-1}.lg\:row-start-2{grid-row-start:2}.lg\:row-end-2{grid-row-end:2}.lg\:row-span-2{grid-row:span 2/span 2}.lg\:col-start-3{grid-column-start:3}.lg\:col-end-3{grid-column-end:3}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-full{grid-column:1/-1}.lg\:row-start-3{grid-row-start:3}.lg\:row-end-3{grid-row-end:3}.lg\:row-span-3{grid-row:span 3/span 3}.lg\:col-start-4{grid-column-start:4}.lg\:col-end-4{grid-column-end:4}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-full{grid-column:1/-1}.lg\:row-start-4{grid-row-start:4}.lg\:row-end-4{grid-row-end:4}.lg\:row-span-4{grid-row:span 4/span 4}.lg\:col-start-5{grid-column-start:5}.lg\:col-end-5{grid-column-end:5}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-full{grid-column:1/-1}.lg\:row-start-5{grid-row-start:5}.lg\:row-end-5{grid-row-end:5}.lg\:row-span-5{grid-row:span 5/span 5}.lg\:col-start-6{grid-column-start:6}.lg\:col-end-6{grid-column-end:6}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-full{grid-column:1/-1}.lg\:row-start-6{grid-row-start:6}.lg\:row-end-6{grid-row-end:6}.lg\:row-span-6{grid-row:span 6/span 6}}/*! Generated by Font Squirrel (https://www.fontsquirrel.com) on February 23, 2022 */@font-face{font-family:"lucioleregular";src:url(data:application/font-woff2;charset=utf-8;base64,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) format("woff2");font-weight:normal;font-style:normal}@font-face{font-family:"fira_codelight";src:url(data:application/font-woff2;charset=utf-8;base64,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) format("woff2");font-weight:normal;font-style:normal}:root{--default-color: #ffffff;--bg-color: #f2f2f2;--bg-alternate-color: #ebebeb;--font-color: #4C566A;--footer-color: #F8F9FB;--link-color: #3b4252;--input-font-color: #4C566A;--input-color: #ffffff;--input-active-color: #e5e9f0;--navbar-color: #f2f2f2;--box-bg-color: #F8F9FB;--box-shadow-color: rgba(216, 222, 233, 0.35);--border-color: #d8dee9;--button-link-text-color: #2C364A;--loader-img: url("/img/loading-light.gif");--nord0: #2e3440;--nord1: #3b4252;--nord2: #434c5e;--nord3: #4C566A;--nord4: #d8dee9;--nord5: #e5e9f0;--nord6: #eceff4;--nord7: #8fbcbb;--nord8: #88c0d0;--nord9: #81a1c1;--nord10: #5e81ac;--nord11: #d08770;--nord12: #bf616a;--nord13: #ebcb8b;--nord14: #a3be8c;--nord15: #b48ead}[data-theme=dark]{--default-color: #4C566A;--bg-color: #323946;--bg-alternate-color: #5d6982;--font-color: #eceff4;--footer-color: #3b4252;--link-color: #d8dee9;--input-font-color: #eceff4;--input-color: #2e3440;--input-active-color: #4C566A;--navbar-color: #2e3440;--box-bg-color: #3b4252;--box-shadow-color: rgba(216, 222, 233, 0.2);--border-color: #3b4252;--button-link-text-color: #ffffff;--loader-img: url("/img/loading-dark.gif")}html{min-height:100vh;scroll-behavior:smooth}html body{background-color:var(--bg-color);display:flex;flex-direction:column;padding-top:3.5rem;font-family:"lucioleregular";min-height:100vh;color:var(--font-color);transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}html body footer.footer{margin-top:auto;padding:2rem .7rem 1.5rem;background-color:var(--footer-color);transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}html body a{color:var(--link-color);cursor:pointer;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}html body a:hover{color:var(--font-color)}html body h1,html body h2,html body h3,html body h4,html body h5,html body h6{color:var(--font-color)}html body h1{margin-top:2rem}html body pre{font-family:"fira_codelight";margin:.75rem 0;padding:.75rem;border-left:2px solid #5e81ac;background:var(--box-bg-color);color:var(--font-color)}html body .image-preview{display:flex;flex-direction:row;justify-content:center;align-items:center}@media(max-width: 575px){.layout-maxed{padding:0 .7rem}}.is-hidden{display:none}.ml-4{margin-left:1rem}.sm-hidden{display:none}@media(min-width: 576px){.sm-hidden{display:initial}}.is-danger{color:#bf616a}.navbar{min-height:3.25rem;background-color:var(--navbar-color);box-shadow:rgba(216,222,233,.15) 0px 5px 10px 0px;color:rgba(0,0,0,.7);position:fixed;z-index:30;top:0;right:0;left:0;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}@media(min-width: 992px){.navbar{min-height:3.25rem;align-items:stretch;display:flex}}.navbar .navbar-brand{align-items:stretch;display:flex;min-height:3.25rem}.navbar .navbar-brand .navbar-item{align-items:center;display:flex}.navbar .navbar-brand .navbar-item img{max-height:32px}.navbar .navbar-brand .navbar-item span{word-break:break-word;color:var(--font-color);font-size:2rem;line-height:1.125;margin-left:.5rem !important;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}.navbar .navbar-burger{padding:0;margin:0;font-size:1em;appearance:none;background:none;border:none;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto;color:var(--font-color)}@media(min-width: 992px){.navbar .navbar-burger{display:none}}.navbar .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color,opacity,transform;transition-timing-function:ease-out;width:16px}.navbar .navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar .navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar .navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar .navbar-burger.is-active span:nth-child(2){opacity:0}.navbar .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar .navbar-item{line-height:1.5;padding:.5rem .75rem;position:relative;flex-grow:0;flex-shrink:0;color:var(--font-color);display:block;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}.navbar .navbar-item.has-dropdown{padding:0}@media(min-width: 992px){.navbar .navbar-item.has-dropdown{display:flex;align-items:stretch;color:rgba(0,0,0,.7)}.navbar .navbar-item.has-dropdown .navbar-dropdown{background-color:var(--default-color);border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid var(--default-hl-color);box-shadow:0 8px 8px rgba(10,10,10,.1);display:none;font-size:.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar .navbar-item.has-dropdown:hover{background-color:var(--default-color)}.navbar .navbar-item.has-dropdown:hover .navbar-link{background-color:var(--default-hl-color);color:rgba(0,0,0,.7)}.navbar .navbar-item.has-dropdown:hover .navbar-dropdown{display:block}}@media(min-width: 992px){.navbar .navbar-item{align-items:center;display:flex}}.navbar .navbar-link{color:var(--font-color);display:block;line-height:1.5;padding:.5rem .75rem;position:relative;cursor:pointer;padding-right:2.5em;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}@media(min-width: 992px){.navbar .navbar-link{display:flex;align-items:center}}.navbar .navbar-link .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.navbar .navbar-link::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:.625em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:.625em;border-color:var(--secondary-color);margin-top:-0.375em;right:1.125em}@media(min-width: 992px){.navbar .navbar-link::after{border-color:rgba(0,0,0,.7)}}.navbar .navbar-menu{display:none;background-color:var(--default-color);box-shadow:0 8px 16px rgba(10,10,10,.1);padding:.5rem 0;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}@media(max-width: 991px){.navbar .navbar-menu{max-height:calc(100vh - 3.25rem);overflow:auto}}@media(min-width: 992px){.navbar .navbar-menu{flex-grow:1;flex-shrink:0;align-items:stretch;display:flex;background-color:initial;box-shadow:none;padding:0}}.navbar .navbar-menu.is-active{display:block}@media(min-width: 992px){.navbar .navbar-menu .navbar-start{justify-content:flex-start;margin-right:auto;align-items:stretch;display:flex}.navbar .navbar-menu .navbar-start .navbar-item{color:rgba(0,0,0,.7);align-items:center;display:flex}.navbar .navbar-menu .navbar-end{justify-content:flex-end;margin-left:auto;align-items:stretch;display:flex}}.navbar .navbar-dropdown{font-size:.875rem;padding-bottom:.5rem;padding-top:.5rem}.navbar .navbar-dropdown hr{background-color:var(--font-color);border:none;height:2px;margin:.5rem 0}.navbar .navbar-dropdown .navbar-item{cursor:pointer;padding-left:1.5rem;padding-right:1.5rem}@media(min-width: 992px){.navbar .navbar-dropdown{background-color:var(--default-color);border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid var(--default-hl-color);box-shadow:0 8px 8px rgba(10,10,10,.1);display:none;font-size:.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar .navbar-dropdown .navbar-item{white-space:nowrap;padding:.375rem 1rem;padding-right:3rem}}.navbar img{height:auto;max-width:100%}.navbar a{text-decoration:none}.navbar .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.navbar .buttons .button{margin-right:.75rem}.navbar .buttons:last-child{margin-bottom:-0.5rem}[data-theme=dark] .navbar{box-shadow:none}.field{padding-top:.6rem;display:flex;flex-direction:column}.field.inline{flex-direction:row}.field.has-addons{display:flex;justify-content:flex-start;flex-direction:row}.field.has-addons .button{margin-bottom:0;border-top-left-radius:0;border-bottom-left-radius:0}.field.has-addons input{border-top-right-radius:0;border-bottom-right-radius:0}.field input,.field textarea,.field select{border-radius:4px;max-width:100%;width:100%;background-color:var(--input-color);border:1px solid var(--input-active-color) !important;color:var(--input-font-color);transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{outline:unset}.field input[type=radio]{border-radius:50%;appearance:none;width:1.2rem;height:1.2rem;vertical-align:text-bottom;outline:0;box-shadow:inset 0 0 0 1px var(--input-active-color);background-color:#fff;transition:background-size .15s;cursor:pointer}.field input[type=radio]:checked{box-shadow:inset 0 0 0 4px var(--input-active-color)}.field input[type=radio]+label,.field label+input[type=radio]{margin-left:12px}.field select{appearance:none;background-image:url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20standalone%3D%22no%22%3F%3E%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20style%3D%22isolation%3Aisolate%22%20viewBox%3D%220%200%2020%2020%22%20width%3D%2220%22%20height%3D%2220%22%3E%3Cpath%20d%3D%22%20M%209.96%2011.966%20L%203.523%205.589%20C%202.464%204.627%200.495%206.842%201.505%207.771%20L%201.505%207.771%20L%208.494%2014.763%20C%209.138%2015.35%2010.655%2015.369%2011.29%2014.763%20L%2011.29%2014.763%20L%2018.49%207.771%20C%2019.557%206.752%2017.364%204.68%2016.262%205.725%20L%2016.262%205.725%20L%209.96%2011.966%20Z%20%22%20fill%3D%22inherit%22/%3E%3C/svg%3E");background-position:right .8rem center;background-repeat:no-repeat;background-size:1.2rem;padding-right:2.4rem}.theme-switch-wrapper{display:flex;align-items:center}.theme-switch-wrapper em{margin-left:10px;font-size:1rem}.theme-switch{display:inline-block;height:34px;position:relative;width:60px}.theme-switch input{display:none}.slider{background-color:#ccc;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.4s;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}.slider:before{background-color:#fff;bottom:4px;content:"";height:26px;left:4px;position:absolute;transition:.4s;width:26px;padding:0;font-family:"icon";font-style:normal;font-weight:normal;display:inline-block;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none}input:checked+.slider{background-color:#88c0d0;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}input:checked+.slider:before{transform:translateX(26px);content:"";background-color:var(--input-active-color);transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.button{cursor:pointer;justify-content:center;padding-bottom:calc(.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(.5em - 1px);text-align:center;white-space:nowrap;border:1px solid rgba(0,0,0,0);margin-bottom:.5rem;background-color:#81a1c1;border-radius:.375rem;color:#2c364a;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}.button:hover{background-color:#5f88b0}.button.is-danger{background-color:#d08770;color:#01103c}.button.is-danger:hover{background-color:#c3674a}.button.is-primary{background-color:#88c0d0}.button.is-primary:hover{background-color:#63adc2}.button.is-warning{background-color:#ebcb8b}.button.is-warning:hover{background-color:#e4b860}.button.is-success{background-color:#a3be8c}.button.is-success:hover{background-color:#89ac6b}.button.is-link{background-color:rgba(0,0,0,0);border-color:#81a1c1;color:var(--button-link-text-color)}.button.is-link:hover{border-color:#5f88b0}.modal{bottom:0;left:0;right:0;top:0;align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-visible{display:flex}.modal .modal-background{background-color:rgba(10,10,10,.86);bottom:0;left:0;position:absolute;right:0;top:0}.modal button.close{user-select:none;background-color:rgba(10,10,10,.2);border:none;border-radius:9999px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;width:20px}.modal button.close::before,.modal button.close::after{background-color:var(--default-color);content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal button.close::before{height:2px;width:50%}.modal button.close::after{height:50%;width:2px}.modal .modal-card{position:relative;width:300px;margin:0 auto;display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden}@media(min-width: 576px){.modal .modal-card{width:560px}}@media(min-width: 992px){.modal .modal-card{width:980px}}@media(min-width: 1330px){.modal .modal-card{width:1200}}.modal .modal-card header,.modal .modal-card footer{align-items:center;background-color:var(--navbar-color);display:flex;flex-shrink:0;justify-content:flex-start;padding:.75rem;position:relative;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}.modal .modal-card header{border-bottom:1px solid var(--border-color);border-top-left-radius:6px;border-top-right-radius:6px;justify-content:space-between;font-size:1.5rem;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}.modal .modal-card section{background-color:var(--default-color);flex-grow:1;flex-shrink:1;overflow:auto;padding:20px;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}.modal .modal-card footer{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid var(--border-color)}.modal .modal-card footer .button:not(:last-child){margin-right:.5em}#toastr{visibility:hidden;min-width:250px;max-width:360px;position:fixed;z-index:66;right:30px;top:30px;font-size:17px;padding:1.25rem 2.5rem 1.25rem 1.5rem;border-radius:6px}#toastr.error{background-color:#d08770;color:#01103c}#toastr.success{background-color:#a3be8c;color:#2c364a}#toastr.show{visibility:visible;animation:toastrFadein .5s,toastrFadeout .5s 2.5s}#toastr button{width:20px;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:0;border:none;border-radius:9999px;cursor:pointer;pointer-events:auto;display:inline-block;user-select:none;right:.5rem;position:absolute;top:.5rem;background-color:rgba(10,10,10,.2)}#toastr button:hover{background-color:rgba(10,10,10,.3)}#toastr button::before,#toastr button::after{background-color:var(--default-color);content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}#toastr button::before{height:2px;width:50%}#toastr button::after{height:50%;width:2px}@keyframes toastrFadein{from{top:0;opacity:0}to{top:30px;opacity:1}}@keyframes toastrFadeout{from{top:30px;opacity:1}to{top:0;opacity:0}}.pagination{font-size:1rem;align-items:center;display:flex;text-align:center;justify-content:space-between;margin:.75rem 0}.pagination .pagination-list{align-items:center;display:flex;text-align:center;flex-wrap:wrap;flex-grow:1;flex-shrink:1;justify-content:flex-end}@media(max-width: 575px){.pagination .pagination-list{justify-content:center}}.pagination .pagination-list .pagination-link{align-items:center;border:1px solid rgba(0,0,0,0);border-radius:.375em;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding:calc(.5em - 1px) calc(.75em - 1px);position:relative;vertical-align:top;text-decoration:none;user-select:none;text-align:center;font-size:1em;justify-content:center;margin:.25rem;border-color:#4c566a;color:var(--font-color);min-width:2.5em;white-space:nowrap;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}.pagination .pagination-list .pagination-link:hover{border-color:#7397ba;color:#7397ba}.pagination .pagination-list .pagination-link.is-disabled{background-color:var(--default-hl-color);border-color:var(--default-hl-color);box-shadow:none;color:var(--disabled-color);opacity:.5}.pagination .pagination-list .pagination-link.is-current{background-color:#88c0d0;border-color:#88c0d0;color:#2c364a}.box{background-color:var(--box-bg-color);border-radius:6px;box-shadow:var(--box-shadow-color) 0px 3px 6px 0px;color:var(--font-color);display:block;padding:1.25rem;width:calc(100% - 2rem);margin:auto;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}@media(min-width: 576px){.box{width:65%}}@media(min-width: 992px){.box{width:35%}}.box h1{margin-top:0}.box button{margin-top:2rem}.list{margin:2rem 0}.list .item{padding:.5rem .75rem;border:2px solid var(--border-color);background-color:var(--bg-alternate-color);display:flex;flex-direction:row;justify-content:center;align-items:center;transition:background-color 200ms ease-in 0s,border-color 200ms ease-in 0s,box-shadow 200ms ease-in 0s,color 200ms ease-in 0s}.list .item:nth-child(2n){background-color:var(--default-color)}.list .item.link{cursor:pointer}.list .item img{border:2px solid var(--font-color)}.list.hover .item:hover{background-color:var(--border-color)}main.error{min-height:calc(100vh - 3.25rem - 100px);padding-top:4rem}.message{margin:8px 0;padding:0;font-size:.8rem}.message.error{color:#a9444e}/*# sourceMappingURL=main.css.map */
diff --git a/public/css/main.css.map b/public/css/main.css.map
new file mode 100644
index 0000000..ed3b1bc
--- /dev/null
+++ b/public/css/main.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../node_modules/knacss/sass/base/_reset-base.scss","../../node_modules/knacss/sass/abstracts/_variables-sass.scss","../../node_modules/knacss/sass/base/_reset-accessibility.scss","../../node_modules/knacss/sass/base/_reset-forms.scss","../../node_modules/knacss/sass/base/_reset-print.scss","../../node_modules/knacss/sass/base/_layout.scss","../../node_modules/knacss/sass/utils/_utils-global.scss","../../node_modules/knacss/sass/utils/_utils-font-sizes.scss","../../node_modules/knacss/sass/utils/_utils-spacers.scss","../../node_modules/knacss/sass/utils/grillade.scss","../../sass/fonts.scss","../../sass/colors.scss","../../sass/global.scss","../../sass/mixin.scss","../../node_modules/knacss/sass/abstracts/_mixins-sass.scss","../../sass/navbar.scss","../../sass/forms.scss","../../sass/button.scss","../../sass/modal.scss","../../sass/toast.scss","../../sass/pagination.scss","../../sass/box.scss","../../sass/list.scss","../../sass/error.scss","../../sass/messages.scss"],"names":[],"mappings":"CASA,qBAGE,sBACA,YACA,aASF,KACE,UCyEe,KDxEf,0CACA,8BACA,yBAGF,KACE,SACA,YC2CiB,sHD1CjB,UCiEe,KDhEf,YC6CiB,ID5CjB,iBC6EM,KD5EN,MCkFa,QD3Ef,wEAYE,MC+Da,QDxDf,EACE,MCsDa,QDrDb,gBCqFgB,UDlFlB,yBAGE,MCgDa,QD/Cb,gBC+EsB,UDvExB,YACE,mBACA,0BACA,iCAOF,wBAIE,aACA,cC5Cc,KD+ChB,wFAiBE,aACA,cCnEa,MD0Ef,kEAUE,aACA,gBAOF,MAEE,aC5Fc,KD+FhB,cAEE,gBACA,UAOF,kCAME,sBAGF,wEAYE,eAGF,iCAKE,YAGF,IACE,kBAOF,OACE,kBAOF,gBACE,kBAOF,eACE,gBAOF,MACE,yBAOF,GACE,uBACA,SACA,iBACA,SACA,qBACA,cACA,WACA,cAOF,MACE,WACA,eACA,mBACA,yBACA,mBACA,cCtMc,KC9ChB,0BAEE,6BACA,oBACA,sBACA,qBACA,qBACA,2BACA,iCAOF,uCACE,EACE,0BACA,4BAQJ,iBACE,gBAOF,gBACE,eAQF,gCAEE,mBAQF,4BACE,gBAGF,wCACE,sBACA,kBCvDF,6DASE,8BACA,0BAQF,6BAIE,SACA,+BACA,cACA,oBACA,kBACA,oBACA,uBACA,sBAOF,oEAIE,SAQF,kBAIE,gCACA,cAGF,IACE,WACA,qBACA,mBACA,cACA,6BAOF,aAEE,iBAOF,cAEE,oBAOF,gDAIE,0BAGF,cAEE,YAGF,SACE,SACA,QF1Dc,KE6DhB,OACE,cACA,eACA,kBACA,SACA,cACA,mBAGF,MACE,qBACA,eAGF,SACE,cACA,mBACA,gBACA,qBAGF,SACE,qBACA,WACA,wBAGF,OACE,qBAGF,QACE,kBAGF,SACE,aAYF,cACE,6BACA,oBAOF,wDAEE,YAOF,4BACE,cACA,YAOF,4BACE,wBAQF,6BACE,0BACA,aAOF,mBACE,kBACA,UAOF,gBACE,8BAOF,iBACE,gBC1NF,aACE,EACE,oCACA,2BACA,4BAGF,KACE,WACA,YACA,kBACA,eAGF,yGAkBE,WACA,YAGF,OACE,cAGF,UACE,aAIF,qBAGE,UACA,SAIF,iBAGE,wBAWF,4CAOE,uBAGF,EACE,WASF,kDAEE,YCxFJ,cACE,aAIE,yBALJ,cAMM,sBACE,6DAFJ,yBALJ,cAMM,sBACE,6DAFJ,0BALJ,cAMM,sBACE,8DAQR,gBACE,cAIF,aACE,iBACA,aACA,8BAGF,eACE,cAIF,iBACE,iBACA,oBACA,eClCA,QACE,aADF,OACE,cADF,QACE,eADF,cACE,qBADF,MACE,aADF,UACE,mBADF,UACE,sBADF,WACE,eADF,cACE,iBADF,aACE,cADF,gBACE,cADF,WACE,YADF,cACE,YADF,YACE,WADF,aACE,YADF,YACE,WADF,WACE,iBADF,aACE,kBADF,gBACE,yBADF,gBACE,yBADF,cACE,kBADF,aACE,iBADF,WACE,gBADF,aACE,kBADF,YACE,iBADF,cACE,mBADF,WACE,yBADF,eACE,2BADF,aACE,yBADF,gBACE,uBADF,iBACE,8BADF,gBACE,6BADF,gBACE,6BADF,qBACE,oBADF,mBACE,kBADF,sBACE,qBADF,aACE,oBADF,WACE,kBADF,cACE,qBADF,eACE,4BADF,cACE,2BADF,cACE,2BADF,mBACE,uBADF,iBACE,qBADF,oBACE,mBADF,cACE,qBADF,mBACE,kBADF,oBACE,mBADF,kBACE,iBADF,qBACE,oBADF,sBACE,qBADF,iBACE,gBADF,kBACE,sBADF,gBACE,oBADF,mBACE,kBADF,oBACE,mBADF,WACE,mBADF,cACE,sBADF,cACE,sBADF,YACE,WADF,WACE,UAOA,yBACE,YACE,cAFJ,yBACE,YACE,cAFJ,0BACE,YACE,cAFJ,yBACE,WACE,eAFJ,yBACE,WACE,eAFJ,0BACE,WACE,eAFJ,yBACE,YACE,gBAFJ,yBACE,YACE,gBAFJ,0BACE,YACE,gBAFJ,yBACE,kBACE,sBAFJ,yBACE,kBACE,sBAFJ,0BACE,kBACE,sBAFJ,yBACE,UACE,cAFJ,yBACE,UACE,cAFJ,0BACE,UACE,cAFJ,yBACE,cACE,oBAFJ,yBACE,cACE,oBAFJ,0BACE,cACE,oBAFJ,yBACE,cAC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BACE,aACE,UNoEI,UMtER,yBACE,aACE,UNoEI,UMtER,0BACE,aACE,UNoEI,UMtER,yBACE,aACE,UNoEI,QMtER,yBACE,aACE,UNoEI,QMtER,0BACE,aACE,UNoEI,QMtER,yBACE,aACE,UNoEI,SMtER,yBACE,aACE,UNoEI,SMtER,0BACE,aACE,UNoEI,SMtER,yBACE,aACE,UNoEI,MMtER,yBACE,aACE,UNoEI,MMtER,0BACE,aACE,UNoEI,MMtER,yBACE,aACE,UNoEI,UMtER,yBACE,aACE,UNoEI,UMtER,0BACE,aACE,UNoEI,UMtER,yBACE,aACE,UNoEI,SMtER,yBACE,aACE,UNoEI,SMtER,0BACE,aACE,UNoEI,SMtER,yBACE,aACE,UNoEI,QMtER,yBACE,aACE,UNoEI,QMtER,0BACE,aACE,UNoEI,QMtER,yBACE,aACE,UNoEI,UMtER,yBACE,aACE,UNoEI,UMtER,0BACE,aACE,UNoEI,UMtER,yBACE,aACE,UNoEI,SMtER,yBACE,aACE,UNoEI,SMtER,0BACE,aACE,UNoEI,SMtER,yBACE,eACE,UNoEI,MMtER,yBACE,eACE,UNoEI,MMtER,0BACE,eACE,UNoEI,MMtER,yBACE,kBACE,UNoEI,WMtER,yBACE,kBACE,UNoEI,WMtER,0BACE,kBACE,UNoEI,WO5EV,KACE,QPgBM,EObR,MACE,YPYM,EOTR,MACE,cPQM,EOLR,MACE,ePIM,EODR,MACE,eAGF,MACE,aPJM,EOKN,cPLM,EOQR,MACE,YPTM,EOUN,ePVM,EOaR,KACE,OPdM,EOiBR,MACE,WPlBM,EOqBR,MACE,aPtBM,EOyBR,MACE,cP1BM,EO6BR,MACE,YP9BM,EOiCR,MACE,YPlCM,EOmCN,aPnCM,EOsCR,MACE,WPvCM,EOwCN,cPxCM,EO+CN,yBACE,SACE,QPjDE,EOoDJ,UACE,YPrDE,EOwDJ,UACE,cPzDE,EO4DJ,UACE,eP7DE,EOgEJ,UACE,aPjEE,EOoEJ,UACE,aPrEE,EOsEF,cPtEE,EOyEJ,UACE,YP1EE,EO2EF,eP3EE,EO8EJ,SACE,OP/EE,EOkFJ,UACE,WPnFE,EOsFJ,UACE,aPvFE,EO0FJ,UACE,cP3FE,EO8FJ,UACE,YP/FE,EOkGJ,UACE,YPnGE,EOoGF,aPpGE,EOuGJ,UACE,WPxGE,EOyGF,cPzGE,GO+CN,yBACE,SACE,QPjDE,EOoDJ,UACE,YPrDE,EOwDJ,UACE,cPzDE,EO4DJ,UACE,eP7DE,EOgEJ,UACE,aPjEE,EOoEJ,UACE,aPrEE,EOsEF,cPtEE,EOyEJ,UACE,YP1EE,EO2EF,eP3EE,EO8EJ,SACE,OP/EE,EOkFJ,UACE,WPnFE,EOsFJ,UACE,aPvFE,EO0FJ,UACE,cP3FE,EO8FJ,UACE,YP/FE,EOkGJ,UACE,YPnGE,EOoGF,aPpGE,EOuGJ,UACE,WPxGE,EOyGF,cPzGE,GO+CN,0BACE,SACE,QPjDE,EOoDJ,UACE,YPrDE,EOwDJ,UACE,cPzDE,EO4DJ,UACE,eP7DE,EOgEJ,UACE,aPjEE,EOoEJ,UACE,aPrEE,EOsEF,cPtEE,EOyEJ,UACE,YP1EE,EO2EF,eP3EE,EO8EJ,SACE,OP/EE,EOkFJ,UACE,WPnFE,EOsFJ,UACE,aPvFE,EO0FJ,UACE,cP3FE,EO8FJ,UACE,YP/FE,EOkGJ,UACE,YPnGE,EOoGF,aPpGE,EOuGJ,UACE,WPxGE,EOyGF,cPzGE,GOjBR,KACE,QPgBM,QObR,MACE,YPYM,QOTR,MACE,cPQM,QOLR,MACE,ePIM,QODR,MACE,qBAGF,MACE,aPJM,QOKN,cPLM,QOQR,MACE,YPTM,QOUN,ePVM,QOaR,KACE,OPdM,QOiBR,MACE,WPlBM,QOqBR,MACE,aPtBM,QOyBR,MACE,cP1BM,QO6BR,MACE,YP9BM,QOiCR,MACE,YPlCM,QOmCN,aPnCM,QOsCR,MACE,WPvCM,QOwCN,cPxCM,QO+CN,yBACE,SACE,QPjDE,QOoDJ,UACE,YPrDE,QOwDJ,UACE,cPzDE,QO4DJ,UACE,eP7DE,QOgEJ,UACE,aPjEE,QOoEJ,UACE,aPrEE,QOsEF,cPtEE,QOyEJ,UACE,YP1EE,QO2EF,eP3EE,QO8EJ,SACE,OP/EE,QOkFJ,UACE,WPnFE,QOsFJ,UACE,aPvFE,QO0FJ,UACE,cP3FE,QO8FJ,UACE,YP/FE,QOkGJ,UACE,YPnGE,QOoGF,aPpGE,QOuGJ,UACE,WPxGE,QOyGF,cPzGE,SO+CN,yBACE,SACE,QPjDE,QOoDJ,UACE,YPrDE,QOwDJ,UACE,cPzDE,QO4DJ,UACE,eP7DE,QOgEJ,UACE,aPjEE,QOoEJ,UACE,aPrEE,QOsEF,cPtEE,QOyEJ,UACE,YP1EE,QO2EF,eP3EE,QO8EJ,SACE,OP/EE,QOkFJ,UACE,WPnFE,QOsFJ,UACE,aPvFE,QO0FJ,UACE,cP3FE,QO8FJ,UACE,YP/FE,QOkGJ,UACE,YPnGE,QOoGF,aPpGE,QOuGJ,UACE,WPxGE,QOyGF,cPzGE,SO+CN,0BACE,SACE,QPjDE,QOoDJ,UACE,YPrDE,QOwDJ,UACE,cPzDE,QO4DJ,UACE,eP7DE,QOgEJ,UACE,aPjEE,QOoEJ,UACE,aPrEE,QOsEF,cPtEE,QOyEJ,UACE,YP1EE,QO2EF,eP3EE,QO8EJ,SACE,OP/EE,QOkFJ,UACE,WPnFE,QOsFJ,UACE,aPvFE,QO0FJ,UACE,cP3FE,QO8FJ,UACE,YP/FE,QOkGJ,UACE,YPnGE,QOoGF,aPpGE,QOuGJ,UACE,WPxGE,QOyGF,cPzGE,SOjBR,KACE,QPgBM,QObR,MACE,YPYM,QOTR,MACE,cPQM,QOLR,MACE,ePIM,QODR,MACE,qBAGF,MACE,aPJM,QOKN,cPLM,QOQR,MACE,YPTM,QOUN,ePVM,QOaR,KACE,OPdM,QOiBR,MACE,WPlBM,QOqBR,MACE,aPtBM,QOyBR,MACE,cP1BM,QO6BR,MACE,YP9BM,QOiCR,MACE,YPlCM,QOmCN,aPnCM,QOsCR,MACE,WPvCM,QOwCN,cPxCM,QO+CN,yBACE,SACE,QPjDE,QOoDJ,UACE,YPrDE,QOwDJ,UACE,cPzDE,QO4DJ,UACE,eP7DE,QOgEJ,UACE,aPjEE,QOoEJ,UACE,aPrEE,QOsEF,cPtEE,QOyEJ,UACE,YP1EE,QO2EF,eP3EE,QO8EJ,SACE,OP/EE,QOkFJ,UACE,WPnFE,QOsFJ,UACE,aPvFE,QO0FJ,UACE,cP3FE,QO8FJ,UACE,YP/FE,QOkGJ,UACE,YPnGE,QOoGF,aPpGE,QOuGJ,UACE,WPxGE,QOyGF,cPzGE,SO+CN,yBACE,SACE,QPjDE,QOoDJ,UACE,YPrDE,QOwDJ,UACE,cPzDE,QO4DJ,UACE,eP7DE,QOgEJ,UACE,aPjEE,QOoEJ,UACE,aPrEE,QOsEF,cPtEE,QOyEJ,UACE,YP1EE,QO2EF,eP3EE,QO8EJ,SACE,OP/EE,QOkFJ,UACE,WPnFE,QOsFJ,UACE,aPvFE,QO0FJ,UACE,cP3FE,QO8FJ,UACE,YP/FE,QOkGJ,UACE,YPnGE,QOoGF,aPpGE,QOuGJ,UACE,WPxGE,QOyGF,cPzGE,SO+CN,0BACE,SACE,QPjDE,QOoDJ,UACE,YPrDE,QOwDJ,UACE,cPzDE,QO4DJ,UACE,eP7DE,QOgEJ,UACE,aPjEE,QOoEJ,UACE,aPrEE,QOsEF,cPtEE,QOyEJ,UACE,YP1EE,QO2EF,eP3EE,QO8EJ,SACE,OP/EE,QOkFJ,UACE,WPnFE,QOsFJ,UACE,aPvFE,QO0FJ,UACE,cP3FE,QO8FJ,UACE,YP/FE,QOkGJ,UACE,YPnGE,QOoGF,aPpGE,QOuGJ,UACE,WPxGE,QOyGF,cPzGE,SOjBR,KACE,QPgBM,MObR,MACE,YPYM,MOTR,MACE,cPQM,MOLR,MACE,ePIM,MODR,MACE,mBAGF,MACE,aPJM,MOKN,cPLM,MOQR,MACE,YPTM,MOUN,ePVM,MOaR,KACE,OPdM,MOiBR,MACE,WPlBM,MOqBR,MACE,aPtBM,MOyBR,MACE,cP1BM,MO6BR,MACE,YP9BM,MOiCR,MACE,YPlCM,MOmCN,aPnCM,MOsCR,MACE,WPvCM,MOwCN,cPxCM,MO+CN,yBACE,SACE,QPjDE,MOoDJ,UACE,YPrDE,MOwDJ,UACE,cPzDE,MO4DJ,UACE,eP7DE,MOgEJ,UACE,aPjEE,MOoEJ,UACE,aPrEE,MOsEF,cPtEE,MOyEJ,UACE,YP1EE,MO2EF,eP3EE,MO8EJ,SACE,OP/EE,MOkFJ,UACE,WPnFE,MOsFJ,UACE,aPvFE,MO0FJ,UACE,cP3FE,MO8FJ,UACE,YP/FE,MOkGJ,UACE,YPnGE,MOoGF,aPpGE,MOuGJ,UACE,WPxGE,MOyGF,cPzGE,OO+CN,yBACE,SACE,QPjDE,MOoDJ,UACE,YPrDE,MOwDJ,UACE,cPzDE,MO4DJ,UACE,eP7DE,MOgEJ,UACE,aPjEE,MOoEJ,UACE,aPrEE,MOsEF,cPtEE,MOyEJ,UACE,YP1EE,MO2EF,eP3EE,MO8EJ,SACE,OP/EE,MOkFJ,UACE,WPnFE,MOsFJ,UACE,aPvFE,MO0FJ,UACE,cP3FE,MO8FJ,UACE,YP/FE,MOkGJ,UACE,YPnGE,MOoGF,aPpGE,MOuGJ,UACE,WPxGE,MOyGF,cPzGE,OO+CN,0BACE,SACE,QPjDE,MOoDJ,UACE,YPrDE,MOwDJ,UACE,cPzDE,MO4DJ,UACE,eP7DE,MOgEJ,UACE,aPjEE,MOoEJ,UACE,aPrEE,MOsEF,cPtEE,MOyEJ,UACE,YP1EE,MO2EF,eP3EE,MO8EJ,SACE,OP/EE,MOkFJ,UACE,WPnFE,MOsFJ,UACE,aPvFE,MO0FJ,UACE,cP3FE,MO8FJ,UACE,YP/FE,MOkGJ,UACE,YPnGE,MOoGF,aPpGE,MOuGJ,UACE,WPxGE,MOyGF,cPzGE,OOjBR,MACE,QPgBM,QObR,OACE,YPYM,QOTR,OACE,cPQM,QOLR,OACE,ePIM,QODR,OACE,qBAGF,OACE,aPJM,QOKN,cPLM,QOQR,OACE,YPTM,QOUN,ePVM,QOaR,MACE,OPdM,QOiBR,OACE,WPlBM,QOqBR,OACE,aPtBM,QOyBR,OACE,cP1BM,QO6BR,OACE,YP9BM,QOiCR,OACE,YPlCM,QOmCN,aPnCM,QOsCR,OACE,WPvCM,QOwCN,cPxCM,QO+CN,yBACE,UACE,QPjDE,QOoDJ,WACE,YPrDE,QOwDJ,WACE,cPzDE,QO4DJ,WACE,eP7DE,QOgEJ,WACE,aPjEE,QOoEJ,WACE,aPrEE,QOsEF,cPtEE,QOyEJ,WACE,YP1EE,QO2EF,eP3EE,QO8EJ,UACE,OP/EE,QOkFJ,WACE,WPnFE,QOsFJ,WACE,aPvFE,QO0FJ,WACE,cP3FE,QO8FJ,WACE,YP/FE,QOkGJ,WACE,YPnGE,QOoGF,aPpGE,QOuGJ,WACE,WPxGE,QOyGF,cPzGE,SO+CN,yBACE,UACE,QPjDE,QOoDJ,WACE,YPrDE,QOwDJ,WACE,cPzDE,QO4DJ,WACE,eP7DE,QOgEJ,WACE,aPjEE,QOoEJ,WACE,aPrEE,QOsEF,cPtEE,QOyEJ,WACE,YP1EE,QO2EF,eP3EE,QO8EJ,UACE,OP/EE,QOkFJ,WACE,WPnFE,QOsFJ,WACE,aPvFE,QO0FJ,WACE,cP3FE,QO8FJ,WACE,YP/FE,QOkGJ,WACE,YPnGE,QOoGF,aPpGE,QOuGJ,WACE,WPxGE,QOyGF,cPzGE,SO+CN,0BACE,UACE,QPjDE,QOoDJ,WACE,YPrDE,QOwDJ,WACE,cPzDE,QO4DJ,WACE,eP7DE,QOgEJ,WACE,aPjEE,QOoEJ,WACE,aPrEE,QOsEF,cPtEE,QOyEJ,WACE,YP1EE,QO2EF,eP3EE,QO8EJ,UACE,OP/EE,QOkFJ,WACE,WPnFE,QOsFJ,WACE,aPvFE,QO0FJ,WACE,cP3FE,QO8FJ,WACE,YP/FE,QOkGJ,WACE,YPnGE,QOoGF,aPpGE,QOuGJ,WACE,WPxGE,QOyGF,cPzGE,SOjBR,MACE,QPgBM,KObR,OACE,YPYM,KOTR,OACE,cPQM,KOLR,OACE,ePIM,KODR,OACE,kBAGF,OACE,aPJM,KOKN,cPLM,KOQR,OACE,YPTM,KOUN,ePVM,KOaR,MACE,OPdM,KOiBR,OACE,WPlBM,KOqBR,OACE,aPtBM,KOyBR,OACE,cP1BM,KO6BR,OACE,YP9BM,KOiCR,OACE,YPlCM,KOmCN,aPnCM,KOsCR,OACE,WPvCM,KOwCN,cPxCM,KO+CN,yBACE,UACE,QPjDE,KOoDJ,WACE,YPrDE,KOwDJ,WACE,cPzDE,KO4DJ,WACE,eP7DE,KOgEJ,WACE,aPjEE,KOoEJ,WACE,aPrEE,KOsEF,cPtEE,KOyEJ,WACE,YP1EE,KO2EF,eP3EE,KO8EJ,UACE,OP/EE,KOkFJ,WACE,WPnFE,KOsFJ,WACE,aPvFE,KO0FJ,WACE,cP3FE,KO8FJ,WACE,YP/FE,KOkGJ,WACE,YPnGE,KOoGF,aPpGE,KOuGJ,WACE,WPxGE,KOyGF,cPzGE,MO+CN,yBACE,UACE,QPjDE,KOoDJ,WACE,YPrDE,KOwDJ,WACE,cPzDE,KO4DJ,WACE,eP7DE,KOgEJ,WACE,aPjEE,KOoEJ,WACE,aPrEE,KOsEF,cPtEE,KOyEJ,WACE,YP1EE,KO2EF,eP3EE,KO8EJ,UACE,OP/EE,KOkFJ,WACE,WPnFE,KOsFJ,WACE,aPvFE,KO0FJ,WACE,cP3FE,KO8FJ,WACE,YP/FE,KOkGJ,WACE,YPnGE,KOoGF,aPpGE,KOuGJ,WACE,WPxGE,KOyGF,cPzGE,MO+CN,0BACE,UACE,QPjDE,KOoDJ,WACE,YPrDE,KOwDJ,WACE,cPzDE,KO4DJ,WACE,eP7DE,KOgEJ,WACE,aPjEE,KOoEJ,WACE,aPrEE,KOsEF,cPtEE,KOyEJ,WACE,YP1EE,KO2EF,eP3EE,KO8EJ,UACE,OP/EE,KOkFJ,WACE,WPnFE,KOsFJ,WACE,aPvFE,KO0FJ,WACE,cP3FE,KO8FJ,WACE,YP/FE,KOkGJ,WACE,YPnGE,KOoGF,aPpGE,KOuGJ,WACE,WPxGE,KOyGF,cPzGE,MOjBR,MACE,QPgBM,QObR,OACE,YPYM,QOTR,OACE,cPQM,QOLR,OACE,ePIM,QODR,OACE,qBAGF,OACE,aPJM,QOKN,cPLM,QOQR,OACE,YPTM,QOUN,ePVM,QOaR,MACE,OPdM,QOiBR,OACE,WPlBM,QOqBR,OACE,aPtBM,QOyBR,OACE,cP1BM,QO6BR,OACE,YP9BM,QOiCR,OACE,YPlCM,QOmCN,aPnCM,QOsCR,OACE,WPvCM,QOwCN,cPxCM,QO+CN,yBACE,UACE,QPjDE,QOoDJ,WACE,YPrDE,QOwDJ,WACE,cPzDE,QO4DJ,WACE,eP7DE,QOgEJ,WACE,aPjEE,QOoEJ,WACE,aPrEE,QOsEF,cPtEE,QOyEJ,WACE,YP1EE,QO2EF,eP3EE,QO8EJ,UACE,OP/EE,QOkFJ,WACE,WPnFE,QOsFJ,WACE,aPvFE,QO0FJ,WACE,cP3FE,QO8FJ,WACE,YP/FE,QOkGJ,WACE,YPnGE,QOoGF,aPpGE,QOuGJ,WACE,WPxGE,QOyGF,cPzGE,SO+CN,yBACE,UACE,QPjDE,QOoDJ,WACE,YPrDE,QOwDJ,WACE,cPzDE,QO4DJ,WACE,eP7DE,QOgEJ,WACE,aPjEE,QOoEJ,WACE,aPrEE,QOsEF,cPtEE,QOyEJ,WACE,YP1EE,QO2EF,eP3EE,QO8EJ,UACE,OP/EE,QOkFJ,WACE,WPnFE,QOsFJ,WACE,aPvFE,QO0FJ,WACE,cP3FE,QO8FJ,WACE,YP/FE,QOkGJ,WACE,YPnGE,QOoGF,aPpGE,QOuGJ,WACE,WPxGE,QOyGF,cPzGE,SO+CN,0BACE,UACE,QPjDE,QOoDJ,WACE,YPrDE,QOwDJ,WACE,cPzDE,QO4DJ,WACE,eP7DE,QOgEJ,WACE,aPjEE,QOoEJ,WACE,aPrEE,QOsEF,cPtEE,QOyEJ,WACE,YP1EE,QO2EF,eP3EE,QO8EJ,UACE,OP/EE,QOkFJ,WACE,WPnFE,QOsFJ,WACE,aPvFE,QO0FJ,WACE,cP3FE,QO8FJ,WACE,YP/FE,QOkGJ,WACE,YPnGE,QOoGF,aPpGE,QOuGJ,WACE,WPxGE,QOyGF,cPzGE,SOjBR,MACE,QPgBM,OObR,OACE,YPYM,OOTR,OACE,cPQM,OOLR,OACE,ePIM,OODR,OACE,oBAGF,OACE,aPJM,OOKN,cPLM,OOQR,OACE,YPTM,OOUN,ePVM,OOaR,MACE,OPdM,OOiBR,OACE,WPlBM,OOqBR,OACE,aPtBM,OOyBR,OACE,cP1BM,OO6BR,OACE,YP9BM,OOiCR,OACE,YPlCM,OOmCN,aPnCM,OOsCR,OACE,WPvCM,OOwCN,cPxCM,OO+CN,yBACE,UACE,QPjDE,OOoDJ,WACE,YPrDE,OOwDJ,WACE,cPzDE,OO4DJ,WACE,eP7DE,OOgEJ,WACE,aPjEE,OOoEJ,WACE,aPrEE,OOsEF,cPtEE,OOyEJ,WACE,YP1EE,OO2EF,eP3EE,OO8EJ,UACE,OP/EE,OOkFJ,WACE,WPnFE,OOsFJ,WACE,aPvFE,OO0FJ,WACE,cP3FE,OO8FJ,WACE,YP/FE,OOkGJ,WACE,YPnGE,OOoGF,aPpGE,OOuGJ,WACE,WPxGE,OOyGF,cPzGE,QO+CN,yBACE,UACE,QPjDE,OOoDJ,WACE,YPrDE,OOwDJ,WACE,cPzDE,OO4DJ,WACE,eP7DE,OOgEJ,WACE,aPjEE,OOoEJ,WACE,aPrEE,OOsEF,cPtEE,OOyEJ,WACE,YP1EE,OO2EF,eP3EE,OO8EJ,UACE,OP/EE,OOkFJ,WACE,WPnFE,OOsFJ,WACE,aPvFE,OO0FJ,WACE,cP3FE,OO8FJ,WACE,YP/FE,OOkGJ,WACE,YPnGE,OOoGF,aPpGE,OOuGJ,WACE,WPxGE,OOyGF,cPzGE,QO+CN,0BACE,UACE,QPjDE,OOoDJ,WACE,YPrDE,OOwDJ,WACE,cPzDE,OO4DJ,WACE,eP7DE,OOgEJ,WACE,aPjEE,OOoEJ,WACE,aPrEE,OOsEF,cPtEE,OOyEJ,WACE,YP1EE,OO2EF,eP3EE,OO8EJ,UACE,OP/EE,OOkFJ,WACE,WPnFE,OOsFJ,WACE,aPvFE,OO0FJ,WACE,cP3FE,OO8FJ,WACE,YP/FE,OOkGJ,WACE,YPnGE,OOoGF,aPpGE,OOuGJ,WACE,WPxGE,OOyGF,cPzGE,QOjBR,MACE,QPgBM,QObR,OACE,YPYM,QOTR,OACE,cPQM,QOLR,OACE,ePIM,QODR,OACE,qBAGF,OACE,aPJM,QOKN,cPLM,QOQR,OACE,YPTM,QOUN,ePVM,QOaR,MACE,OPdM,QOiBR,OACE,WPlBM,QOqBR,OACE,aPtBM,QOyBR,OACE,cP1BM,QO6BR,OACE,YP9BM,QOiCR,OACE,YPlCM,QOmCN,aPnCM,QOsCR,OACE,WPvCM,QOwCN,cPxCM,QO+CN,yBACE,UACE,QPjDE,QOoDJ,WACE,YPrDE,QOwDJ,WACE,cPzDE,QO4DJ,WACE,eP7DE,QOgEJ,WACE,aPjEE,QOoEJ,WACE,aPrEE,QOsEF,cPtEE,QOyEJ,WACE,YP1EE,QO2EF,eP3EE,QO8EJ,UACE,OP/EE,QOkFJ,WACE,WPnFE,QOsFJ,WACE,aPvFE,QO0FJ,WACE,cP3FE,QO8FJ,WACE,YP/FE,QOkGJ,WACE,YPnGE,QOoGF,aPpGE,QOuGJ,WACE,WPxGE,QOyGF,cPzGE,SO+CN,yBACE,UACE,QPjDE,QOoDJ,WACE,YPrDE,QOwDJ,WACE,cPzDE,QO4DJ,WACE,eP7DE,QOgEJ,WACE,aPjEE,QOoEJ,WACE,aPrEE,QOsEF,cPtEE,QOyEJ,WACE,YP1EE,QO2EF,eP3EE,QO8EJ,UACE,OP/EE,QOkFJ,WACE,WPnFE,QOsFJ,WACE,aPvFE,QO0FJ,WACE,cP3FE,QO8FJ,WACE,YP/FE,QOkGJ,WACE,YPnGE,QOoGF,aPpGE,QOuGJ,WACE,WPxGE,QOyGF,cPzGE,SO+CN,0BACE,UACE,QPjDE,QOoDJ,WACE,YPrDE,QOwDJ,WACE,cPzDE,QO4DJ,WACE,eP7DE,QOgEJ,WACE,aPjEE,QOoEJ,WACE,aPrEE,QOsEF,cPtEE,QOyEJ,WACE,YP1EE,QO2EF,eP3EE,QO8EJ,UACE,OP/EE,QOkFJ,WACE,WPnFE,QOsFJ,WACE,aPvFE,QO0FJ,WACE,cP3FE,QO8FJ,WACE,YP/FE,QOkGJ,WACE,YPnGE,QOoGF,aPpGE,QOuGJ,WACE,WPxGE,QOyGF,cPzGE,SOjBR,QACE,QPgBM,KObR,SACE,YPYM,KOTR,SACE,cPQM,KOLR,SACE,ePIM,KODR,SACE,kBAGF,SACE,aPJM,KOKN,cPLM,KOQR,SACE,YPTM,KOUN,ePVM,KOaR,QACE,OPdM,KOiBR,SACE,WPlBM,KOqBR,SACE,aPtBM,KOyBR,SACE,cP1BM,KO6BR,SACE,YP9BM,KOiCR,SACE,YPlCM,KOmCN,aPnCM,KOsCR,SACE,WPvCM,KOwCN,cPxCM,KO+CN,yBACE,YACE,QPjDE,KOoDJ,aACE,YPrDE,KOwDJ,aACE,cPzDE,KO4DJ,aACE,eP7DE,KOgEJ,aACE,aPjEE,KOoEJ,aACE,aPrEE,KOsEF,cPtEE,KOyEJ,aACE,YP1EE,KO2EF,eP3EE,KO8EJ,YACE,OP/EE,KOkFJ,aACE,WPnFE,KOsFJ,aACE,aPvFE,KO0FJ,aACE,cP3FE,KO8FJ,aACE,YP/FE,KOkGJ,aACE,YPnGE,KOoGF,aPpGE,KOuGJ,aACE,WPxGE,KOyGF,cPzGE,MO+CN,yBACE,YACE,QPjDE,KOoDJ,aACE,YPrDE,KOwDJ,aACE,cPzDE,KO4DJ,aACE,eP7DE,KOgEJ,aACE,aPjEE,KOoEJ,aACE,aPrEE,KOsEF,cPtEE,KOyEJ,aACE,YP1EE,KO2EF,eP3EE,KO8EJ,YACE,OP/EE,KOkFJ,aACE,WPnFE,KOsFJ,aACE,aPvFE,KO0FJ,aACE,cP3FE,KO8FJ,aACE,YP/FE,KOkGJ,aACE,YPnGE,KOoGF,aPpGE,KOuGJ,aACE,WPxGE,KOyGF,cPzGE,MO+CN,0BACE,YACE,QPjDE,KOoDJ,aACE,YPrDE,KOwDJ,aACE,cPzDE,KO4DJ,aACE,eP7DE,KOgEJ,aACE,aPjEE,KOoEJ,aACE,aPrEE,KOsEF,cPtEE,KOyEJ,aACE,YP1EE,K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wBACA,cFzGJ,8HE4GI,kCACI,UDjFR,yBCgFI,kCAIQ,aACA,oBACA,qBAEA,mDACI,sCACA,8BACA,+BACA,6CACA,uCACA,aACA,kBACA,OACA,eACA,kBACA,SACA,WAGJ,wCACI,sCAEA,qDACI,yCACA,qBAGJ,yDACI,eDhHpB,yBCsEA,qBAiDQ,mBACA,cAIR,qBACI,wBACA,cACA,gBACA,qBACA,kBACA,eACA,oBF/JJ,8HC4BA,yBC4HA,qBAWQ,aACA,oBAGJ,2BACI,mBACA,oBACA,uBACA,cACA,aAGJ,4BACI,+BACA,kBACA,eACA,aACA,YACA,cACA,cACA,oBACA,kBACA,QACA,yBACA,wBACA,aACA,oCACA,oBACA,cDnKR,yBCmJI,4BAmBQ,6BAKZ,qBACI,aACA,sCACA,wCACA,gBF3MJ,8HC4BA,yBC2KA,qBAQQ,iCACA,eDpLR,yBC2KA,qBAaQ,YACA,cACA,oBACA,aAEA,yBACA,gBACA,WAGJ,+BACI,cDnMR,yBCuMQ,mCACI,2BACA,kBACA,oBACA,aAEA,gDACI,qBACA,mBACA,aAIR,iCACI,yBACA,iBACA,oBACA,cAKZ,yBACI,kBACA,qBACA,kBAEA,4BACI,mCACA,YACA,WACA,eAGJ,sCACI,eACA,oBACA,qBD5OR,yBC6NA,yBAmBQ,sCACA,8BACA,+BACA,6CACA,uCACA,aACA,kBACA,OACA,eACA,kBACA,SACA,WAEA,sCACI,mBACA,qBACA,oBAKZ,YACI,YACA,eAGJ,UACI,qBAGJ,iBACI,mBACA,aACA,eACA,2BAEA,yBACI,oBAGJ,4BACI,sBAOR,0BACI,gBC9TR,OACI,kBACA,aACA,sBAEA,cACI,mBAGJ,kBACI,aACA,2BACA,mBAEA,0BACI,gBACA,yBACA,4BAGJ,wBACI,0BACA,6BAIR,2CAGI,kBACA,eACA,WACA,oCACA,sDACA,8BHjCJ,8HGoCI,qFACI,cAIR,yBACI,kBACA,gBACA,aACA,cACA,2BACA,UACA,qDACA,sBACA,gCACA,eAEA,iCACI,qDAIR,8DAEI,iBAGJ,cACI,gBACA,usBACA,uCACA,4BACA,uBACA,qBAIR,sBACI,aACA,mBAEA,yBACI,iBACA,eAIR,cACI,qBACA,YACA,kBACA,WAGJ,oBACI,aAGJ,QACI,sBACA,SACA,eACA,OACA,kBACA,QACA,MACA,eHtGA,8HG0GJ,eACI,sBACA,WACA,YACA,YACA,SACA,kBACA,eACA,WACA,UAEA,mBACA,kBACA,mBACA,qBACA,wBACA,kBACA,oBACA,oBAGJ,sBACI,iBLpHI,QEZJ,8HGoIJ,6BACI,2BACA,YACA,2CHvIA,8HG2IJ,cACI,mBAGJ,qBACI,kBCjJJ,QACI,eACA,uBACA,gCACA,iBACA,kBACA,6BACA,kBACA,mBACA,+BACA,oBACA,iBNGI,QMFJ,sBACA,MNoBgB,QEhChB,8HIeA,cACI,yBAGJ,kBACI,iBNLC,QMMD,MNYiB,QMVjB,wBACI,iBNGM,QMCd,mBACI,iBNjBA,QMmBA,yBACI,iBNNO,QMUf,mBACI,iBNpBC,QMsBD,yBACI,iBNXO,QMef,mBACI,iBN3BC,QM6BD,yBACI,iBNlBO,QMsBf,gBACI,+BACA,aNzCA,QM0CA,oCAEA,sBACI,qBC3DZ,OACI,SACA,OACA,QACA,MACA,mBACA,aACA,sBACA,uBACA,gBACA,eACA,WAEA,kBACI,aAGJ,yBACI,oCACA,SACA,OACA,kBACA,QACA,MAGJ,oBACI,iBACA,mCACA,YACA,qBACA,eACA,oBACA,qBACA,YACA,cACA,YACA,YACA,gBACA,eACA,gBACA,eACA,aACA,kBACA,WAEA,uDAEI,sCACA,WACA,cACA,SACA,kBACA,QACA,0DACA,+BAEJ,4BACI,WACA,UAEJ,2BACI,WACA,UAIR,mBACI,kBACA,YACA,cACA,aACA,sBACA,8BACA,gBJ7CJ,yBIsCA,mBAUQ,aJhDR,yBIsCA,mBAaQ,aJnDR,0BIsCA,mBAgBQ,YAGJ,oDAEI,mBACA,qCACA,aACA,cACA,2BACA,eACA,kBL7FR,8HKiGI,0BACI,4CACA,2BACA,4BACA,8BACA,iBLtGR,8HKyGI,2BACI,sCACA,YACA,cACA,cACA,aL9GR,8HKiHI,0BACI,8BACA,+BACA,yCAEA,mDACI,kBCxHhB,QACI,kBACA,gBACA,gBACA,eACA,WACA,WACA,SACA,eAEA,sCACA,kBAEA,cACI,iBREC,QQDD,MRmBiB,QQhBrB,gBACI,yBACA,MRaY,QQVhB,aACI,mBACA,kDAGJ,eACI,WACA,YACA,YACA,gBACA,eACA,gBACA,eACA,UACA,YACA,qBACA,eACA,oBACA,qBACA,iBACA,YACA,kBACA,UACA,mCAEA,qBACI,mCAGJ,6CAEI,sCACA,WACA,cACA,SACA,kBACA,QACA,0DACA,+BAEJ,uBACI,WACA,UAEJ,sBACI,WACA,UAKZ,wBACI,KACI,MACA,UAEJ,GACI,SACA,WAIR,yBACI,KACI,SACA,UAEJ,GACI,MACA,WC5FR,YACI,eACA,mBACA,aACA,kBACA,8BACA,gBAGA,6BACI,mBACA,aACA,kBACA,eACA,YACA,cACA,yBNaJ,yBMpBA,6BAUQ,wBAGJ,8CACI,mBACA,+BACA,qBACA,gBACA,oBACA,eACA,aACA,2BACA,gBACA,2CACA,kBACA,mBACA,qBACA,iBACA,kBACA,cACA,uBACA,cACA,aTjCJ,QSkCI,wBACA,gBACA,mBP3CR,8HO+CQ,oDACI,aTZS,QSaT,MTbS,QSgBb,0DACI,yCACA,qCACA,gBACA,4BACA,WAGJ,yDACI,iBTjDR,QSkDQ,aTlDR,QSmDQ,MT/BI,QUjCpB,KACI,qCACA,kBACA,mDACA,wBACA,cACA,gBACA,wBACA,YRPA,8HC4BA,yBO7BJ,KAYO,WPiBH,yBO7BJ,KAeO,WAGH,QACI,aAGJ,YACI,gBCvBR,MACI,cAEA,YACI,qBACA,qCACA,2CACA,aACA,mBACA,uBACA,mBTTJ,8HSYI,0BACI,sCAGJ,iBACI,eAGJ,gBACI,mCAKJ,wBACI,qCC3BR,WACI,yCACA,iBCHR,SACI,aACA,UACA,gBAEA,eACI,MbuBS","file":"main.css"}
\ No newline at end of file
diff --git a/public/favicon.png b/public/favicon.png
new file mode 100644
index 0000000..1a5897f
Binary files /dev/null and b/public/favicon.png differ
diff --git a/public/img/logo.png b/public/img/logo.png
new file mode 100644
index 0000000..bbb404c
Binary files /dev/null and b/public/img/logo.png differ
diff --git a/public/js/main.js b/public/js/main.js
new file mode 100644
index 0000000..0f92e9f
--- /dev/null
+++ b/public/js/main.js
@@ -0,0 +1,97 @@
+let timeout = null;
+
+/**
+ * Ensemble d'actions effectuées au chargement de la page
+ */
+document.addEventListener("DOMContentLoaded", () => {
+ const $navbarBurgers = Array.prototype.slice.call(
+ document.querySelectorAll(".navbar-burger"),
+ 0
+ );
+ if ($navbarBurgers.length > 0) {
+ $navbarBurgers.forEach((el) => {
+ el.addEventListener("click", () => {
+ const { target } = el.dataset;
+ const $target = document.getElementById(target);
+
+ el.classList.toggle("is-active");
+ $target.classList.toggle("is-active");
+ });
+ });
+ }
+});
+
+/**
+ * Fonction permettant d'afficher un message dans un toastr
+ * @param {String} message
+ */
+function showToastr(message, success = false) {
+ const x = document.getElementById("toastr");
+ if (message) {
+ x.getElementsByTagName("SPAN")[0].innerHTML = message;
+ }
+
+ if (timeout) {
+ clearTimeout(timeout);
+ x.classList.remove("show");
+ }
+
+ x.classList.remove("success");
+ x.classList.remove("error");
+ if (success) {
+ x.classList.add("success");
+ } else {
+ x.classList.add("error");
+ }
+
+ x.classList.add("show");
+
+ timeout = setTimeout(() => {
+ x.classList.remove("show");
+ }, 3000);
+}
+
+/**
+ * Fonction permettant de masquer le toastr
+ */
+function hideToastr() {
+ const x = document.getElementById("toastr");
+
+ x.className = x.className.replace("show", "");
+ x.getElementsByTagName("SPAN")[0].innerHTML = "";
+}
+
+const copyToClipboard = (itemId, message) => {
+ const copyText = document.getElementById(itemId);
+ copyText.select();
+ document.execCommand('copy');
+
+ showToastr(message, true);
+};
+
+const showModale = () => {
+ const x = document.getElementsByClassName("modal");
+
+ x[0].classList.add('is-visible');
+}
+
+const closeModale = () => {
+ const x = document.getElementsByClassName("modal");
+
+ x[0].classList.remove('is-visible');
+}
+
+const displayImageDetails = (itemId) => {
+ const x = document.getElementById(`item-${itemId}`);
+ const original = x.dataset.original;
+ const medium = x.dataset.medium;
+ const small = x.dataset.small;
+
+ document.getElementById('previewImage').src = small;
+ document.getElementById('originalFile-0').value = original;
+ document.getElementById('mediumFile-0').value = medium;
+ document.getElementById('smallFile-0').value = small;
+ document.getElementById('bbcode-0').value = `[url=${original}][img]${medium}[/img][/url]`;
+
+ showModale();
+}
\ No newline at end of file
diff --git a/sass/box.scss b/sass/box.scss
new file mode 100644
index 0000000..95c138e
--- /dev/null
+++ b/sass/box.scss
@@ -0,0 +1,26 @@
+.box {
+ background-color: var(--box-bg-color);
+ border-radius: 6px;
+ box-shadow: var(--box-shadow-color) 0px 3px 6px 0px;
+ color: var(--font-color);
+ display: block;
+ padding: 1.25rem;
+ width: calc(100% - 2rem);
+ margin: auto;
+ @include transition() {}
+
+ @include respond-to("small-up") {
+ width: 65%;
+ }
+ @include respond-to("medium-up") {
+ width: 35%;
+ }
+
+ h1 {
+ margin-top: 0;
+ }
+
+ button {
+ margin-top: 2rem;
+ }
+}
\ No newline at end of file
diff --git a/sass/button.scss b/sass/button.scss
new file mode 100644
index 0000000..1fd0e5d
--- /dev/null
+++ b/sass/button.scss
@@ -0,0 +1,63 @@
+.button {
+ cursor: pointer;
+ justify-content: center;
+ padding-bottom: calc(0.5em - 1px);
+ padding-left: 1em;
+ padding-right: 1em;
+ padding-top: calc(0.5em - 1px);
+ text-align: center;
+ white-space: nowrap;
+ border: 1px solid transparent;
+ margin-bottom: .5rem;
+ background-color: $nord9;
+ border-radius: 0.375rem;
+ color: $button-font-color;
+ @include transition() {}
+
+ &:hover {
+ background-color: darken($nord9, $hoverAmount);
+ }
+
+ &.is-danger {
+ background-color: $danger-color;
+ color: $button-alternate-color;
+
+ &:hover {
+ background-color: $danger-color-hl;
+ }
+ }
+
+ &.is-primary {
+ background-color: $primary-color;
+
+ &:hover {
+ background-color: $primary-color-hl;
+ }
+ }
+
+ &.is-warning {
+ background-color: $warning-color;
+
+ &:hover {
+ background-color: $warning-color-hl;
+ }
+ }
+
+ &.is-success {
+ background-color: $success-color;
+
+ &:hover {
+ background-color: $success-color-hl;
+ }
+ }
+
+ &.is-link {
+ background-color: transparent;
+ border-color: $nord9;
+ color: var(--button-link-text-color);
+
+ &:hover {
+ border-color: darken($nord9, $hoverAmount);
+ }
+ }
+}
\ No newline at end of file
diff --git a/sass/colors.scss b/sass/colors.scss
new file mode 100644
index 0000000..af22cce
--- /dev/null
+++ b/sass/colors.scss
@@ -0,0 +1,103 @@
+$hoverAmount: 10%;
+
+$white: #ffffff;
+$darken-white: #F8F9FB;
+/* Couleurs du thème Nord (https://www.nordtheme.com/) */
+$nord0: #2e3440;
+$nord1: #3b4252;
+$nord2: #434c5e;
+$nord3: #4C566A;
+$nord4: #d8dee9;
+$nord5: #e5e9f0;
+$nord6: #eceff4;
+$nord7: #8fbcbb;
+$nord8: #88c0d0;
+$nord9: #81a1c1;
+$nord10: #5e81ac;
+$nord11: #d08770;
+$nord12: #bf616a;
+$nord13: #ebcb8b;
+$nord14: #a3be8c;
+$nord15: #b48ead;
+
+$primary-color: $nord8;
+$danger-color: $nord11;
+$error-color: $nord12;
+$warning-color: $nord13;
+$success-color: $nord14;
+$primary-color-hl: darken($primary-color, $hoverAmount);
+$danger-color-hl: darken($danger-color, $hoverAmount);
+$error-color-hl: darken($error-color, $hoverAmount);
+$warning-color-hl: darken($warning-color, $hoverAmount);
+$success-color-hl: darken($success-color, $hoverAmount);
+
+$button-font-color: #2C364A;
+$button-alternate-color: #01103C;
+
+$pagination-border-color: $nord3;
+$pagination-hover-color: rgb(115, 151, 186);
+
+:root {
+ --default-color: #{$white};
+ --bg-color: #{darken($white, 5%)};
+ --bg-alternate-color: #{darken($white, 8%)};
+ --font-color: #{$nord3};
+ --footer-color: #{$darken-white};
+ --link-color: #{$nord1};
+
+ --input-font-color: #{$nord3};
+ --input-color: #{$white};
+ --input-active-color: #{$nord5};
+
+ --navbar-color: #{darken($white, 5%)};
+
+ --box-bg-color: #F8F9FB;
+ --box-shadow-color: #{rgba($nord4, 0.35)};
+
+ --border-color: #{$nord4};
+
+ --button-link-text-color: #2C364A;
+
+ --loader-img: url('/img/loading-light.gif');
+
+ --nord0: #{$nord0};
+ --nord1: #{$nord1};
+ --nord2: #{$nord2};
+ --nord3: #{$nord3};
+ --nord4: #{$nord4};
+ --nord5: #{$nord5};
+ --nord6: #{$nord6};
+ --nord7: #{$nord7};
+ --nord8: #{$nord8};
+ --nord9: #{$nord9};
+ --nord10: #{$nord10};
+ --nord11: #{$nord11};
+ --nord12: #{$nord12};
+ --nord13: #{$nord13};
+ --nord14: #{$nord14};
+ --nord15: #{$nord15};
+}
+
+[data-theme="dark"] {
+ --default-color: #{$nord3};
+ --bg-color: #{lighten($nord0, 2%)};
+ --bg-alternate-color: #{lighten($nord3, 8%)};
+ --font-color: #{$nord6};
+ --footer-color: #{$nord1};
+ --link-color: #{$nord4};
+
+ --input-font-color: #{$nord6};
+ --input-color: #{$nord0};
+ --input-active-color: #{$nord3};
+
+ --navbar-color: #{$nord0};
+
+ --box-bg-color: #{$nord1};
+ --box-shadow-color: #{rgba($nord4, 0.2)};
+
+ --border-color: #{$nord1};
+
+ --button-link-text-color: #{$white};
+
+ --loader-img: url('/img/loading-dark.gif');
+}
\ No newline at end of file
diff --git a/sass/error.scss b/sass/error.scss
new file mode 100644
index 0000000..930d6db
--- /dev/null
+++ b/sass/error.scss
@@ -0,0 +1,6 @@
+main {
+ &.error {
+ min-height: calc(100vh - 3.25rem - 100px);
+ padding-top: 4rem;
+ }
+}
\ No newline at end of file
diff --git a/sass/fonts.scss b/sass/fonts.scss
new file mode 100644
index 0000000..8d0cc8e
--- /dev/null
+++ b/sass/fonts.scss
@@ -0,0 +1,16 @@
+/*! Generated by Font Squirrel (https://www.fontsquirrel.com) on February 23, 2022 */
+
+@font-face {
+ font-family: 'lucioleregular';
+ src: url(data:application/font-woff2;charset=utf-8;base64,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) format('woff2');
+ font-weight: normal;
+ font-style: normal;
+
+}
+
+@font-face {
+ font-family: 'fira_codelight';
+ src: url(data:application/font-woff2;charset=utf-8;base64,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) format('woff2');
+ font-weight: normal;
+ font-style: normal;
+}
\ No newline at end of file
diff --git a/sass/forms.scss b/sass/forms.scss
new file mode 100644
index 0000000..125527a
--- /dev/null
+++ b/sass/forms.scss
@@ -0,0 +1,147 @@
+.field {
+ padding-top: .6rem;
+ display: flex;
+ flex-direction: column;
+
+ &.inline {
+ flex-direction: row;
+ }
+
+ &.has-addons {
+ display: flex;
+ justify-content: flex-start;
+ flex-direction: row;
+
+ .button {
+ margin-bottom: 0;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+
+ input {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ }
+
+ input,
+ textarea,
+ select {
+ border-radius: 4px;
+ max-width: 100%;
+ width: 100%;
+ background-color: var(--input-color);
+ border: 1px solid var(--input-active-color) !important;
+ color: var(--input-font-color);
+ @include transition() {}
+
+ &:focus-visible {
+ outline: unset;
+ }
+ }
+
+ input[type="radio"] {
+ border-radius: 50%;
+ appearance: none;
+ width: 1.2rem;
+ height: 1.2rem;
+ vertical-align: text-bottom;
+ outline: 0;
+ box-shadow: inset 0 0 0 1px var(--input-active-color);
+ background-color: #fff;
+ transition: background-size .15s;
+ cursor: pointer;
+
+ &:checked {
+ box-shadow: inset 0 0 0 4px var(--input-active-color);
+ }
+ }
+
+ input[type="radio"] + label,
+ label + input[type="radio"] {
+ margin-left: 12px;
+ }
+
+ select {
+ appearance: none;
+ background-image: url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20standalone%3D%22no%22%3F%3E%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20style%3D%22isolation%3Aisolate%22%20viewBox%3D%220%200%2020%2020%22%20width%3D%2220%22%20height%3D%2220%22%3E%3Cpath%20d%3D%22%20M%209.96%2011.966%20L%203.523%205.589%20C%202.464%204.627%200.495%206.842%201.505%207.771%20L%201.505%207.771%20L%208.494%2014.763%20C%209.138%2015.35%2010.655%2015.369%2011.29%2014.763%20L%2011.29%2014.763%20L%2018.49%207.771%20C%2019.557%206.752%2017.364%204.68%2016.262%205.725%20L%2016.262%205.725%20L%209.96%2011.966%20Z%20%22%20fill%3D%22inherit%22/%3E%3C/svg%3E");
+ background-position: right 0.8rem center;
+ background-repeat: no-repeat;
+ background-size: 1.2rem;
+ padding-right: 2.4rem;
+ }
+}
+
+.theme-switch-wrapper {
+ display: flex;
+ align-items: center;
+
+ em {
+ margin-left: 10px;
+ font-size: 1rem;
+ }
+}
+
+.theme-switch {
+ display: inline-block;
+ height: 34px;
+ position: relative;
+ width: 60px;
+}
+
+.theme-switch input {
+ display:none;
+}
+
+.slider {
+ background-color: #ccc;
+ bottom: 0;
+ cursor: pointer;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+ transition: .4s;
+ @include transition() {}
+}
+
+.slider:before {
+ background-color: #fff;
+ bottom: 4px;
+ content: '\f185';
+ height: 26px;
+ left: 4px;
+ position: absolute;
+ transition: .4s;
+ width: 26px;
+ padding: 0;
+
+ font-family: "icon";
+ font-style: normal;
+ font-weight: normal;
+ display: inline-block;
+ text-decoration: inherit;
+ text-align: center;
+ font-variant: normal;
+ text-transform: none;
+}
+
+input:checked + .slider {
+ background-color: $primary-color;
+ @include transition() {}
+}
+
+input:checked + .slider:before {
+ transform: translateX(26px);
+ content: '\f186';
+ background-color: var(--input-active-color);
+ @include transition() {}
+}
+
+.slider.round {
+ border-radius: 34px;
+}
+
+.slider.round:before {
+ border-radius: 50%;
+}
diff --git a/sass/global.scss b/sass/global.scss
new file mode 100644
index 0000000..af0678c
--- /dev/null
+++ b/sass/global.scss
@@ -0,0 +1,88 @@
+html {
+ min-height: 100vh;
+ scroll-behavior: smooth;
+
+ body {
+ background-color: var(--bg-color);
+ display: flex;
+ flex-direction: column;
+ padding-top: 3.5rem;
+ font-family: 'lucioleregular';
+ min-height: 100vh;
+ color: var(--font-color);
+ @include transition();
+
+ footer.footer {
+ margin-top: auto;
+ padding: 2rem 0.7rem 1.5rem;
+ background-color: var(--footer-color);
+ @include transition() {}
+ }
+
+ a {
+ color: var(--link-color);
+ cursor: pointer;
+ @include transition() {}
+
+ &:hover {
+ color: var(--font-color);
+ }
+ }
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
+ color: var(--font-color);
+ }
+
+ h1 {
+ margin-top: 2rem;
+ }
+
+ pre {
+ font-family: 'fira_codelight';
+ margin: 0.75rem 0;
+ padding: 0.75rem;
+ border-left: 2px solid $nord10;
+ background: var(--box-bg-color);
+ color: var(--font-color);
+ }
+
+
+ .image-preview {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ }
+ }
+}
+
+.layout-maxed {
+ @include respond-to("small") {
+ padding: 0 0.7rem;
+ }
+}
+
+.is-hidden {
+ display: none;
+}
+
+.ml-4 {
+ margin-left: 1rem;
+}
+
+.sm-hidden {
+ display: none;
+
+ @include respond-to("small-up") {
+ display: initial;
+ }
+}
+
+.is-danger {
+ color: $nord12;
+}
\ No newline at end of file
diff --git a/sass/index.scss b/sass/index.scss
new file mode 100644
index 0000000..4ea1bec
--- /dev/null
+++ b/sass/index.scss
@@ -0,0 +1,34 @@
+// @use '../node_modules/knacss/sass/knacss.scss';
+
+// NOYAU
+@import "../node_modules/knacss/sass/abstracts/variables-sass";
+@import "../node_modules/knacss/sass/abstracts/mixins-sass";
+
+@import "../node_modules/knacss/sass/base/reset-base";
+@import "../node_modules/knacss/sass/base/reset-accessibility";
+@import "../node_modules/knacss/sass/base/reset-forms";
+@import "../node_modules/knacss/sass/base/reset-print";
+@import "../node_modules/knacss/sass/base/layout";
+
+// UTILITAIRES
+@import "../node_modules/knacss/sass/utils/utils-global";
+@import "../node_modules/knacss/sass/utils/utils-font-sizes";
+@import "../node_modules/knacss/sass/utils/utils-spacers";
+@import "../node_modules/knacss/sass/utils/grillade";
+
+// SPÉCIFIQUE AU SITE
+@import './fonts';
+@import './colors';
+@import './mixin';
+@import './global';
+@import './navbar';
+@import './forms';
+@import './button';
+@import './modal';
+@import './toast';
+@import './pagination';
+@import './box';
+@import './list';
+
+@import './error';
+@import './messages';
\ No newline at end of file
diff --git a/sass/list.scss b/sass/list.scss
new file mode 100644
index 0000000..d005349
--- /dev/null
+++ b/sass/list.scss
@@ -0,0 +1,32 @@
+.list {
+ margin: 2rem 0;
+
+ .item{
+ padding: 0.5rem 0.75rem;
+ border: 2px solid var(--border-color);
+ background-color: var(--bg-alternate-color);
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ @include transition() {}
+
+ &:nth-child(2n) {
+ background-color: var(--default-color);
+ }
+
+ &.link {
+ cursor: pointer;
+ }
+
+ img {
+ border: 2px solid var(--font-color);
+ }
+ }
+
+ &.hover {
+ .item:hover {
+ background-color: var(--border-color);
+ }
+ }
+}
\ No newline at end of file
diff --git a/sass/messages.scss b/sass/messages.scss
new file mode 100644
index 0000000..7633697
--- /dev/null
+++ b/sass/messages.scss
@@ -0,0 +1,9 @@
+.message {
+ margin: 8px 0;
+ padding: 0;
+ font-size: 0.8rem;
+
+ &.error {
+ color: $error-color-hl;
+ }
+}
\ No newline at end of file
diff --git a/sass/mixin.scss b/sass/mixin.scss
new file mode 100644
index 0000000..7d74137
--- /dev/null
+++ b/sass/mixin.scss
@@ -0,0 +1,4 @@
+@mixin transition() {
+ transition: background-color 200ms ease-in 0s, border-color 200ms ease-in 0s, box-shadow 200ms ease-in 0s, color 200ms ease-in 0s;
+ @content;
+}
diff --git a/sass/modal.scss b/sass/modal.scss
new file mode 100644
index 0000000..e44de67
--- /dev/null
+++ b/sass/modal.scss
@@ -0,0 +1,125 @@
+.modal {
+ bottom: 0;
+ left: 0;
+ right: 0;
+ top: 0;
+ align-items: center;
+ display: none;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ position: fixed;
+ z-index: 40;
+
+ &.is-visible {
+ display: flex;
+ }
+
+ .modal-background {
+ background-color: rgba(10,10,10,.86);
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+ }
+
+ button.close {
+ user-select: none;
+ background-color: rgba(10,10,10,.2);
+ border: none;
+ border-radius: 9999px;
+ cursor: pointer;
+ pointer-events: auto;
+ display: inline-block;
+ flex-grow: 0;
+ flex-shrink: 0;
+ font-size: 0;
+ height: 20px;
+ max-height: 20px;
+ max-width: 20px;
+ min-height: 20px;
+ min-width: 20px;
+ outline: none;
+ position: relative;
+ width: 20px;
+
+ &::before,
+ &::after {
+ background-color: var(--default-color);
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center;
+ }
+ &::before {
+ height: 2px;
+ width: 50%;
+ }
+ &::after {
+ height: 50%;
+ width: 2px;
+ }
+ }
+
+ .modal-card {
+ position: relative;
+ width: 300px;
+ margin: 0 auto;
+ display: flex;
+ flex-direction: column;
+ max-height: calc(100vh - 40px);
+ overflow: hidden;
+
+ @include respond-to("small-up") {
+ width: 560px;
+ }
+ @include respond-to("medium-up") {
+ width: 980px;
+ }
+ @include respond-to("large-up") {
+ width: 1200;
+ }
+
+ header,
+ footer {
+ align-items: center;
+ background-color: var(--navbar-color);
+ display: flex;
+ flex-shrink: 0;
+ justify-content: flex-start;
+ padding: 0.75rem;
+ position: relative;
+ @include transition() {}
+ }
+
+ header {
+ border-bottom: 1px solid var(--border-color);
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+ justify-content: space-between;
+ font-size: 1.5rem;
+ @include transition() {}
+ }
+ section {
+ background-color: var(--default-color);
+ flex-grow: 1;
+ flex-shrink: 1;
+ overflow: auto;
+ padding: 20px;
+ @include transition() {}
+ }
+ footer {
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 1px solid var(--border-color);
+
+ .button:not(:last-child) {
+ margin-right: .5em;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sass/navbar.scss b/sass/navbar.scss
new file mode 100644
index 0000000..410468c
--- /dev/null
+++ b/sass/navbar.scss
@@ -0,0 +1,321 @@
+.navbar {
+ min-height: 3.25rem;
+ background-color: var(--navbar-color);
+ box-shadow: rgba(216, 222, 233, 0.15) 0px 5px 10px 0px;
+ color: rgba(0,0,0,.7);
+ position: fixed;
+ z-index: 30;
+ top: 0;
+ right: 0;
+ left: 0;
+ @include transition() {}
+
+ @include respond-to("medium-up") {
+ min-height: 3.25rem;
+ align-items: stretch;
+ display: flex;
+ }
+
+ .navbar-brand {
+ align-items: stretch;
+ display: flex;
+ min-height: 3.25rem;
+
+ .navbar-item {
+ align-items: center;
+ display: flex;
+
+ img {
+ max-height: 32px;
+ }
+
+ span {
+ word-break: break-word;
+ color: var(--font-color);
+ font-size: 2rem;
+ line-height: 1.125;
+ margin-left: .5rem !important;
+ @include transition() {}
+ }
+ }
+ }
+
+ .navbar-burger {
+ padding: 0;
+ margin: 0;
+ font-size: 1em;
+ appearance: none;
+ background: none;
+ border: none;
+ cursor: pointer;
+ display: block;
+ height: 3.25rem;
+ position: relative;
+ width: 3.25rem;
+ margin-left: auto;
+ color: var(--font-color);
+
+ @include respond-to("medium-up") {
+ display: none;
+ }
+
+ span {
+ background-color: currentColor;
+ display: block;
+ height: 1px;
+ left: calc(50% - 8px);
+ position: absolute;
+ transform-origin: center;
+ transition-duration: 86ms;
+ transition-property: background-color,opacity,transform;
+ transition-timing-function: ease-out;
+ width: 16px;
+
+ &:nth-child(1) {
+ top: calc(50% - 6px);
+ }
+ &:nth-child(2) {
+ top: calc(50% - 1px);
+ }
+ &:nth-child(3) {
+ top: calc(50% + 4px);
+ }
+ }
+
+ &.is-active {
+ span {
+ &:nth-child(1) {
+ transform: translateY(5px) rotate(45deg);
+ }
+ &:nth-child(2) {
+ opacity: 0;
+ }
+ &:nth-child(3) {
+ transform: translateY(-5px) rotate(-45deg);
+ }
+ }
+ }
+ }
+
+ .navbar-item {
+ line-height: 1.5;
+ padding: .5rem .75rem;
+ position: relative;
+ flex-grow: 0;
+ flex-shrink: 0;
+ color: var(--font-color);
+ display: block;
+ @include transition() {}
+
+ &.has-dropdown {
+ padding: 0;
+
+ @include respond-to("medium-up") {
+ display: flex;
+ align-items: stretch;
+ color: rgba(0,0,0,.7);
+
+ .navbar-dropdown {
+ background-color: var(--default-color);
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 2px solid var(--default-hl-color);
+ box-shadow: 0 8px 8px rgba(10,10,10,.1);
+ display: none;
+ font-size: .875rem;
+ left: 0;
+ min-width: 100%;
+ position: absolute;
+ top: 100%;
+ z-index: 20;
+ }
+
+ &:hover {
+ background-color: var(--default-color);
+
+ .navbar-link {
+ background-color: var(--default-hl-color);
+ color: rgba(0,0,0,.7);
+ }
+
+ .navbar-dropdown {
+ display: block;
+ }
+ }
+ }
+ }
+
+ @include respond-to("medium-up") {
+ align-items: center;
+ display: flex;
+ }
+ }
+
+ .navbar-link {
+ color: var(--font-color);
+ display: block;
+ line-height: 1.5;
+ padding: .5rem .75rem;
+ position: relative;
+ cursor: pointer;
+ padding-right: 2.5em;
+ @include transition() {}
+
+ @include respond-to("medium-up") {
+ display: flex;
+ align-items: center;
+ }
+
+ .icon {
+ align-items: center;
+ display: inline-flex;
+ justify-content: center;
+ height: 1.5rem;
+ width: 1.5rem;
+ }
+
+ &::after {
+ border: 3px solid transparent;
+ border-radius: 2px;
+ border-right: 0;
+ border-top: 0;
+ content: " ";
+ display: block;
+ height: .625em;
+ pointer-events: none;
+ position: absolute;
+ top: 50%;
+ transform: rotate(-45deg);
+ transform-origin: center;
+ width: .625em;
+ border-color: var(--secondary-color);
+ margin-top: -0.375em;
+ right: 1.125em;
+
+ @include respond-to("medium-up") {
+ border-color: rgba(0,0,0,.7);
+ }
+ }
+ }
+
+ .navbar-menu {
+ display: none;
+ background-color: var(--default-color);
+ box-shadow: 0 8px 16px rgba(10,10,10,.1);
+ padding: .5rem 0;
+ @include transition() {}
+
+ @include respond-to("medium") {
+ max-height: calc(100vh - 3.25rem);
+ overflow: auto;
+ }
+
+ @include respond-to("medium-up") {
+ flex-grow: 1;
+ flex-shrink: 0;
+ align-items: stretch;
+ display: flex;
+
+ background-color: initial;
+ box-shadow: none;
+ padding: 0;
+ }
+
+ &.is-active {
+ display: block;
+ }
+
+ @include respond-to("medium-up") {
+ .navbar-start {
+ justify-content: flex-start;
+ margin-right: auto;
+ align-items: stretch;
+ display: flex;
+
+ .navbar-item {
+ color: rgba(0,0,0,.7);
+ align-items: center;
+ display: flex;
+ }
+ }
+
+ .navbar-end {
+ justify-content: flex-end;
+ margin-left: auto;
+ align-items: stretch;
+ display: flex;
+ }
+ }
+ }
+
+ .navbar-dropdown {
+ font-size: .875rem;
+ padding-bottom: .5rem;
+ padding-top: .5rem;
+
+ hr {
+ background-color: var(--font-color);
+ border: none;
+ height: 2px;
+ margin: .5rem 0;
+ }
+
+ .navbar-item {
+ cursor: pointer;
+ padding-left: 1.5rem;
+ padding-right: 1.5rem;
+ }
+
+ @include respond-to("medium-up") {
+ background-color: var(--default-color);
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ border-top: 2px solid var(--default-hl-color);
+ box-shadow: 0 8px 8px rgba(10,10,10,.1);
+ display: none;
+ font-size: .875rem;
+ left: 0;
+ min-width: 100%;
+ position: absolute;
+ top: 100%;
+ z-index: 20;
+
+ .navbar-item {
+ white-space: nowrap;
+ padding: .375rem 1rem;
+ padding-right: 3rem;
+ }
+ }
+ }
+
+ img {
+ height: auto;
+ max-width: 100%;
+ }
+
+ a {
+ text-decoration: none;
+ }
+
+ .buttons {
+ align-items: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+
+ .button {
+ margin-right: 0.75rem;
+ }
+
+ &:last-child {
+ margin-bottom: -0.5rem;
+ }
+ }
+}
+
+
+[data-theme="dark"] {
+ .navbar {
+ box-shadow: none;
+ }
+}
\ No newline at end of file
diff --git a/sass/pagination.scss b/sass/pagination.scss
new file mode 100644
index 0000000..ddf2695
--- /dev/null
+++ b/sass/pagination.scss
@@ -0,0 +1,69 @@
+.pagination {
+ font-size: 1rem;
+ align-items: center;
+ display: flex;
+ text-align: center;
+ justify-content: space-between;
+ margin: 0.75rem 0;
+
+
+ .pagination-list {
+ align-items: center;
+ display: flex;
+ text-align: center;
+ flex-wrap: wrap;
+ flex-grow: 1;
+ flex-shrink: 1;
+ justify-content: flex-end;
+
+ @include respond-to("small") {
+ justify-content: center;
+ }
+
+ .pagination-link {
+ align-items: center;
+ border: 1px solid transparent;
+ border-radius: .375em;
+ box-shadow: none;
+ display: inline-flex;
+ font-size: 1rem;
+ height: 2.5em;
+ justify-content: flex-start;
+ line-height: 1.5;
+ padding: calc(.5em - 1px) calc(.75em - 1px);
+ position: relative;
+ vertical-align: top;
+ text-decoration: none;
+ user-select: none;
+ text-align: center;
+ font-size: 1em;
+ justify-content: center;
+ margin: .25rem;
+ border-color: $pagination-border-color;
+ color: var(--font-color);
+ min-width: 2.5em;
+ white-space: nowrap;
+
+ @include transition() {}
+
+ &:hover {
+ border-color: $pagination-hover-color;
+ color: $pagination-hover-color;
+ }
+
+ &.is-disabled {
+ background-color: var(--default-hl-color);
+ border-color: var(--default-hl-color);
+ box-shadow: none;
+ color: var(--disabled-color);
+ opacity: .5;
+ }
+
+ &.is-current {
+ background-color: $primary-color;
+ border-color: $primary-color;
+ color: $button-font-color;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sass/toast.scss b/sass/toast.scss
new file mode 100644
index 0000000..f2434f8
--- /dev/null
+++ b/sass/toast.scss
@@ -0,0 +1,95 @@
+#toastr {
+ visibility: hidden;
+ min-width: 250px;
+ max-width: 360px;
+ position: fixed;
+ z-index: 66;
+ right: 30px;
+ top: 30px;
+ font-size: 17px;
+
+ padding: 1.25rem 2.5rem 1.25rem 1.5rem;
+ border-radius: 6px;
+
+ &.error {
+ background-color: $danger-color;
+ color: $button-alternate-color;
+ }
+
+ &.success {
+ background-color: $success-color;
+ color: $button-font-color;
+ }
+
+ &.show {
+ visibility: visible;
+ animation: toastrFadein 0.5s, toastrFadeout 0.5s 2.5s;
+ }
+
+ button {
+ width: 20px;
+ font-size: 0;
+ height: 20px;
+ max-height: 20px;
+ max-width: 20px;
+ min-height: 20px;
+ min-width: 20px;
+ outline: 0;
+ border: none;
+ border-radius: 9999px;
+ cursor: pointer;
+ pointer-events: auto;
+ display: inline-block;
+ user-select: none;
+ right: .5rem;
+ position: absolute;
+ top: .5rem;
+ background-color: rgba(10, 10, 10, 0.2);
+
+ &:hover {
+ background-color: rgba(10,10,10,.3);
+ }
+
+ &::before,
+ &::after {
+ background-color: var(--default-color);
+ content: "";
+ display: block;
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
+ transform-origin: center center;
+ }
+ &::before {
+ height: 2px;
+ width: 50%;
+ }
+ &::after {
+ height: 50%;
+ width: 2px;
+ }
+ }
+}
+
+@keyframes toastrFadein {
+ from {
+ top: 0;
+ opacity: 0;
+ }
+ to {
+ top: 30px;
+ opacity: 1;
+ }
+}
+
+@keyframes toastrFadeout {
+ from {
+ top: 30px;
+ opacity: 1;
+ }
+ to {
+ top: 0;
+ opacity: 0;
+ }
+}
\ No newline at end of file
diff --git a/src/app.js b/src/app.js
new file mode 100644
index 0000000..79cd620
--- /dev/null
+++ b/src/app.js
@@ -0,0 +1,125 @@
+import path from 'path';
+import express from 'express';
+import cookieParser from 'cookie-parser';
+import passport from 'passport';
+import mongoose from 'mongoose';
+import flash from 'connect-flash';
+import session from 'express-session';
+import MongoStore from 'connect-mongo';
+
+import passportConfig from './libs/passport';
+
+// Import des routes
+import globalRoutes from './routes';
+import authRoutes from './routes/auth';
+
+import {trustProxy, env, mongoDbUri, secret} from './config';
+
+import {isXhr, getBaseUrl} from './helpers';
+
+// import indexmkactRouterApiV1 from "./routes/api/v1/contact";
+
+passportConfig(passport);
+
+mongoose.set('strictQuery', false);
+mongoose
+ .connect(mongoDbUri, {useNewUrlParser: true, useUnifiedTopology: true})
+ .catch(() => {
+ process.exit();
+ });
+
+const sess = {
+ cookie: {
+ maxAge: 86400000,
+ },
+ secret,
+ saveUninitialized: false,
+ resave: false,
+ store: MongoStore.create({
+ mongoUrl: mongoDbUri,
+ mongoOptions: {useNewUrlParser: true, useUnifiedTopology: true},
+ }),
+};
+
+const app = express();
+
+app.set('trust proxy', trustProxy);
+app.use(cookieParser());
+app.use(flash());
+app.use(express.json({limit: '50mb'}));
+app.use(express.urlencoded({extended: false, limit: '50mb'}));
+
+app.use(session(sess));
+
+if (['production'].indexOf(env) !== -1) {
+ sess.cookie.secure = true;
+ /* eslint-disable func-names */
+ app.use((req, res, next) => {
+ if (req.secure) {
+ next();
+ } else {
+ res.redirect(`https://${req.headers.host}${req.url}`);
+ }
+ });
+}
+
+app.use(passport.initialize());
+app.use(passport.session());
+
+app.set('views', path.join(__dirname, '../views'));
+app.set('view engine', 'ejs');
+
+app.use(express.static(path.join(__dirname, '../public')));
+app.use('/uploads', express.static(path.join(__dirname, '../uploads')));
+
+// Init des routes
+app.use('/', globalRoutes);
+app.use('/', authRoutes);
+
+// Handle 404
+app.use((req, res) => {
+ if (isXhr(req)) {
+ res.status(404).send({message: '404: Not found'});
+ } else {
+ res.status(404);
+ res.render('index', {
+ pagename: '404',
+ viewname: 'error',
+ page: {
+ title: '404: Cette page n\'existe pas.',
+ },
+ baseUrl: getBaseUrl(req),
+ params: {},
+ query: {},
+ user: req.user,
+ error: 'La page demandée n\'existe pas sur le server',
+ });
+ }
+});
+
+// Handle 500
+app.use((error, req, res, next) => {
+ if (isXhr(req)) {
+ const {message, errorCode, date} = error;
+ res.status(error.errorCode || 500).send({message, errorCode, date});
+ } else {
+ console.log('ERR:', error);
+ res.status(error.errorCode || 500);
+ res.render('index', {
+ pagename: '500',
+ viewname: 'error',
+ page: {
+ title: '500: Oups… le serveur a crashé !',
+ },
+ baseUrl: getBaseUrl(req),
+ params: {},
+ query: {},
+ user: req.user,
+ error,
+ });
+ }
+});
+
+console.log('Server ready!');
+
+export default app;
diff --git a/src/bin/www.js b/src/bin/www.js
new file mode 100644
index 0000000..9b05f92
--- /dev/null
+++ b/src/bin/www.js
@@ -0,0 +1,52 @@
+#!/usr/bin/env node
+
+/**
+ * Module dependencies.
+ */
+
+import debugLib from 'debug';
+import http from 'http';
+import app from '../app';
+import {port} from '../config';
+
+const debug = debugLib('simple-images-upload:server');
+const server = http.createServer(app);
+
+/**
+ * Event listener for HTTP server "error" event.
+ * @param {*} error
+ */
+function onError(error) {
+ if (error.syscall !== 'listen') {
+ throw error;
+ }
+
+ const bind = typeof port === 'string' ? `Pipe ${port}` : `Port ${port}`;
+
+ switch (error.code) {
+ case 'EACCES':
+ console.error(`${bind} requires elevated privileges`);
+ process.exit(1);
+ break;
+ case 'EADDRINUSE':
+ console.error(`${bind} is already in use`);
+ process.exit(1);
+ break;
+ default:
+ throw error;
+ }
+}
+
+/**
+ * Event listener for HTTP server "listening" event.
+ */
+function onListening() {
+ const addr = server.address();
+ const bind =
+ typeof addr === 'string' ? `pipe ${addr}` : `port ${addr.port}`;
+ debug(`Listening on ${bind}`);
+}
+
+server.listen(port);
+server.on('error', onError);
+server.on('listening', onListening);
diff --git a/src/config/index.js b/src/config/index.js
new file mode 100644
index 0000000..4ead440
--- /dev/null
+++ b/src/config/index.js
@@ -0,0 +1,8 @@
+module.exports = {
+ nodeEnv: process.env.NODE_ENV || 'development',
+ port: parseInt(process.env.PORT || '3001', 10),
+ trustProxy: process.env.TRUST_PROXY || 'loopback',
+ mongoDbUri: process.env.MONGODB_URI || 'mongodb://images-upload-db/upload',
+ secret: process.env.SECRET || 'waemaeMe5ahc6ce1chaeKohKa6Io8Eik',
+ pagination: Number(process.env.PAGINATION || 16),
+};
diff --git a/src/helpers/index.js b/src/helpers/index.js
new file mode 100644
index 0000000..7be0ad0
--- /dev/null
+++ b/src/helpers/index.js
@@ -0,0 +1,14 @@
+export const getBaseUrl = (req) => `${req.protocol}://${req.get('host')}`;
+
+export const isXhr = (req) => {
+ const is = req.xhr;
+ if (!is) {
+ for (let i = 0; i < req.rawHeaders.length; i += 1) {
+ if (req.rawHeaders[i].indexOf('application/json') !== -1) {
+ return true;
+ }
+ }
+ }
+
+ return is;
+};
diff --git a/src/libs/Render.js b/src/libs/Render.js
new file mode 100644
index 0000000..2000cc9
--- /dev/null
+++ b/src/libs/Render.js
@@ -0,0 +1,24 @@
+export default (req, res, error, page, redirectTo) => {
+ if (error) {
+ res.status(500);
+ return res.render('index', {
+ pagename: '500',
+ viewname: '500',
+ page: {
+ title: '500: Oups… le serveur a crashé !',
+ error,
+ },
+ baseUrl: '',
+ params: {},
+ query: {},
+ user: req.user || null,
+ error,
+ });
+ }
+
+ if (redirectTo) {
+ return res.redirect(redirectTo);
+ }
+
+ return res.render('index', page.render());
+};
diff --git a/src/libs/error.js b/src/libs/error.js
new file mode 100644
index 0000000..a4a640c
--- /dev/null
+++ b/src/libs/error.js
@@ -0,0 +1,23 @@
+/**
+ * Classe permettant la gestion des erreurs personilisées
+ */
+class ErrorEvent extends Error {
+ /**
+ * @param {Number} errorCode
+ * @param {String} title
+ * @param {Mixed} ...params
+ */
+ constructor(errorCode, title, ...params) {
+ super(...params);
+
+ if (Error.captureStackTrace) {
+ Error.captureStackTrace(this, ErrorEvent);
+ }
+
+ this.errorCode = parseInt(errorCode, 10);
+ this.title = title;
+ this.date = new Date();
+ }
+}
+
+export default ErrorEvent;
diff --git a/src/libs/format.js b/src/libs/format.js
new file mode 100644
index 0000000..22815a6
--- /dev/null
+++ b/src/libs/format.js
@@ -0,0 +1,39 @@
+/**
+ * Fonction permettant de formater une réponse basée sur la méthode utilisée
+ * @param {Object} req
+ * @param {Object} res
+ * @param {Object} data
+ *
+ * @return {Object}
+ */
+export const sendResponse = (req, res, data) => {
+ let status = 200;
+ const path = req.route.path.split('/');
+
+ switch (req.method) {
+ case 'GET':
+ // INFO: On regarde de quel type de get il s'agit (liste ou item)
+ if (path[path.length - 1].indexOf(':') === 0) {
+ // INFO: Cas d'un item
+ status = !data ? 404 : 200;
+ } else {
+ // INFO: Cas d'une liste
+ status =
+ data.rows === undefined || data.rows.length > 0 ? 200 : 204;
+ }
+
+ return res.status(status).json(data).end();
+ case 'PATCH':
+ return res.status(200).json(data).end();
+ case 'DELETE':
+ return res.status(200).json(data).end();
+ case 'POST':
+ return res.status(201).json(data).end();
+ default:
+ return res.status(500).json({message: 'Not implemented'});
+ }
+};
+
+export default (res, page) => {
+ res.status(200).render('index', page.render());
+};
diff --git a/src/libs/passport.js b/src/libs/passport.js
new file mode 100644
index 0000000..23f6e32
--- /dev/null
+++ b/src/libs/passport.js
@@ -0,0 +1,58 @@
+/* eslint-disable func-names */
+import {Strategy as LocalStrategy} from 'passport-local';
+import {BasicStrategy} from 'passport-http';
+
+import Users from '../models/Users';
+
+export default (passport) => {
+ passport.serializeUser((user, done) => {
+ done(null, user);
+ });
+
+ passport.deserializeUser((user, done) => {
+ done(null, user);
+ });
+ passport.use(
+ 'user',
+ new LocalStrategy(
+ {
+ usernameField: 'email',
+ passwordField: 'password',
+ },
+ (email, password, done) => {
+ Users.findOne({email})
+ .then((user) => {
+ if (!user || !user.validPassword(password)) {
+ return done(
+ null,
+ false,
+ {message: 'Oops! Identifiants incorrects'},
+
+ );
+ }
+
+ return done(null, user);
+ })
+ .catch(done);
+ },
+ ),
+ );
+ passport.use(
+ 'basic',
+ new BasicStrategy((email, password, done) => {
+ Users.findOne({email})
+ .then((user) => {
+ if (!user || !user.validPassword(password)) {
+ return done(
+ null,
+ false,
+ {message: 'Oops! Identifiants incorrects'},
+ );
+ }
+
+ return done(null, user);
+ })
+ .catch(done);
+ }),
+ );
+};
diff --git a/src/middleware/Auth.js b/src/middleware/Auth.js
new file mode 100644
index 0000000..4390419
--- /dev/null
+++ b/src/middleware/Auth.js
@@ -0,0 +1,39 @@
+import Pages from './Pages';
+import Users from '../models/Users';
+
+/**
+ * Classe permettant de gérer les utilisateurs
+ */
+class Auth extends Pages {
+ /**
+ * Méthode permettant de créer un nouvel utilisateur
+ * @param {Req} req
+ * @param {Function} callback
+ *
+ * @return {Function}
+ */
+ async register(req) {
+ const {username, email, password} = req.body;
+ const user = new Users({
+ username,
+ email,
+ salt: password,
+ });
+
+ // user.hash = user.setPassword(password);
+
+ await user.save();
+
+ await new Promise((resolve, reject) => {
+ req.login(user, (errLogin) => {
+ if (errLogin) {
+ return reject(errLogin);
+ }
+
+ return resolve(null);
+ });
+ });
+ }
+}
+
+module.exports = Auth;
diff --git a/src/middleware/Pages.js b/src/middleware/Pages.js
new file mode 100644
index 0000000..3d144a4
--- /dev/null
+++ b/src/middleware/Pages.js
@@ -0,0 +1,60 @@
+// import moment from 'moment';
+import config from '../config';
+import {getBaseUrl} from '../helpers';
+
+/**
+ * Classe permettant de gérer les page du back office
+ */
+class Pages {
+ /**
+ * @param {Object} req
+ * @param {String} viewname
+ */
+ constructor(req, viewname) {
+ this.req = req;
+ this.pageContent = {
+ page: {
+ title: null,
+ user: req.user || {},
+ header: 'partials/header',
+ },
+ viewname: `pages/${viewname}`,
+ baseUrl: getBaseUrl(req),
+ currentPage: req.originalUrl.split('?')[0],
+ // moment,
+ };
+
+ this.user = null;
+ this.pagename = viewname;
+
+ if (req.session && req.session.passport && req.session.passport.user) {
+ this.user = req.session.passport.user;
+ }
+
+ if (!req.query.page) {
+ req.query.page = 1;
+ }
+ if (!req.query.limit) {
+ req.query.limit = config.pagination;
+ }
+ }
+
+ /**
+ * Rendu de la page
+ * @return {Object}
+ */
+ render() {
+ this.pageContent.session = this.req.session;
+ this.pageContent.query = this.req.query;
+ this.pageContent.params = this.req.params;
+ this.pageContent.user = this.user;
+ this.pageContent.pagename = this.pagename;
+ this.pageContent.messages = this.req.session.messages;
+
+ this.req.session.messages = [];
+
+ return this.pageContent;
+ }
+}
+
+module.exports = Pages;
diff --git a/src/middleware/Uploads.js b/src/middleware/Uploads.js
new file mode 100644
index 0000000..86ed062
--- /dev/null
+++ b/src/middleware/Uploads.js
@@ -0,0 +1,175 @@
+import fs, {copyFileSync, mkdirSync, statSync} from 'fs';
+import {join, extname} from 'path';
+import multer from 'multer';
+import sharp from 'sharp';
+import {uid} from 'rand-token';
+
+import Pages from './Pages';
+
+import {getBaseUrl} from '../helpers';
+
+import {pagination} from '../config';
+
+const checkAndCreateDirectory = async (directory) => {
+ try {
+ return statSync(directory);
+ } catch (err) {
+ if (err.errno === -2) {
+ mkdirSync(directory);
+ } else {
+ throw err;
+ }
+ }
+
+ return true;
+};
+
+const resizeImage = async (sourceImage, destImage, w, h) => {
+ return sharp(sourceImage)
+ .resize(w, h, {
+ fit: 'inside',
+ })
+ .toFile(destImage);
+};
+
+/**
+ * Classe permettant la gestion des images
+ */
+class Uploads extends Pages {
+ /**
+ * @param {Object} req
+ * @param {String} viewname
+ */
+ constructor(req, viewname) {
+ super(req, viewname);
+
+ this.upload = multer({
+ storage: multer.diskStorage({}),
+ fileFilter(multerReq, file, cb) {
+ const filetypes = /jpeg|jpg|png/;
+ const mimetype = filetypes.test(file.mimetype);
+ const filExtname = filetypes.test(
+ extname(file.originalname).toLowerCase(),
+ );
+
+ if (mimetype && filExtname) {
+ return cb(null, true);
+ }
+
+ const error = 'Seuls les fichiers de type jpg et png sont acceptés';
+ req.session.messages.push(error);
+ return cb(new Error(error));
+ },
+ }).single('image');
+
+ const baseUrl = getBaseUrl(req);
+ this.baseUploadDir = `${__dirname}/../../uploads/`;
+ this.userUploadDir = join(this.baseUploadDir, req.user._id);
+ this.userUri = `${baseUrl}/uploads/${req.user._id}`;
+ }
+
+ /**
+ *
+ * @param {*} req
+ * @param {*} callback
+ */
+ async postOne(req) {
+ await new Promise((resolve, reject) => {
+ this.upload(req, req.body, (err, data) => {
+ if (err) {
+ return reject(err);
+ }
+
+ resolve(data);
+ });
+ });
+
+ checkAndCreateDirectory(this.baseUploadDir);
+ checkAndCreateDirectory(this.userUploadDir);
+
+ let ext = req.file.originalname.split('.');
+ ext = ext[ext.length - 1];
+ // eslint-disable-next-line max-len
+ const uploadname = `${uid(4)}_${Buffer.from(req.file.originalname).toString('base64')}.${ext}`;
+ const originalFileName = uploadname;
+ const mediumFileName = `medium_${uploadname}`;
+ const smallFileName = `small_${uploadname}`;
+
+ copyFileSync(req.file.path, join(this.userUploadDir, originalFileName));
+
+ await resizeImage(
+ req.file.path,
+ path.join(
+ this.userUploadDir,
+ mediumFileName,
+ ),
+ 800,
+ 600,
+ );
+ await resizeImage(
+ req.file.path,
+ path.join(
+ this.userUploadDir,
+ smallFileName,
+ ),
+ 300,
+ 200,
+ );
+
+ this.pageContent.page.upload = {
+ originalFile: `${this.userUri}/${originalFileName}`,
+ mediumFile: `${this.userUri}/${mediumFileName}`,
+ smallFile: `${this.userUri}/${smallFileName}`,
+ };
+
+ return true;
+ }
+
+ /**
+ * Méthode permettant d'afficher la liste des images d'un utilisateur
+ * @param {Object} req
+ */
+ async getAll(req) {
+ const currentPage = Number(req.query.page || 1);
+ const startAt = (currentPage - 1) * pagination;
+ const endAt = startAt + pagination;
+ const listOfFiles = [];
+ let total = 0;
+
+ checkAndCreateDirectory(this.baseUploadDir);
+ checkAndCreateDirectory(this.userUploadDir);
+
+ const files = fs.readdirSync(this.userUploadDir)
+ .map((v) => {
+ // eslint-disable-next-line max-len
+ return {name: v, time: statSync(join(this.userUploadDir, v)).mtime.getTime()};
+ })
+ .sort(function(a, b) {
+ return b.time - a.time;
+ })
+ .map(function(v) {
+ return v.name;
+ });
+
+ for (let i = 0; i < files.length; i += 1) {
+ const file = files[i];
+ if (file.indexOf('medium_') === 0) {
+ total += 1;
+ if (listOfFiles.length < endAt) {
+ listOfFiles.push({
+ originalFile: `${this.userUri}/${file.replace('medium_', '')}`,
+ mediumFile: `${this.userUri}/${file}`,
+ smallFile: `${this.userUri}/${file.replace('medium_', 'small_')}`,
+ });
+ }
+ }
+ }
+
+ this.pageContent.page.images = listOfFiles.slice(startAt);
+ this.pageContent.page.currentPage = currentPage;
+ // eslint-disable-next-line max-len
+ this.pageContent.page.totalPages = Math.floor(total / pagination) + (total % pagination > 0 ? 1 : 0);
+ }
+}
+
+module.exports = Uploads;
diff --git a/src/models/Users.js b/src/models/Users.js
new file mode 100644
index 0000000..76d586b
--- /dev/null
+++ b/src/models/Users.js
@@ -0,0 +1,58 @@
+/* eslint-disable no-invalid-this */
+/* eslint-disable func-names */
+import mongoose from 'mongoose';
+import uniqueValidator from 'mongoose-unique-validator';
+import crypto from 'crypto';
+
+const UserSchema = new mongoose.Schema(
+ {
+ username: {
+ type: String,
+ unique: true,
+ required: [true, 'username-required'],
+ match: [/^[a-zA-Z0-9]+$/, 'username-match'],
+ index: true,
+ },
+ email: {
+ type: String,
+ lowercase: true,
+ unique: true,
+ required: [true, 'email-required'],
+ match: [/\S+@\S+\.\S+/, 'email-match'],
+ index: true,
+ },
+ hash: String,
+ salt: String,
+ },
+ {timestamps: true},
+);
+
+UserSchema.plugin(uniqueValidator, {message: 'email-dup'});
+
+UserSchema.methods.validPassword = function(password) {
+ const [salt, key] = this.hash.split(':');
+
+ return key === crypto.scryptSync(password, salt, 64).toString('hex');
+};
+
+UserSchema.pre('save', function(next) {
+ const user = this;
+
+ if (!user.isModified('salt')) {
+ return next();
+ }
+
+ const salt = crypto.randomBytes(16).toString('hex');
+
+ return crypto.scrypt(user.salt, salt, 64, (err, derivedKey) => {
+ if (err) {
+ next(err);
+ }
+ this.salt = salt;
+ this.hash = `${salt}:${derivedKey.toString('hex')}`;
+
+ next();
+ });
+});
+
+export default mongoose.model('Users', UserSchema);
diff --git a/src/routes/auth.js b/src/routes/auth.js
new file mode 100644
index 0000000..373291d
--- /dev/null
+++ b/src/routes/auth.js
@@ -0,0 +1,75 @@
+/* eslint-disable func-names */
+import express from 'express';
+import passport from 'passport';
+
+import Pages from '../middleware/Pages';
+import Auth from '../middleware/Auth';
+import render from '../libs/Render';
+
+// eslint-disable-next-line new-cap
+const router = express.Router();
+
+router
+ .route('/connexion')
+ .get((req, res) => {
+ const page = new Pages(req, 'connexion');
+ return render(req, res, null, page);
+ })
+ .post(
+ passport.authenticate('user', {
+ failureRedirect: '/connexion',
+ failureMessage: true,
+ }),
+ (req, res) => {
+ const {next, query} = req.body;
+ let url = `/${next}`;
+
+ if (next) {
+ if (query) {
+ const params = JSON.parse(query);
+ Object.keys(params).forEach((key) => {
+ url += `${url.indexOf('?') === -1 ? '?' : '&'}${key}=${
+ params[key]
+ }`;
+ });
+ }
+ return res.redirect(url);
+ }
+ return res.redirect('/');
+ },
+ );
+
+router
+ .route('/inscription')
+ .get((req, res) => {
+ const page = new Pages(req, 'inscription');
+ return render(req, res, null, page);
+ })
+ .post(async (req, res) => {
+ try {
+ const page = new Auth(req);
+ await page.register(req);
+
+ return res.redirect('/');
+ } catch (err) {
+ if (err.errors) {
+ Object.keys(err.errors).forEach((key) => {
+ req.session.messages.push(err.errors[key].toString());
+ });
+ } else {
+ req.session.messages.push(err);
+ }
+
+ return res.redirect('/inscription');
+ }
+ });
+
+router.route('/se-deconnecter').get((req, res) => {
+ req.session.destroy(() => {
+ req.logout(() =>
+ res.redirect('/'),
+ );
+ });
+});
+
+export default router;
diff --git a/src/routes/index.js b/src/routes/index.js
new file mode 100644
index 0000000..6e89cb3
--- /dev/null
+++ b/src/routes/index.js
@@ -0,0 +1,44 @@
+import express from 'express';
+import {ensureLoggedIn} from 'connect-ensure-login';
+import Uploads from '../middleware/Uploads';
+import render from '../libs/Render';
+
+// eslint-disable-next-line new-cap
+const router = express.Router();
+
+router.route('/').get(ensureLoggedIn('/connexion'), (req, res) => {
+ return res.redirect('/upload');
+});
+
+router
+ .route('/upload')
+ .get(ensureLoggedIn('/connexion'), (req, res) => {
+ const page = new Uploads(req, 'upload');
+ return render(req, res, null, page);
+ })
+ .post(ensureLoggedIn('/connexion'), async (req, res, next) => {
+ try {
+ const page = new Uploads(req, 'upload');
+
+ await page.postOne(req);
+
+ render(req, res, null, page);
+ } catch (err) {
+ next(err);
+ }
+ });
+
+router.route('/gallery')
+ .get(ensureLoggedIn('/connexion'), async (req, res, next) => {
+ try {
+ const page = new Uploads(req, 'gallery');
+
+ await page.getAll(req);
+
+ render(req, res, null, page);
+ } catch (err) {
+ next(err);
+ }
+ });
+
+export default router;
diff --git a/views/error.ejs b/views/error.ejs
new file mode 100644
index 0000000..33bd963
--- /dev/null
+++ b/views/error.ejs
@@ -0,0 +1,10 @@
+<%= page.title %>
+ <% if ( process.env.NODE_ENV !== 'production' ) { %>
+ <%= error %>
+