diff --git a/.prettierrc.js b/.prettierrc.js
deleted file mode 100644
index 9fdebad..0000000
--- a/.prettierrc.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = {
-    semi: false,
-    trailingComma: 'none',
-    singleQuote: true,
-    printWidth: 80,
-    tabWidth: 4
-}
diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 0000000..54856a2
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1,7 @@
+{
+    "semi": false,
+    "trailingComma": "none",
+    "singleQuote": true,
+    "printWidth": 80,
+    "tabWidth": 4
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index c05778d..0000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "editor.formatOnSave": true,
-    "prettier.eslintIntegration": true,
-    "explorer.autoReveal": false,
-    "typescript.tsdk": "node_modules/typescript/lib"
-}
diff --git a/.vscode/template.code-snippets b/.vscode/template.code-snippets
deleted file mode 100644
index bd851af..0000000
--- a/.vscode/template.code-snippets
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-    "Gate template": {
-        "prefix": "template",
-        "body": [
-            "import { PartialTemplate } from '../types/PartialTemplate'",
-            "",
-            "/**",
-            " * The template of the ${1:and} gate",
-            " */",
-            "const ${1}Template: PartialTemplate = ${2:[]}",
-            "",
-            "export default ${1}Template"
-        ]
-    }
-}
diff --git a/build.js b/build.js
new file mode 100644
index 0000000..9e64509
--- /dev/null
+++ b/build.js
@@ -0,0 +1,40 @@
+import * as esbuild from 'esbuild'
+import { htmlPlugin } from '@craftamap/esbuild-plugin-html'
+import { sassPlugin } from 'esbuild-sass-plugin'
+
+const production = process.env.NODE_ENV === 'production'
+const serve = process.env.ESBUILD_SERVE === '1'
+
+const ctx = await esbuild.context({
+    entryPoints: ['src/index.ts'],
+    bundle: production,
+    // minify: production,
+    outdir: 'dist',
+    metafile: true,
+    splitting: true,
+    format: 'esm',
+    target: ['chrome100', 'firefox100'],
+    loader: {
+        '.svg': 'file'
+    },
+    plugins: [
+        htmlPlugin({
+            files: [
+                {
+                    filename: 'index.html',
+                    entryPoints: ['src/index.ts'],
+                    favicon: 'public/favicon.ico',
+                    htmlTemplate: 'public/index.html',
+                    scriptLoading: 'module'
+                    // inline: { js: true }
+                }
+            ]
+        }),
+        sassPlugin({})
+    ]
+})
+
+if (serve) {
+    const { port, host } = await ctx.serve({ servedir: 'dist' })
+    console.log(`Serving on ${host}:${port}`)
+}
diff --git a/dream2nix-packages/erratic-gate/dream-lock.json b/dream2nix-packages/erratic-gate/dream-lock.json
deleted file mode 100644
index 180099d..0000000
--- a/dream2nix-packages/erratic-gate/dream-lock.json
+++ /dev/null
@@ -1,1758 +0,0 @@
-{
-  "_generic": {
-    "defaultPackage": "erratic-gate",
-    "invalidationHash": "d7cc69af70838945912cee9ea31a79e99f80c08da79bce7702e4b46b023933c7",
-    "location": "",
-    "packages": {
-      "erratic-gate": "1.0.0"
-    },
-    "sourcesAggregatedHash": null,
-    "subsystem": "nodejs"
-  },
-  "_subsystem": {
-    "meta": {
-      "license": []
-    },
-    "nodejsVersion": "14"
-  },
-  "cyclicDependencies": {},
-  "dependencies": {
-    "@ampproject/remapping": {
-      "2.2.1": [
-        [ "@jridgewell/gen-mapping", "0.3.3" ],
-        [ "@jridgewell/trace-mapping", "0.3.18" ]
-      ]
-    },
-    "@babel/code-frame": {
-      "7.21.4": [
-        [ "@babel/highlight", "7.18.6" ]
-      ]
-    },
-    "@babel/core": {
-      "7.21.4": [
-        [ "@ampproject/remapping", "2.2.1" ],
-        [ "@babel/code-frame", "7.21.4" ],
-        [ "@babel/generator", "7.21.4" ],
-        [ "@babel/helper-compilation-targets", "7.21.4" ],
-        [ "@babel/helper-module-transforms", "7.21.2" ],
-        [ "@babel/helpers", "7.21.0" ],
-        [ "@babel/parser", "7.21.4" ],
-        [ "@babel/template", "7.20.7" ],
-        [ "@babel/traverse", "7.21.4" ],
-        [ "@babel/types", "7.21.4" ],
-        [ "convert-source-map", "1.9.0" ],
-        [ "debug", "4.3.4" ],
-        [ "gensync", "1.0.0-beta.2" ],
-        [ "json5", "2.2.3" ],
-        [ "semver", "6.3.0" ]
-      ]
-    },
-    "@babel/generator": {
-      "7.21.4": [
-        [ "@babel/types", "7.21.4" ],
-        [ "@jridgewell/gen-mapping", "0.3.3" ],
-        [ "@jridgewell/trace-mapping", "0.3.18" ],
-        [ "jsesc", "2.5.2" ]
-      ]
-    },
-    "@babel/helper-compilation-targets": {
-      "7.21.4": [
-        [ "@babel/compat-data", "7.21.4" ],
-        [ "@babel/helper-validator-option", "7.21.0" ],
-        [ "browserslist", "4.21.5" ],
-        [ "lru-cache", "5.1.1" ],
-        [ "semver", "6.3.0" ]
-      ]
-    },
-    "@babel/helper-function-name": {
-      "7.21.0": [
-        [ "@babel/template", "7.20.7" ],
-        [ "@babel/types", "7.21.4" ]
-      ]
-    },
-    "@babel/helper-hoist-variables": {
-      "7.18.6": [
-        [ "@babel/types", "7.21.4" ]
-      ]
-    },
-    "@babel/helper-module-imports": {
-      "7.21.4": [
-        [ "@babel/types", "7.21.4" ]
-      ]
-    },
-    "@babel/helper-module-transforms": {
-      "7.21.2": [
-        [ "@babel/helper-environment-visitor", "7.18.9" ],
-        [ "@babel/helper-module-imports", "7.21.4" ],
-        [ "@babel/helper-simple-access", "7.20.2" ],
-        [ "@babel/helper-split-export-declaration", "7.18.6" ],
-        [ "@babel/helper-validator-identifier", "7.19.1" ],
-        [ "@babel/template", "7.20.7" ],
-        [ "@babel/traverse", "7.21.4" ],
-        [ "@babel/types", "7.21.4" ]
-      ]
-    },
-    "@babel/helper-simple-access": {
-      "7.20.2": [
-        [ "@babel/types", "7.21.4" ]
-      ]
-    },
-    "@babel/helper-split-export-declaration": {
-      "7.18.6": [
-        [ "@babel/types", "7.21.4" ]
-      ]
-    },
-    "@babel/helpers": {
-      "7.21.0": [
-        [ "@babel/template", "7.20.7" ],
-        [ "@babel/traverse", "7.21.4" ],
-        [ "@babel/types", "7.21.4" ]
-      ]
-    },
-    "@babel/highlight": {
-      "7.18.6": [
-        [ "@babel/helper-validator-identifier", "7.19.1" ],
-        [ "chalk", "2.4.2" ],
-        [ "js-tokens", "4.0.0" ]
-      ]
-    },
-    "@babel/plugin-transform-react-jsx-self": {
-      "7.21.0": [
-        [ "@babel/helper-plugin-utils", "7.20.2" ]
-      ]
-    },
-    "@babel/plugin-transform-react-jsx-source": {
-      "7.19.6": [
-        [ "@babel/helper-plugin-utils", "7.20.2" ]
-      ]
-    },
-    "@babel/runtime": {
-      "7.21.0": [
-        [ "regenerator-runtime", "0.13.11" ]
-      ]
-    },
-    "@babel/template": {
-      "7.20.7": [
-        [ "@babel/code-frame", "7.21.4" ],
-        [ "@babel/parser", "7.21.4" ],
-        [ "@babel/types", "7.21.4" ]
-      ]
-    },
-    "@babel/traverse": {
-      "7.21.4": [
-        [ "@babel/code-frame", "7.21.4" ],
-        [ "@babel/generator", "7.21.4" ],
-        [ "@babel/helper-environment-visitor", "7.18.9" ],
-        [ "@babel/helper-function-name", "7.21.0" ],
-        [ "@babel/helper-hoist-variables", "7.18.6" ],
-        [ "@babel/helper-split-export-declaration", "7.18.6" ],
-        [ "@babel/parser", "7.21.4" ],
-        [ "@babel/types", "7.21.4" ],
-        [ "debug", "4.3.4" ],
-        [ "globals", "11.12.0" ]
-      ]
-    },
-    "@babel/types": {
-      "7.21.4": [
-        [ "@babel/helper-string-parser", "7.19.4" ],
-        [ "@babel/helper-validator-identifier", "7.19.1" ],
-        [ "to-fast-properties", "2.0.0" ]
-      ]
-    },
-    "@jridgewell/gen-mapping": {
-      "0.3.3": [
-        [ "@jridgewell/set-array", "1.1.2" ],
-        [ "@jridgewell/sourcemap-codec", "1.4.15" ],
-        [ "@jridgewell/trace-mapping", "0.3.18" ]
-      ]
-    },
-    "@jridgewell/trace-mapping": {
-      "0.3.18": [
-        [ "@jridgewell/resolve-uri", "3.1.0" ],
-        [ "@jridgewell/sourcemap-codec", "1.4.14" ]
-      ]
-    },
-    "@material-ui/core": {
-      "4.12.4": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "@material-ui/styles", "4.11.5" ],
-        [ "@material-ui/system", "4.12.2" ],
-        [ "@material-ui/types", "5.1.0" ],
-        [ "@material-ui/utils", "4.11.3" ],
-        [ "@types/react-transition-group", "4.4.5" ],
-        [ "clsx", "1.2.1" ],
-        [ "hoist-non-react-statics", "3.3.2" ],
-        [ "popper.js", "1.16.1-lts" ],
-        [ "prop-types", "15.8.1" ],
-        [ "react-is", "17.0.2" ],
-        [ "react-transition-group", "4.4.5" ]
-      ]
-    },
-    "@material-ui/styles": {
-      "4.11.5": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "@emotion/hash", "0.8.0" ],
-        [ "@material-ui/types", "5.1.0" ],
-        [ "@material-ui/utils", "4.11.3" ],
-        [ "clsx", "1.2.1" ],
-        [ "csstype", "2.6.21" ],
-        [ "hoist-non-react-statics", "3.3.2" ],
-        [ "jss", "10.10.0" ],
-        [ "jss-plugin-camel-case", "10.10.0" ],
-        [ "jss-plugin-default-unit", "10.10.0" ],
-        [ "jss-plugin-global", "10.10.0" ],
-        [ "jss-plugin-nested", "10.10.0" ],
-        [ "jss-plugin-props-sort", "10.10.0" ],
-        [ "jss-plugin-rule-value-function", "10.10.0" ],
-        [ "jss-plugin-vendor-prefixer", "10.10.0" ],
-        [ "prop-types", "15.8.1" ]
-      ]
-    },
-    "@material-ui/system": {
-      "4.12.2": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "@material-ui/utils", "4.11.3" ],
-        [ "csstype", "2.6.21" ],
-        [ "prop-types", "15.8.1" ]
-      ]
-    },
-    "@material-ui/utils": {
-      "4.11.3": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "prop-types", "15.8.1" ],
-        [ "react-is", "17.0.2" ]
-      ]
-    },
-    "@types/deepmerge": {
-      "2.2.0": [
-        [ "deepmerge", "4.3.1" ]
-      ]
-    },
-    "@types/history": {
-      "5.0.0": [
-        [ "history", "5.3.0" ]
-      ]
-    },
-    "@types/react": {
-      "18.0.37": [
-        [ "@types/prop-types", "15.7.5" ],
-        [ "@types/scheduler", "0.16.3" ],
-        [ "csstype", "3.1.2" ]
-      ]
-    },
-    "@types/react-router": {
-      "5.1.20": [
-        [ "@types/history", "4.7.11" ],
-        [ "@types/react", "18.0.37" ]
-      ]
-    },
-    "@types/react-router-dom": {
-      "4.3.5": [
-        [ "@types/history", "5.0.0" ],
-        [ "@types/react", "18.0.37" ],
-        [ "@types/react-router", "5.1.20" ]
-      ]
-    },
-    "@types/react-transition-group": {
-      "4.4.5": [
-        [ "@types/react", "18.0.37" ]
-      ]
-    },
-    "@vitejs/plugin-react": {
-      "4.0.0": [
-        [ "@babel/core", "7.21.4" ],
-        [ "@babel/plugin-transform-react-jsx-self", "7.21.0" ],
-        [ "@babel/plugin-transform-react-jsx-source", "7.19.6" ],
-        [ "react-refresh", "0.14.0" ]
-      ]
-    },
-    "ansi-styles": {
-      "3.2.1": [
-        [ "color-convert", "1.9.3" ]
-      ]
-    },
-    "browserslist": {
-      "4.21.5": [
-        [ "caniuse-lite", "1.0.30001480" ],
-        [ "electron-to-chromium", "1.4.368" ],
-        [ "node-releases", "2.0.10" ],
-        [ "update-browserslist-db", "1.0.11" ]
-      ]
-    },
-    "chalk": {
-      "2.4.2": [
-        [ "ansi-styles", "3.2.1" ],
-        [ "escape-string-regexp", "1.0.5" ],
-        [ "supports-color", "5.5.0" ]
-      ]
-    },
-    "color-convert": {
-      "1.9.3": [
-        [ "color-name", "1.1.3" ]
-      ]
-    },
-    "css-vendor": {
-      "2.0.8": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "is-in-browser", "1.1.3" ]
-      ]
-    },
-    "debug": {
-      "4.3.4": [
-        [ "ms", "2.1.2" ]
-      ]
-    },
-    "dom-helpers": {
-      "5.2.1": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "csstype", "3.1.2" ]
-      ]
-    },
-    "erratic-gate": {
-      "1.0.0": [
-        [ "@ampproject/remapping", "2.2.1" ],
-        [ "@babel/code-frame", "7.21.4" ],
-        [ "@babel/compat-data", "7.21.4" ],
-        [ "@babel/core", "7.21.4" ],
-        [ "@babel/generator", "7.21.4" ],
-        [ "@babel/helper-compilation-targets", "7.21.4" ],
-        [ "@babel/helper-environment-visitor", "7.18.9" ],
-        [ "@babel/helper-function-name", "7.21.0" ],
-        [ "@babel/helper-hoist-variables", "7.18.6" ],
-        [ "@babel/helper-module-imports", "7.21.4" ],
-        [ "@babel/helper-module-transforms", "7.21.2" ],
-        [ "@babel/helper-plugin-utils", "7.20.2" ],
-        [ "@babel/helper-simple-access", "7.20.2" ],
-        [ "@babel/helper-split-export-declaration", "7.18.6" ],
-        [ "@babel/helper-string-parser", "7.19.4" ],
-        [ "@babel/helper-validator-identifier", "7.19.1" ],
-        [ "@babel/helper-validator-option", "7.21.0" ],
-        [ "@babel/helpers", "7.21.0" ],
-        [ "@babel/highlight", "7.18.6" ],
-        [ "@babel/parser", "7.21.4" ],
-        [ "@babel/plugin-transform-react-jsx-self", "7.21.0" ],
-        [ "@babel/plugin-transform-react-jsx-source", "7.19.6" ],
-        [ "@babel/runtime", "7.21.0" ],
-        [ "@babel/template", "7.20.7" ],
-        [ "@babel/traverse", "7.21.4" ],
-        [ "@babel/types", "7.21.4" ],
-        [ "@eix-js/utils", "0.0.6" ],
-        [ "@emotion/hash", "0.8.0" ],
-        [ "@esbuild/android-arm", "0.17.17" ],
-        [ "@esbuild/android-arm64", "0.17.17" ],
-        [ "@esbuild/android-x64", "0.17.17" ],
-        [ "@esbuild/darwin-arm64", "0.17.17" ],
-        [ "@esbuild/darwin-x64", "0.17.17" ],
-        [ "@esbuild/freebsd-arm64", "0.17.17" ],
-        [ "@esbuild/freebsd-x64", "0.17.17" ],
-        [ "@esbuild/linux-arm", "0.17.17" ],
-        [ "@esbuild/linux-arm64", "0.17.17" ],
-        [ "@esbuild/linux-ia32", "0.17.17" ],
-        [ "@esbuild/linux-loong64", "0.17.17" ],
-        [ "@esbuild/linux-mips64el", "0.17.17" ],
-        [ "@esbuild/linux-ppc64", "0.17.17" ],
-        [ "@esbuild/linux-riscv64", "0.17.17" ],
-        [ "@esbuild/linux-s390x", "0.17.17" ],
-        [ "@esbuild/linux-x64", "0.17.17" ],
-        [ "@esbuild/netbsd-x64", "0.17.17" ],
-        [ "@esbuild/openbsd-x64", "0.17.17" ],
-        [ "@esbuild/sunos-x64", "0.17.17" ],
-        [ "@esbuild/win32-arm64", "0.17.17" ],
-        [ "@esbuild/win32-ia32", "0.17.17" ],
-        [ "@esbuild/win32-x64", "0.17.17" ],
-        [ "@jridgewell/gen-mapping", "0.3.3" ],
-        [ "@jridgewell/resolve-uri", "3.1.0" ],
-        [ "@jridgewell/set-array", "1.1.2" ],
-        [ "@jridgewell/sourcemap-codec", "1.4.15" ],
-        [ "@jridgewell/trace-mapping", "0.3.18" ],
-        [ "@material-ui/core", "4.12.4" ],
-        [ "@material-ui/styles", "4.11.5" ],
-        [ "@material-ui/system", "4.12.2" ],
-        [ "@material-ui/types", "5.1.0" ],
-        [ "@material-ui/utils", "4.11.3" ],
-        [ "@types/deepmerge", "2.2.0" ],
-        [ "@types/history", "5.0.0" ],
-        [ "@types/mainloop.js", "1.0.5" ],
-        [ "@types/prop-types", "15.7.5" ],
-        [ "@types/react", "18.0.37" ],
-        [ "@types/react-router", "5.1.20" ],
-        [ "@types/react-router-dom", "4.3.5" ],
-        [ "@types/react-transition-group", "4.4.5" ],
-        [ "@types/scheduler", "0.16.3" ],
-        [ "@vitejs/plugin-react", "4.0.0" ],
-        [ "ansi-styles", "3.2.1" ],
-        [ "browserslist", "4.21.5" ],
-        [ "caniuse-lite", "1.0.30001480" ],
-        [ "chalk", "2.4.2" ],
-        [ "classnames", "2.3.2" ],
-        [ "clsx", "1.2.1" ],
-        [ "color-convert", "1.9.3" ],
-        [ "color-name", "1.1.3" ],
-        [ "convert-source-map", "1.9.0" ],
-        [ "css-vendor", "2.0.8" ],
-        [ "csstype", "2.6.21" ],
-        [ "debug", "4.3.4" ],
-        [ "deepmerge", "4.3.1" ],
-        [ "dom-helpers", "5.2.1" ],
-        [ "electron-to-chromium", "1.4.368" ],
-        [ "esbuild", "0.17.17" ],
-        [ "escalade", "3.1.1" ],
-        [ "escape-string-regexp", "1.0.5" ],
-        [ "fsevents", "2.3.2" ],
-        [ "gensync", "1.0.0-beta.2" ],
-        [ "globals", "11.12.0" ],
-        [ "has-flag", "3.0.0" ],
-        [ "history", "5.3.0" ],
-        [ "hoist-non-react-statics", "3.3.2" ],
-        [ "hyphenate-style-name", "1.0.4" ],
-        [ "is-in-browser", "1.1.3" ],
-        [ "isarray", "0.0.1" ],
-        [ "js-tokens", "4.0.0" ],
-        [ "jsesc", "2.5.2" ],
-        [ "json5", "2.2.3" ],
-        [ "jss", "10.10.0" ],
-        [ "jss-plugin-camel-case", "10.10.0" ],
-        [ "jss-plugin-default-unit", "10.10.0" ],
-        [ "jss-plugin-global", "10.10.0" ],
-        [ "jss-plugin-nested", "10.10.0" ],
-        [ "jss-plugin-props-sort", "10.10.0" ],
-        [ "jss-plugin-rule-value-function", "10.10.0" ],
-        [ "jss-plugin-vendor-prefixer", "10.10.0" ],
-        [ "keycode", "2.2.1" ],
-        [ "loose-envify", "1.4.0" ],
-        [ "lru-cache", "5.1.1" ],
-        [ "mainloop.js", "1.0.4" ],
-        [ "ms", "2.1.2" ],
-        [ "nanoid", "3.3.6" ],
-        [ "node-releases", "2.0.10" ],
-        [ "null", "2.0.0" ],
-        [ "object-assign", "4.1.1" ],
-        [ "path-to-regexp", "1.8.0" ],
-        [ "picocolors", "1.0.0" ],
-        [ "popper.js", "1.16.1-lts" ],
-        [ "postcss", "8.4.23" ],
-        [ "prop-types", "15.8.1" ],
-        [ "react", "16.14.0" ],
-        [ "react-dom", "16.14.0" ],
-        [ "react-is", "17.0.2" ],
-        [ "react-refresh", "0.14.0" ],
-        [ "react-router", "5.3.4" ],
-        [ "react-router-dom", "5.3.4" ],
-        [ "react-toastify", "5.5.0" ],
-        [ "react-transition-group", "4.4.5" ],
-        [ "regenerator-runtime", "0.13.11" ],
-        [ "resolve-pathname", "3.0.0" ],
-        [ "rollup", "3.20.6" ],
-        [ "rxjs", "6.6.7" ],
-        [ "rxjs-hooks", "0.5.2" ],
-        [ "scheduler", "0.19.1" ],
-        [ "semver", "6.3.0" ],
-        [ "source-map-js", "1.0.2" ],
-        [ "supports-color", "5.5.0" ],
-        [ "tiny-invariant", "1.3.1" ],
-        [ "tiny-warning", "1.0.3" ],
-        [ "to-fast-properties", "2.0.0" ],
-        [ "tslib", "1.14.1" ],
-        [ "typescript", "5.0.4" ],
-        [ "update-browserslist-db", "1.0.11" ],
-        [ "use-constant", "1.1.1" ],
-        [ "value-equal", "1.0.1" ],
-        [ "vite", "4.3.0" ],
-        [ "yallist", "3.1.1" ]
-      ]
-    },
-    "esbuild": {
-      "0.17.17": [
-        [ "@esbuild/android-arm", "0.17.17" ],
-        [ "@esbuild/android-arm64", "0.17.17" ],
-        [ "@esbuild/android-x64", "0.17.17" ],
-        [ "@esbuild/darwin-arm64", "0.17.17" ],
-        [ "@esbuild/darwin-x64", "0.17.17" ],
-        [ "@esbuild/freebsd-arm64", "0.17.17" ],
-        [ "@esbuild/freebsd-x64", "0.17.17" ],
-        [ "@esbuild/linux-arm", "0.17.17" ],
-        [ "@esbuild/linux-arm64", "0.17.17" ],
-        [ "@esbuild/linux-ia32", "0.17.17" ],
-        [ "@esbuild/linux-loong64", "0.17.17" ],
-        [ "@esbuild/linux-mips64el", "0.17.17" ],
-        [ "@esbuild/linux-ppc64", "0.17.17" ],
-        [ "@esbuild/linux-riscv64", "0.17.17" ],
-        [ "@esbuild/linux-s390x", "0.17.17" ],
-        [ "@esbuild/linux-x64", "0.17.17" ],
-        [ "@esbuild/netbsd-x64", "0.17.17" ],
-        [ "@esbuild/openbsd-x64", "0.17.17" ],
-        [ "@esbuild/sunos-x64", "0.17.17" ],
-        [ "@esbuild/win32-arm64", "0.17.17" ],
-        [ "@esbuild/win32-ia32", "0.17.17" ],
-        [ "@esbuild/win32-x64", "0.17.17" ]
-      ]
-    },
-    "history": {
-      "4.10.1": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "loose-envify", "1.4.0" ],
-        [ "resolve-pathname", "3.0.0" ],
-        [ "tiny-invariant", "1.3.1" ],
-        [ "tiny-warning", "1.0.3" ],
-        [ "value-equal", "1.0.1" ]
-      ],
-      "5.3.0": [
-        [ "@babel/runtime", "7.21.0" ]
-      ]
-    },
-    "hoist-non-react-statics": {
-      "3.3.2": [
-        [ "react-is", "16.13.1" ]
-      ]
-    },
-    "jss": {
-      "10.10.0": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "csstype", "3.1.2" ],
-        [ "is-in-browser", "1.1.3" ],
-        [ "tiny-warning", "1.0.3" ]
-      ]
-    },
-    "jss-plugin-camel-case": {
-      "10.10.0": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "hyphenate-style-name", "1.0.4" ],
-        [ "jss", "10.10.0" ]
-      ]
-    },
-    "jss-plugin-default-unit": {
-      "10.10.0": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "jss", "10.10.0" ]
-      ]
-    },
-    "jss-plugin-global": {
-      "10.10.0": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "jss", "10.10.0" ]
-      ]
-    },
-    "jss-plugin-nested": {
-      "10.10.0": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "jss", "10.10.0" ],
-        [ "tiny-warning", "1.0.3" ]
-      ]
-    },
-    "jss-plugin-props-sort": {
-      "10.10.0": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "jss", "10.10.0" ]
-      ]
-    },
-    "jss-plugin-rule-value-function": {
-      "10.10.0": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "jss", "10.10.0" ],
-        [ "tiny-warning", "1.0.3" ]
-      ]
-    },
-    "jss-plugin-vendor-prefixer": {
-      "10.10.0": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "css-vendor", "2.0.8" ],
-        [ "jss", "10.10.0" ]
-      ]
-    },
-    "loose-envify": {
-      "1.4.0": [
-        [ "js-tokens", "4.0.0" ]
-      ]
-    },
-    "lru-cache": {
-      "5.1.1": [
-        [ "yallist", "3.1.1" ]
-      ]
-    },
-    "path-to-regexp": {
-      "1.8.0": [
-        [ "isarray", "0.0.1" ]
-      ]
-    },
-    "postcss": {
-      "8.4.23": [
-        [ "nanoid", "3.3.6" ],
-        [ "picocolors", "1.0.0" ],
-        [ "source-map-js", "1.0.2" ]
-      ]
-    },
-    "prop-types": {
-      "15.8.1": [
-        [ "loose-envify", "1.4.0" ],
-        [ "object-assign", "4.1.1" ],
-        [ "react-is", "16.13.1" ]
-      ]
-    },
-    "react": {
-      "16.14.0": [
-        [ "loose-envify", "1.4.0" ],
-        [ "object-assign", "4.1.1" ],
-        [ "prop-types", "15.8.1" ]
-      ]
-    },
-    "react-dom": {
-      "16.14.0": [
-        [ "loose-envify", "1.4.0" ],
-        [ "object-assign", "4.1.1" ],
-        [ "prop-types", "15.8.1" ],
-        [ "scheduler", "0.19.1" ]
-      ]
-    },
-    "react-router": {
-      "5.3.4": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "history", "4.10.1" ],
-        [ "hoist-non-react-statics", "3.3.2" ],
-        [ "loose-envify", "1.4.0" ],
-        [ "path-to-regexp", "1.8.0" ],
-        [ "prop-types", "15.8.1" ],
-        [ "react-is", "16.13.1" ],
-        [ "tiny-invariant", "1.3.1" ],
-        [ "tiny-warning", "1.0.3" ]
-      ]
-    },
-    "react-router-dom": {
-      "5.3.4": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "history", "4.10.1" ],
-        [ "loose-envify", "1.4.0" ],
-        [ "prop-types", "15.8.1" ],
-        [ "react-router", "5.3.4" ],
-        [ "tiny-invariant", "1.3.1" ],
-        [ "tiny-warning", "1.0.3" ]
-      ]
-    },
-    "react-toastify": {
-      "5.5.0": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "classnames", "2.3.2" ],
-        [ "prop-types", "15.8.1" ],
-        [ "react-transition-group", "4.4.5" ]
-      ]
-    },
-    "react-transition-group": {
-      "4.4.5": [
-        [ "@babel/runtime", "7.21.0" ],
-        [ "dom-helpers", "5.2.1" ],
-        [ "loose-envify", "1.4.0" ],
-        [ "prop-types", "15.8.1" ]
-      ]
-    },
-    "rollup": {
-      "3.20.6": [
-        [ "fsevents", "2.3.2" ]
-      ]
-    },
-    "rxjs": {
-      "6.6.7": [
-        [ "tslib", "1.14.1" ]
-      ]
-    },
-    "rxjs-hooks": {
-      "0.5.2": [
-        [ "tslib", "1.14.1" ],
-        [ "use-constant", "1.1.1" ]
-      ]
-    },
-    "scheduler": {
-      "0.19.1": [
-        [ "loose-envify", "1.4.0" ],
-        [ "object-assign", "4.1.1" ]
-      ]
-    },
-    "supports-color": {
-      "5.5.0": [
-        [ "has-flag", "3.0.0" ]
-      ]
-    },
-    "update-browserslist-db": {
-      "1.0.11": [
-        [ "escalade", "3.1.1" ],
-        [ "picocolors", "1.0.0" ]
-      ]
-    },
-    "vite": {
-      "4.3.0": [
-        [ "esbuild", "0.17.17" ],
-        [ "fsevents", "2.3.2" ],
-        [ "postcss", "8.4.23" ],
-        [ "rollup", "3.20.6" ]
-      ]
-    }
-  },
-  "sources": {
-    "@ampproject/remapping": {
-      "2.2.1": {
-        "hash": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz"
-      }
-    },
-    "@babel/code-frame": {
-      "7.21.4": {
-        "hash": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz"
-      }
-    },
-    "@babel/compat-data": {
-      "7.21.4": {
-        "hash": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz"
-      }
-    },
-    "@babel/core": {
-      "7.21.4": {
-        "hash": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz"
-      }
-    },
-    "@babel/generator": {
-      "7.21.4": {
-        "hash": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz"
-      }
-    },
-    "@babel/helper-compilation-targets": {
-      "7.21.4": {
-        "hash": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz"
-      }
-    },
-    "@babel/helper-environment-visitor": {
-      "7.18.9": {
-        "hash": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz"
-      }
-    },
-    "@babel/helper-function-name": {
-      "7.21.0": {
-        "hash": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz"
-      }
-    },
-    "@babel/helper-hoist-variables": {
-      "7.18.6": {
-        "hash": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz"
-      }
-    },
-    "@babel/helper-module-imports": {
-      "7.21.4": {
-        "hash": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz"
-      }
-    },
-    "@babel/helper-module-transforms": {
-      "7.21.2": {
-        "hash": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz"
-      }
-    },
-    "@babel/helper-plugin-utils": {
-      "7.20.2": {
-        "hash": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz"
-      }
-    },
-    "@babel/helper-simple-access": {
-      "7.20.2": {
-        "hash": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz"
-      }
-    },
-    "@babel/helper-split-export-declaration": {
-      "7.18.6": {
-        "hash": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz"
-      }
-    },
-    "@babel/helper-string-parser": {
-      "7.19.4": {
-        "hash": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz"
-      }
-    },
-    "@babel/helper-validator-identifier": {
-      "7.19.1": {
-        "hash": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz"
-      }
-    },
-    "@babel/helper-validator-option": {
-      "7.21.0": {
-        "hash": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz"
-      }
-    },
-    "@babel/helpers": {
-      "7.21.0": {
-        "hash": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz"
-      }
-    },
-    "@babel/highlight": {
-      "7.18.6": {
-        "hash": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz"
-      }
-    },
-    "@babel/parser": {
-      "7.21.4": {
-        "hash": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz"
-      }
-    },
-    "@babel/plugin-transform-react-jsx-self": {
-      "7.21.0": {
-        "hash": "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz"
-      }
-    },
-    "@babel/plugin-transform-react-jsx-source": {
-      "7.19.6": {
-        "hash": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz"
-      }
-    },
-    "@babel/runtime": {
-      "7.21.0": {
-        "hash": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz"
-      }
-    },
-    "@babel/template": {
-      "7.20.7": {
-        "hash": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz"
-      }
-    },
-    "@babel/traverse": {
-      "7.21.4": {
-        "hash": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz"
-      }
-    },
-    "@babel/types": {
-      "7.21.4": {
-        "hash": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz"
-      }
-    },
-    "@eix-js/utils": {
-      "0.0.6": {
-        "hash": "sha512-VyxwQAN5bNKmSzafo9Ma9nNDdVqxrN+ikp9SqC/OyvbAyihfZm17R8yjexXnIyfGeZstRAuUvSIw1bUzrL+RqA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@eix-js/utils/-/utils-0.0.6.tgz"
-      }
-    },
-    "@emotion/hash": {
-      "0.8.0": {
-        "hash": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz"
-      }
-    },
-    "@esbuild/android-arm": {
-      "0.17.17": {
-        "hash": "sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.17.tgz"
-      }
-    },
-    "@esbuild/android-arm64": {
-      "0.17.17": {
-        "hash": "sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/android-x64": {
-      "0.17.17": {
-        "hash": "sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/darwin-arm64": {
-      "0.17.17": {
-        "hash": "sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/darwin-x64": {
-      "0.17.17": {
-        "hash": "sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/freebsd-arm64": {
-      "0.17.17": {
-        "hash": "sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/freebsd-x64": {
-      "0.17.17": {
-        "hash": "sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/linux-arm": {
-      "0.17.17": {
-        "hash": "sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.17.tgz"
-      }
-    },
-    "@esbuild/linux-arm64": {
-      "0.17.17": {
-        "hash": "sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/linux-ia32": {
-      "0.17.17": {
-        "hash": "sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.17.tgz"
-      }
-    },
-    "@esbuild/linux-loong64": {
-      "0.17.17": {
-        "hash": "sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/linux-mips64el": {
-      "0.17.17": {
-        "hash": "sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.17.tgz"
-      }
-    },
-    "@esbuild/linux-ppc64": {
-      "0.17.17": {
-        "hash": "sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/linux-riscv64": {
-      "0.17.17": {
-        "hash": "sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/linux-s390x": {
-      "0.17.17": {
-        "hash": "sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.17.tgz"
-      }
-    },
-    "@esbuild/linux-x64": {
-      "0.17.17": {
-        "hash": "sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/netbsd-x64": {
-      "0.17.17": {
-        "hash": "sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/openbsd-x64": {
-      "0.17.17": {
-        "hash": "sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/sunos-x64": {
-      "0.17.17": {
-        "hash": "sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/win32-arm64": {
-      "0.17.17": {
-        "hash": "sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.17.tgz"
-      }
-    },
-    "@esbuild/win32-ia32": {
-      "0.17.17": {
-        "hash": "sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.17.tgz"
-      }
-    },
-    "@esbuild/win32-x64": {
-      "0.17.17": {
-        "hash": "sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.17.tgz"
-      }
-    },
-    "@jridgewell/gen-mapping": {
-      "0.3.3": {
-        "hash": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz"
-      }
-    },
-    "@jridgewell/resolve-uri": {
-      "3.1.0": {
-        "hash": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz"
-      }
-    },
-    "@jridgewell/set-array": {
-      "1.1.2": {
-        "hash": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz"
-      }
-    },
-    "@jridgewell/sourcemap-codec": {
-      "1.4.14": {
-        "hash": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
-      },
-      "1.4.15": {
-        "hash": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"
-      }
-    },
-    "@jridgewell/trace-mapping": {
-      "0.3.18": {
-        "hash": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz"
-      }
-    },
-    "@material-ui/core": {
-      "4.12.4": {
-        "hash": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz"
-      }
-    },
-    "@material-ui/styles": {
-      "4.11.5": {
-        "hash": "sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.5.tgz"
-      }
-    },
-    "@material-ui/system": {
-      "4.12.2": {
-        "hash": "sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.2.tgz"
-      }
-    },
-    "@material-ui/types": {
-      "5.1.0": {
-        "hash": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz"
-      }
-    },
-    "@material-ui/utils": {
-      "4.11.3": {
-        "hash": "sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz"
-      }
-    },
-    "@types/deepmerge": {
-      "2.2.0": {
-        "hash": "sha512-FEQYDHh6+Q+QXKSrIY46m+/lAmAj/bk4KpLaam+hArmzaVpMBHLcfwOH2Q2UOkWM7XsdY9PmZpGyPAjh/JRGhQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@types/deepmerge/-/deepmerge-2.2.0.tgz"
-      }
-    },
-    "@types/history": {
-      "4.7.11": {
-        "hash": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz"
-      },
-      "5.0.0": {
-        "hash": "sha512-hy8b7Y1J8OGe6LbAjj3xniQrj3v6lsivCcrmf4TzSgPzLkhIeKgc5IZnT7ReIqmEuodjfO8EYAuoFvIrHi/+jQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@types/history/-/history-5.0.0.tgz"
-      }
-    },
-    "@types/mainloop.js": {
-      "1.0.5": {
-        "hash": "sha512-AYDlcqJYi90NCz/049HKTP7rB0yat+hDAE3QTepHsi4A+9dER8QD5L9v5+basUSNxGosit8H5eDxWE4M44yHpg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@types/mainloop.js/-/mainloop.js-1.0.5.tgz"
-      }
-    },
-    "@types/prop-types": {
-      "15.7.5": {
-        "hash": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz"
-      }
-    },
-    "@types/react": {
-      "18.0.37": {
-        "hash": "sha512-4yaZZtkRN3ZIQD3KSEwkfcik8s0SWV+82dlJot1AbGYHCzJkWP3ENBY6wYeDRmKZ6HkrgoGAmR2HqdwYGp6OEw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@types/react/-/react-18.0.37.tgz"
-      }
-    },
-    "@types/react-router": {
-      "5.1.20": {
-        "hash": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz"
-      }
-    },
-    "@types/react-router-dom": {
-      "4.3.5": {
-        "hash": "sha512-eFajSUASYbPHg2BDM1G8Btx+YqGgvROPIg6sBhl3O4kbDdYXdFdfrgQFf/pcBuQVObjfT9AL/dd15jilR5DIEA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-4.3.5.tgz"
-      }
-    },
-    "@types/react-transition-group": {
-      "4.4.5": {
-        "hash": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz"
-      }
-    },
-    "@types/scheduler": {
-      "0.16.3": {
-        "hash": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz"
-      }
-    },
-    "@vitejs/plugin-react": {
-      "4.0.0": {
-        "hash": "sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.0.0.tgz"
-      }
-    },
-    "ansi-styles": {
-      "3.2.1": {
-        "hash": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
-      }
-    },
-    "browserslist": {
-      "4.21.5": {
-        "hash": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz"
-      }
-    },
-    "caniuse-lite": {
-      "1.0.30001480": {
-        "hash": "sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001480.tgz"
-      }
-    },
-    "chalk": {
-      "2.4.2": {
-        "hash": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
-      }
-    },
-    "classnames": {
-      "2.3.2": {
-        "hash": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz"
-      }
-    },
-    "clsx": {
-      "1.2.1": {
-        "hash": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz"
-      }
-    },
-    "color-convert": {
-      "1.9.3": {
-        "hash": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
-      }
-    },
-    "color-name": {
-      "1.1.3": {
-        "hash": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
-      }
-    },
-    "convert-source-map": {
-      "1.9.0": {
-        "hash": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz"
-      }
-    },
-    "css-vendor": {
-      "2.0.8": {
-        "hash": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz"
-      }
-    },
-    "csstype": {
-      "2.6.21": {
-        "hash": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz"
-      },
-      "3.1.2": {
-        "hash": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz"
-      }
-    },
-    "debug": {
-      "4.3.4": {
-        "hash": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
-      }
-    },
-    "deepmerge": {
-      "4.3.1": {
-        "hash": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz"
-      }
-    },
-    "dom-helpers": {
-      "5.2.1": {
-        "hash": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz"
-      }
-    },
-    "electron-to-chromium": {
-      "1.4.368": {
-        "hash": "sha512-e2aeCAixCj9M7nJxdB/wDjO6mbYX+lJJxSJCXDzlr5YPGYVofuJwGN9nKg2o6wWInjX6XmxRinn3AeJMK81ltw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.368.tgz"
-      }
-    },
-    "esbuild": {
-      "0.17.17": {
-        "hash": "sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.17.tgz"
-      }
-    },
-    "escalade": {
-      "3.1.1": {
-        "hash": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
-      }
-    },
-    "escape-string-regexp": {
-      "1.0.5": {
-        "hash": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
-      }
-    },
-    "fsevents": {
-      "2.3.2": {
-        "hash": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
-      }
-    },
-    "gensync": {
-      "1.0.0-beta.2": {
-        "hash": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
-      }
-    },
-    "globals": {
-      "11.12.0": {
-        "hash": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
-      }
-    },
-    "has-flag": {
-      "3.0.0": {
-        "hash": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
-      }
-    },
-    "history": {
-      "4.10.1": {
-        "hash": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/history/-/history-4.10.1.tgz"
-      },
-      "5.3.0": {
-        "hash": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/history/-/history-5.3.0.tgz"
-      }
-    },
-    "hoist-non-react-statics": {
-      "3.3.2": {
-        "hash": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz"
-      }
-    },
-    "hyphenate-style-name": {
-      "1.0.4": {
-        "hash": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz"
-      }
-    },
-    "is-in-browser": {
-      "1.1.3": {
-        "hash": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz"
-      }
-    },
-    "isarray": {
-      "0.0.1": {
-        "hash": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
-      }
-    },
-    "js-tokens": {
-      "4.0.0": {
-        "hash": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
-      }
-    },
-    "jsesc": {
-      "2.5.2": {
-        "hash": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
-      }
-    },
-    "json5": {
-      "2.2.3": {
-        "hash": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz"
-      }
-    },
-    "jss": {
-      "10.10.0": {
-        "hash": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz"
-      }
-    },
-    "jss-plugin-camel-case": {
-      "10.10.0": {
-        "hash": "sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz"
-      }
-    },
-    "jss-plugin-default-unit": {
-      "10.10.0": {
-        "hash": "sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz"
-      }
-    },
-    "jss-plugin-global": {
-      "10.10.0": {
-        "hash": "sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz"
-      }
-    },
-    "jss-plugin-nested": {
-      "10.10.0": {
-        "hash": "sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz"
-      }
-    },
-    "jss-plugin-props-sort": {
-      "10.10.0": {
-        "hash": "sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz"
-      }
-    },
-    "jss-plugin-rule-value-function": {
-      "10.10.0": {
-        "hash": "sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz"
-      }
-    },
-    "jss-plugin-vendor-prefixer": {
-      "10.10.0": {
-        "hash": "sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz"
-      }
-    },
-    "keycode": {
-      "2.2.1": {
-        "hash": "sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/keycode/-/keycode-2.2.1.tgz"
-      }
-    },
-    "loose-envify": {
-      "1.4.0": {
-        "hash": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
-      }
-    },
-    "lru-cache": {
-      "5.1.1": {
-        "hash": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"
-      }
-    },
-    "mainloop.js": {
-      "1.0.4": {
-        "hash": "sha512-zAyzCCwJcSDv777sGZTnDaXQdZs8POeysoI5YcSJaFKRVTnFRUQFlnV2B1Wn8N5KRygMOyKCr6cOerAnItkY3A==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/mainloop.js/-/mainloop.js-1.0.4.tgz"
-      }
-    },
-    "ms": {
-      "2.1.2": {
-        "hash": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
-      }
-    },
-    "nanoid": {
-      "3.3.6": {
-        "hash": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz"
-      }
-    },
-    "node-releases": {
-      "2.0.10": {
-        "hash": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz"
-      }
-    },
-    "null": {
-      "2.0.0": {
-        "hash": "sha512-CVSXPeB7Af0Sku7w8N8EKkgcwvQ6wGNfs6bly419A/q6dpIwzaHIk+65+La2g80ml21uxVXQo8xReTMI2WEYbA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/null/-/null-2.0.0.tgz"
-      }
-    },
-    "object-assign": {
-      "4.1.1": {
-        "hash": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
-      }
-    },
-    "path-to-regexp": {
-      "1.8.0": {
-        "hash": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz"
-      }
-    },
-    "picocolors": {
-      "1.0.0": {
-        "hash": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
-      }
-    },
-    "popper.js": {
-      "1.16.1-lts": {
-        "hash": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz"
-      }
-    },
-    "postcss": {
-      "8.4.23": {
-        "hash": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz"
-      }
-    },
-    "prop-types": {
-      "15.8.1": {
-        "hash": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
-      }
-    },
-    "react": {
-      "16.14.0": {
-        "hash": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/react/-/react-16.14.0.tgz"
-      }
-    },
-    "react-dom": {
-      "16.14.0": {
-        "hash": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz"
-      }
-    },
-    "react-is": {
-      "16.13.1": {
-        "hash": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
-      },
-      "17.0.2": {
-        "hash": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
-      }
-    },
-    "react-refresh": {
-      "0.14.0": {
-        "hash": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz"
-      }
-    },
-    "react-router": {
-      "5.3.4": {
-        "hash": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz"
-      }
-    },
-    "react-router-dom": {
-      "5.3.4": {
-        "hash": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz"
-      }
-    },
-    "react-toastify": {
-      "5.5.0": {
-        "hash": "sha512-jsVme7jALIFGRyQsri/g4YTsRuaaGI70T6/ikjwZMB4mwTZaCWqj5NqxhGrRStKlJc5npXKKvKeqTiRGQl78LQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/react-toastify/-/react-toastify-5.5.0.tgz"
-      }
-    },
-    "react-transition-group": {
-      "4.4.5": {
-        "hash": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz"
-      }
-    },
-    "regenerator-runtime": {
-      "0.13.11": {
-        "hash": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz"
-      }
-    },
-    "resolve-pathname": {
-      "3.0.0": {
-        "hash": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz"
-      }
-    },
-    "rollup": {
-      "3.20.6": {
-        "hash": "sha512-2yEB3nQXp/tBQDN0hJScJQheXdvU2wFhh6ld7K/aiZ1vYcak6N/BKjY1QrU6BvO2JWYS8bEs14FRaxXosxy2zw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/rollup/-/rollup-3.20.6.tgz"
-      }
-    },
-    "rxjs": {
-      "6.6.7": {
-        "hash": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz"
-      }
-    },
-    "rxjs-hooks": {
-      "0.5.2": {
-        "hash": "sha512-sm2FMw1CbcYM7x4CRQ9OLiDtwpgQaiG8owURC2rB/iw7txpGSMU3BN25/wm19cMctezZsTM2EeH7jiyBqSfuSw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/rxjs-hooks/-/rxjs-hooks-0.5.2.tgz"
-      }
-    },
-    "scheduler": {
-      "0.19.1": {
-        "hash": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz"
-      }
-    },
-    "semver": {
-      "6.3.0": {
-        "hash": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
-      }
-    },
-    "source-map-js": {
-      "1.0.2": {
-        "hash": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
-      }
-    },
-    "supports-color": {
-      "5.5.0": {
-        "hash": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
-      }
-    },
-    "tiny-invariant": {
-      "1.3.1": {
-        "hash": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz"
-      }
-    },
-    "tiny-warning": {
-      "1.0.3": {
-        "hash": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz"
-      }
-    },
-    "to-fast-properties": {
-      "2.0.0": {
-        "hash": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
-      }
-    },
-    "tslib": {
-      "1.14.1": {
-        "hash": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
-      }
-    },
-    "typescript": {
-      "5.0.4": {
-        "hash": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz"
-      }
-    },
-    "update-browserslist-db": {
-      "1.0.11": {
-        "hash": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz"
-      }
-    },
-    "use-constant": {
-      "1.1.1": {
-        "hash": "sha512-sy2ttlE4kuAnNbp2P6a5aTZiGYwsZojkqaGZ31yDDjIurteUS8GOcYiPGmJ3y/LHOHkdazDdVRBZPzH3RZHffA==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/use-constant/-/use-constant-1.1.1.tgz"
-      }
-    },
-    "value-equal": {
-      "1.0.1": {
-        "hash": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz"
-      }
-    },
-    "vite": {
-      "4.3.0": {
-        "hash": "sha512-JTGFgDh3dVxeGBpuQX04Up+JZmuG6wu9414Ei36vQzaEruY/M4K0AgwtuB2b4HaBgB7R8l+LHxjB0jcgz4d2qQ==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/vite/-/vite-4.3.0.tgz"
-      }
-    },
-    "yallist": {
-      "3.1.1": {
-        "hash": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
-        "type": "http",
-        "url": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"
-      }
-    }
-  }
-}
diff --git a/flake.lock b/flake.lock
index f8dbe8d..6d6efac 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,160 +1,15 @@
 {
   "nodes": {
-    "all-cabal-json": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1665552503,
-        "narHash": "sha256-r14RmRSwzv5c+bWKUDaze6pXM7nOsiz1H8nvFHJvufc=",
-        "owner": "nix-community",
-        "repo": "all-cabal-json",
-        "rev": "d7c0434eebffb305071404edcf9d5cd99703878e",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-community",
-        "ref": "hackage",
-        "repo": "all-cabal-json",
-        "type": "github"
-      }
-    },
-    "crane": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1670900067,
-        "narHash": "sha256-VXVa+KBfukhmWizaiGiHRVX/fuk66P8dgSFfkVN4/MY=",
-        "owner": "ipetkov",
-        "repo": "crane",
-        "rev": "59b31b41a589c0a65e4a1f86b0e5eac68081468b",
-        "type": "github"
-      },
-      "original": {
-        "owner": "ipetkov",
-        "repo": "crane",
-        "type": "github"
-      }
-    },
-    "devshell": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1663445644,
-        "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=",
-        "owner": "numtide",
-        "repo": "devshell",
-        "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66",
-        "type": "github"
-      },
-      "original": {
-        "owner": "numtide",
-        "repo": "devshell",
-        "type": "github"
-      }
-    },
-    "dream2nix": {
+    "flake-utils": {
       "inputs": {
-        "all-cabal-json": "all-cabal-json",
-        "crane": "crane",
-        "devshell": "devshell",
-        "drv-parts": "drv-parts",
-        "flake-compat": "flake-compat",
-        "flake-parts": "flake-parts",
-        "flake-utils-pre-commit": "flake-utils-pre-commit",
-        "ghc-utils": "ghc-utils",
-        "gomod2nix": "gomod2nix",
-        "mach-nix": "mach-nix",
-        "nix-pypi-fetcher": "nix-pypi-fetcher",
-        "nixpkgs": "nixpkgs",
-        "nixpkgsV1": "nixpkgsV1",
-        "poetry2nix": "poetry2nix",
-        "pre-commit-hooks": "pre-commit-hooks",
-        "pruned-racket-catalog": "pruned-racket-catalog"
+        "systems": "systems"
       },
       "locked": {
-        "lastModified": 1681981547,
-        "narHash": "sha256-HiDkvZ9FyRC14nsgZ9DQjDpQF7XaqtTSFVrxIk+8ASY=",
-        "owner": "nix-community",
-        "repo": "dream2nix",
-        "rev": "5982515961d9d9d39c15fb161770ba989bb90781",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-community",
-        "repo": "dream2nix",
-        "type": "github"
-      }
-    },
-    "drv-parts": {
-      "inputs": {
-        "flake-compat": [
-          "dream2nix",
-          "flake-compat"
-        ],
-        "flake-parts": [
-          "dream2nix",
-          "flake-parts"
-        ],
-        "nixpkgs": [
-          "dream2nix",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1680698112,
-        "narHash": "sha256-FgnobN/DvCjEsc0UAZEAdPLkL4IZi2ZMnu2K2bUaElc=",
-        "owner": "davhau",
-        "repo": "drv-parts",
-        "rev": "e8c2ec1157dc1edb002989669a0dbd935f430201",
-        "type": "github"
-      },
-      "original": {
-        "owner": "davhau",
-        "repo": "drv-parts",
-        "type": "github"
-      }
-    },
-    "flake-compat": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1673956053,
-        "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
-        "owner": "edolstra",
-        "repo": "flake-compat",
-        "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
-        "type": "github"
-      },
-      "original": {
-        "owner": "edolstra",
-        "repo": "flake-compat",
-        "type": "github"
-      }
-    },
-    "flake-parts": {
-      "inputs": {
-        "nixpkgs-lib": [
-          "dream2nix",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1675933616,
-        "narHash": "sha256-/rczJkJHtx16IFxMmAWu5nNYcSXNg1YYXTHoGjLrLUA=",
-        "owner": "hercules-ci",
-        "repo": "flake-parts",
-        "rev": "47478a4a003e745402acf63be7f9a092d51b83d7",
-        "type": "github"
-      },
-      "original": {
-        "owner": "hercules-ci",
-        "repo": "flake-parts",
-        "type": "github"
-      }
-    },
-    "flake-utils-pre-commit": {
-      "locked": {
-        "lastModified": 1644229661,
-        "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
+        "lastModified": 1694529238,
+        "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
         "owner": "numtide",
         "repo": "flake-utils",
-        "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
+        "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
         "type": "github"
       },
       "original": {
@@ -163,161 +18,38 @@
         "type": "github"
       }
     },
-    "ghc-utils": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1662774800,
-        "narHash": "sha256-1Rd2eohGUw/s1tfvkepeYpg8kCEXiIot0RijapUjAkE=",
-        "ref": "refs/heads/master",
-        "rev": "bb3a2d3dc52ff0253fb9c2812bd7aa2da03e0fea",
-        "revCount": 1072,
-        "type": "git",
-        "url": "https://gitlab.haskell.org/bgamari/ghc-utils"
-      },
-      "original": {
-        "type": "git",
-        "url": "https://gitlab.haskell.org/bgamari/ghc-utils"
-      }
-    },
-    "gomod2nix": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1627572165,
-        "narHash": "sha256-MFpwnkvQpauj799b4QTBJQFEddbD02+Ln5k92QyHOSk=",
-        "owner": "tweag",
-        "repo": "gomod2nix",
-        "rev": "67f22dd738d092c6ba88e420350ada0ed4992ae8",
-        "type": "github"
-      },
-      "original": {
-        "owner": "tweag",
-        "repo": "gomod2nix",
-        "type": "github"
-      }
-    },
-    "mach-nix": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1634711045,
-        "narHash": "sha256-m5A2Ty88NChLyFhXucECj6+AuiMZPHXNbw+9Kcs7F6Y=",
-        "owner": "DavHau",
-        "repo": "mach-nix",
-        "rev": "4433f74a97b94b596fa6cd9b9c0402104aceef5d",
-        "type": "github"
-      },
-      "original": {
-        "id": "mach-nix",
-        "type": "indirect"
-      }
-    },
-    "nix-pypi-fetcher": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1669065297,
-        "narHash": "sha256-UStjXjNIuIm7SzMOWvuYWIHBkPUKQ8Id63BMJjnIDoA=",
-        "owner": "DavHau",
-        "repo": "nix-pypi-fetcher",
-        "rev": "a9885ac6a091576b5195d547ac743d45a2a615ac",
-        "type": "github"
-      },
-      "original": {
-        "owner": "DavHau",
-        "repo": "nix-pypi-fetcher",
-        "type": "github"
-      }
-    },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1665580254,
-        "narHash": "sha256-hO61XPkp1Hphl4HGNzj1VvDH5URt7LI6LaY/385Eul4=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "f634d427b0224a5f531ea5aa10c3960ba6ec5f0f",
-        "type": "github"
+        "lastModified": 1695360818,
+        "narHash": "sha256-JlkN3R/SSoMTa+CasbxS1gq+GpGxXQlNZRUh9+LIy/0=",
+        "path": "/nix/store/09yvj6yyxspzfivv91bcxwrjxawpk1g2-source",
+        "rev": "e35dcc04a3853da485a396bdd332217d0ac9054f",
+        "type": "path"
       },
       "original": {
         "id": "nixpkgs",
-        "ref": "nixos-unstable",
         "type": "indirect"
       }
     },
-    "nixpkgsV1": {
-      "locked": {
-        "lastModified": 1678500271,
-        "narHash": "sha256-tRBLElf6f02HJGG0ZR7znMNFv/Uf7b2fFInpTHiHaSE=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "5eb98948b66de29f899c7fe27ae112a47964baf8",
-        "type": "github"
-      },
-      "original": {
-        "id": "nixpkgs",
-        "ref": "nixos-22.11",
-        "type": "indirect"
-      }
-    },
-    "poetry2nix": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1666918719,
-        "narHash": "sha256-BkK42fjAku+2WgCOv2/1NrPa754eQPV7gPBmoKQBWlc=",
-        "owner": "nix-community",
-        "repo": "poetry2nix",
-        "rev": "289efb187123656a116b915206e66852f038720e",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-community",
-        "ref": "1.36.0",
-        "repo": "poetry2nix",
-        "type": "github"
-      }
-    },
-    "pre-commit-hooks": {
-      "inputs": {
-        "flake-utils": [
-          "dream2nix",
-          "flake-utils-pre-commit"
-        ],
-        "nixpkgs": [
-          "dream2nix",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1646153636,
-        "narHash": "sha256-AlWHMzK+xJ1mG267FdT8dCq/HvLCA6jwmx2ZUy5O8tY=",
-        "owner": "cachix",
-        "repo": "pre-commit-hooks.nix",
-        "rev": "b6bc0b21e1617e2b07d8205e7fae7224036dfa4b",
-        "type": "github"
-      },
-      "original": {
-        "owner": "cachix",
-        "repo": "pre-commit-hooks.nix",
-        "type": "github"
-      }
-    },
-    "pruned-racket-catalog": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1672537287,
-        "narHash": "sha256-SuOvXVcLfakw18oJB/PuRMyvGyGG1+CQD3R+TGHIv44=",
-        "owner": "nix-community",
-        "repo": "pruned-racket-catalog",
-        "rev": "c8b89557fb53b36efa2ee48a769c7364df0f6262",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-community",
-        "ref": "catalog",
-        "repo": "pruned-racket-catalog",
-        "type": "github"
-      }
-    },
     "root": {
       "inputs": {
-        "dream2nix": "dream2nix"
+        "flake-utils": "flake-utils",
+        "nixpkgs": "nixpkgs"
+      }
+    },
+    "systems": {
+      "locked": {
+        "lastModified": 1681028828,
+        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+        "owner": "nix-systems",
+        "repo": "default",
+        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-systems",
+        "repo": "default",
+        "type": "github"
       }
     }
   },
diff --git a/flake.nix b/flake.nix
index 7dbfe0d..4828c98 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,12 +1,21 @@
 {
-  inputs.dream2nix.url = "github:nix-community/dream2nix";
-  outputs = inputs:
-    inputs.dream2nix.lib.makeFlakeOutputs {
-      systems = [ "x86_64-linux" ];
-      config.projectRoot = ./.;
-      source = ./.;
-      projects = ./projects.toml;
-    };
+  description = "Logic gate simulator";
+  inputs.flake-utils.url = "github:numtide/flake-utils";
+
+  outputs = { nixpkgs, flake-utils, ... }:
+    flake-utils.lib.eachDefaultSystem
+      (system:
+        let pkgs = nixpkgs.legacyPackages.${system};
+        in
+        {
+          devShells.default =
+            pkgs.mkShell {
+              buildInputs = with pkgs; with nodePackages_latest; [
+                nodejs
+              ];
+            };
+        }
+      );
 
   # {{{ Caching and whatnot
   nixConfig = {
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..6fb649a
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,2344 @@
+{
+    "name": "erratic-gate",
+    "version": "1.0.0",
+    "lockfileVersion": 3,
+    "requires": true,
+    "packages": {
+        "": {
+            "name": "erratic-gate",
+            "version": "1.0.0",
+            "dependencies": {
+                "@eix-js/utils": "0.0.6",
+                "@material-ui/core": "^4.2.1",
+                "deepmerge": "^4.0.0",
+                "keycode": "^2.2.0",
+                "mainloop.js": "^1.0.4",
+                "react": "^16.8.6",
+                "react-dom": "^16.8.6",
+                "react-router-dom": "^5.0.1",
+                "react-toastify": "^5.3.2",
+                "rxjs": "^6.5.2",
+                "rxjs-hooks": "^0.5.1"
+            },
+            "devDependencies": {
+                "@craftamap/esbuild-plugin-html": "^0.6.1",
+                "@types/deepmerge": "^2.2.0",
+                "@types/mainloop.js": "^1.0.5",
+                "@types/node": "^20.8.9",
+                "@types/react-dom": "^18.2.14",
+                "@types/react-router-dom": "^4.3.4",
+                "@xbuildr/html": "^0.0.0",
+                "esbuild": "^0.19.5",
+                "esbuild-sass-plugin": "^2.16.0",
+                "typescript": "^5.0.2"
+            }
+        },
+        "node_modules/@babel/runtime": {
+            "version": "7.23.2",
+            "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz",
+            "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==",
+            "dependencies": {
+                "regenerator-runtime": "^0.14.0"
+            },
+            "engines": {
+                "node": ">=6.9.0"
+            }
+        },
+        "node_modules/@craftamap/esbuild-plugin-html": {
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/@craftamap/esbuild-plugin-html/-/esbuild-plugin-html-0.6.1.tgz",
+            "integrity": "sha512-FNOxFrdAozLgNbV1HZH2gVjLDax4hFxFfVH/qntvkMEkcBO2ZCIBjqlSmmmuLLi3/QyCJAaFnduBJ74jIw8zUg==",
+            "dev": true,
+            "dependencies": {
+                "jsdom": "^17.0.0",
+                "lodash.template": "^4.5.0"
+            },
+            "engines": {
+                "node": ">13"
+            },
+            "peerDependencies": {
+                "esbuild": ">=0.15.10"
+            }
+        },
+        "node_modules/@eix-js/utils": {
+            "version": "0.0.6",
+            "resolved": "https://registry.npmjs.org/@eix-js/utils/-/utils-0.0.6.tgz",
+            "integrity": "sha512-VyxwQAN5bNKmSzafo9Ma9nNDdVqxrN+ikp9SqC/OyvbAyihfZm17R8yjexXnIyfGeZstRAuUvSIw1bUzrL+RqA=="
+        },
+        "node_modules/@emotion/hash": {
+            "version": "0.8.0",
+            "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
+            "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
+        },
+        "node_modules/@esbuild/android-arm": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz",
+            "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==",
+            "cpu": [
+                "arm"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "android"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/android-arm64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz",
+            "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==",
+            "cpu": [
+                "arm64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "android"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/android-x64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz",
+            "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==",
+            "cpu": [
+                "x64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "android"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/darwin-arm64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz",
+            "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==",
+            "cpu": [
+                "arm64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "darwin"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/darwin-x64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz",
+            "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==",
+            "cpu": [
+                "x64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "darwin"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/freebsd-arm64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz",
+            "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==",
+            "cpu": [
+                "arm64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "freebsd"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/freebsd-x64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz",
+            "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==",
+            "cpu": [
+                "x64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "freebsd"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/linux-arm": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz",
+            "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==",
+            "cpu": [
+                "arm"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "linux"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/linux-arm64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz",
+            "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==",
+            "cpu": [
+                "arm64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "linux"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/linux-ia32": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz",
+            "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==",
+            "cpu": [
+                "ia32"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "linux"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/linux-loong64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz",
+            "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==",
+            "cpu": [
+                "loong64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "linux"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/linux-mips64el": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz",
+            "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==",
+            "cpu": [
+                "mips64el"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "linux"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/linux-ppc64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz",
+            "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==",
+            "cpu": [
+                "ppc64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "linux"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/linux-riscv64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz",
+            "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==",
+            "cpu": [
+                "riscv64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "linux"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/linux-s390x": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz",
+            "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==",
+            "cpu": [
+                "s390x"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "linux"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/linux-x64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz",
+            "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==",
+            "cpu": [
+                "x64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "linux"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/netbsd-x64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz",
+            "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==",
+            "cpu": [
+                "x64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "netbsd"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/openbsd-x64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz",
+            "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==",
+            "cpu": [
+                "x64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "openbsd"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/sunos-x64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz",
+            "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==",
+            "cpu": [
+                "x64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "sunos"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/win32-arm64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz",
+            "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==",
+            "cpu": [
+                "arm64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "win32"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/win32-ia32": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz",
+            "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==",
+            "cpu": [
+                "ia32"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "win32"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@esbuild/win32-x64": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz",
+            "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==",
+            "cpu": [
+                "x64"
+            ],
+            "dev": true,
+            "optional": true,
+            "os": [
+                "win32"
+            ],
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/@material-ui/core": {
+            "version": "4.12.4",
+            "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz",
+            "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==",
+            "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.",
+            "dependencies": {
+                "@babel/runtime": "^7.4.4",
+                "@material-ui/styles": "^4.11.5",
+                "@material-ui/system": "^4.12.2",
+                "@material-ui/types": "5.1.0",
+                "@material-ui/utils": "^4.11.3",
+                "@types/react-transition-group": "^4.2.0",
+                "clsx": "^1.0.4",
+                "hoist-non-react-statics": "^3.3.2",
+                "popper.js": "1.16.1-lts",
+                "prop-types": "^15.7.2",
+                "react-is": "^16.8.0 || ^17.0.0",
+                "react-transition-group": "^4.4.0"
+            },
+            "engines": {
+                "node": ">=8.0.0"
+            },
+            "funding": {
+                "type": "opencollective",
+                "url": "https://opencollective.com/material-ui"
+            },
+            "peerDependencies": {
+                "@types/react": "^16.8.6 || ^17.0.0",
+                "react": "^16.8.0 || ^17.0.0",
+                "react-dom": "^16.8.0 || ^17.0.0"
+            },
+            "peerDependenciesMeta": {
+                "@types/react": {
+                    "optional": true
+                }
+            }
+        },
+        "node_modules/@material-ui/styles": {
+            "version": "4.11.5",
+            "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.5.tgz",
+            "integrity": "sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==",
+            "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.",
+            "dependencies": {
+                "@babel/runtime": "^7.4.4",
+                "@emotion/hash": "^0.8.0",
+                "@material-ui/types": "5.1.0",
+                "@material-ui/utils": "^4.11.3",
+                "clsx": "^1.0.4",
+                "csstype": "^2.5.2",
+                "hoist-non-react-statics": "^3.3.2",
+                "jss": "^10.5.1",
+                "jss-plugin-camel-case": "^10.5.1",
+                "jss-plugin-default-unit": "^10.5.1",
+                "jss-plugin-global": "^10.5.1",
+                "jss-plugin-nested": "^10.5.1",
+                "jss-plugin-props-sort": "^10.5.1",
+                "jss-plugin-rule-value-function": "^10.5.1",
+                "jss-plugin-vendor-prefixer": "^10.5.1",
+                "prop-types": "^15.7.2"
+            },
+            "engines": {
+                "node": ">=8.0.0"
+            },
+            "funding": {
+                "type": "opencollective",
+                "url": "https://opencollective.com/material-ui"
+            },
+            "peerDependencies": {
+                "@types/react": "^16.8.6 || ^17.0.0",
+                "react": "^16.8.0 || ^17.0.0",
+                "react-dom": "^16.8.0 || ^17.0.0"
+            },
+            "peerDependenciesMeta": {
+                "@types/react": {
+                    "optional": true
+                }
+            }
+        },
+        "node_modules/@material-ui/system": {
+            "version": "4.12.2",
+            "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.2.tgz",
+            "integrity": "sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw==",
+            "dependencies": {
+                "@babel/runtime": "^7.4.4",
+                "@material-ui/utils": "^4.11.3",
+                "csstype": "^2.5.2",
+                "prop-types": "^15.7.2"
+            },
+            "engines": {
+                "node": ">=8.0.0"
+            },
+            "funding": {
+                "type": "opencollective",
+                "url": "https://opencollective.com/material-ui"
+            },
+            "peerDependencies": {
+                "@types/react": "^16.8.6 || ^17.0.0",
+                "react": "^16.8.0 || ^17.0.0",
+                "react-dom": "^16.8.0 || ^17.0.0"
+            },
+            "peerDependenciesMeta": {
+                "@types/react": {
+                    "optional": true
+                }
+            }
+        },
+        "node_modules/@material-ui/types": {
+            "version": "5.1.0",
+            "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz",
+            "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==",
+            "peerDependencies": {
+                "@types/react": "*"
+            },
+            "peerDependenciesMeta": {
+                "@types/react": {
+                    "optional": true
+                }
+            }
+        },
+        "node_modules/@material-ui/utils": {
+            "version": "4.11.3",
+            "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz",
+            "integrity": "sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==",
+            "dependencies": {
+                "@babel/runtime": "^7.4.4",
+                "prop-types": "^15.7.2",
+                "react-is": "^16.8.0 || ^17.0.0"
+            },
+            "engines": {
+                "node": ">=8.0.0"
+            },
+            "peerDependencies": {
+                "react": "^16.8.0 || ^17.0.0",
+                "react-dom": "^16.8.0 || ^17.0.0"
+            }
+        },
+        "node_modules/@tootallnate/once": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
+            "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
+            "dev": true,
+            "engines": {
+                "node": ">= 6"
+            }
+        },
+        "node_modules/@types/deepmerge": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/@types/deepmerge/-/deepmerge-2.2.0.tgz",
+            "integrity": "sha512-FEQYDHh6+Q+QXKSrIY46m+/lAmAj/bk4KpLaam+hArmzaVpMBHLcfwOH2Q2UOkWM7XsdY9PmZpGyPAjh/JRGhQ==",
+            "deprecated": "This is a stub types definition. deepmerge provides its own type definitions, so you do not need this installed.",
+            "dev": true,
+            "dependencies": {
+                "deepmerge": "*"
+            }
+        },
+        "node_modules/@types/history": {
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/@types/history/-/history-5.0.0.tgz",
+            "integrity": "sha512-hy8b7Y1J8OGe6LbAjj3xniQrj3v6lsivCcrmf4TzSgPzLkhIeKgc5IZnT7ReIqmEuodjfO8EYAuoFvIrHi/+jQ==",
+            "deprecated": "This is a stub types definition. history provides its own type definitions, so you do not need this installed.",
+            "dev": true,
+            "dependencies": {
+                "history": "*"
+            }
+        },
+        "node_modules/@types/mainloop.js": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/@types/mainloop.js/-/mainloop.js-1.0.6.tgz",
+            "integrity": "sha512-5TQ7X0/SE54c9OIvO5/TO1JVuslMfFPpGsQQ9aKmtX2v6NzQ5Oyk7/Qj9Trm/zI+wdJfd+8VqeOIfeLHsumKpw==",
+            "dev": true
+        },
+        "node_modules/@types/node": {
+            "version": "20.8.9",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.9.tgz",
+            "integrity": "sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg==",
+            "dev": true,
+            "dependencies": {
+                "undici-types": "~5.26.4"
+            }
+        },
+        "node_modules/@types/prop-types": {
+            "version": "15.7.9",
+            "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz",
+            "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g=="
+        },
+        "node_modules/@types/react": {
+            "version": "17.0.69",
+            "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.69.tgz",
+            "integrity": "sha512-klEeru//GhiQvXUBayz0Q4l3rKHWsBR/EUOhOeow6hK2jV7MlO44+8yEk6+OtPeOlRfnpUnrLXzGK+iGph5aeg==",
+            "dependencies": {
+                "@types/prop-types": "*",
+                "@types/scheduler": "*",
+                "csstype": "^3.0.2"
+            }
+        },
+        "node_modules/@types/react-dom": {
+            "version": "18.2.14",
+            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.14.tgz",
+            "integrity": "sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==",
+            "dev": true,
+            "dependencies": {
+                "@types/react": "*"
+            }
+        },
+        "node_modules/@types/react-router": {
+            "version": "5.1.20",
+            "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz",
+            "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==",
+            "dev": true,
+            "dependencies": {
+                "@types/history": "^4.7.11",
+                "@types/react": "*"
+            }
+        },
+        "node_modules/@types/react-router-dom": {
+            "version": "4.3.5",
+            "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-4.3.5.tgz",
+            "integrity": "sha512-eFajSUASYbPHg2BDM1G8Btx+YqGgvROPIg6sBhl3O4kbDdYXdFdfrgQFf/pcBuQVObjfT9AL/dd15jilR5DIEA==",
+            "dev": true,
+            "dependencies": {
+                "@types/history": "*",
+                "@types/react": "*",
+                "@types/react-router": "*"
+            }
+        },
+        "node_modules/@types/react-router/node_modules/@types/history": {
+            "version": "4.7.11",
+            "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz",
+            "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==",
+            "dev": true
+        },
+        "node_modules/@types/react-transition-group": {
+            "version": "4.4.8",
+            "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.8.tgz",
+            "integrity": "sha512-QmQ22q+Pb+HQSn04NL3HtrqHwYMf4h3QKArOy5F8U5nEVMaihBs3SR10WiOM1iwPz5jIo8x/u11al+iEGZZrvg==",
+            "dependencies": {
+                "@types/react": "*"
+            }
+        },
+        "node_modules/@types/react/node_modules/csstype": {
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
+            "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+        },
+        "node_modules/@types/scheduler": {
+            "version": "0.16.5",
+            "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.5.tgz",
+            "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw=="
+        },
+        "node_modules/@xbuildr/html": {
+            "version": "0.0.0",
+            "resolved": "https://registry.npmjs.org/@xbuildr/html/-/html-0.0.0.tgz",
+            "integrity": "sha512-mJ7Az/T9eBvs7u7rnhdGw6iBJANE3JnmXhJMQnjrZkjZOfDgstMjBB92TD3SgkIwWmckRI+z7xBStsKUVeG0fg==",
+            "dev": true,
+            "dependencies": {
+                "cheerio": "^1.0.0-rc.12",
+                "tslib": "^2.4.0"
+            },
+            "engines": {
+                "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+            },
+            "funding": {
+                "url": "https://opencollective.com/unts"
+            },
+            "peerDependencies": {
+                "esbuild": ">=0.14.42"
+            }
+        },
+        "node_modules/@xbuildr/html/node_modules/tslib": {
+            "version": "2.6.2",
+            "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+            "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
+            "dev": true
+        },
+        "node_modules/abab": {
+            "version": "2.0.6",
+            "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
+            "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
+            "dev": true
+        },
+        "node_modules/acorn": {
+            "version": "8.11.2",
+            "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
+            "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
+            "dev": true,
+            "bin": {
+                "acorn": "bin/acorn"
+            },
+            "engines": {
+                "node": ">=0.4.0"
+            }
+        },
+        "node_modules/acorn-globals": {
+            "version": "6.0.0",
+            "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
+            "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
+            "dev": true,
+            "dependencies": {
+                "acorn": "^7.1.1",
+                "acorn-walk": "^7.1.1"
+            }
+        },
+        "node_modules/acorn-globals/node_modules/acorn": {
+            "version": "7.4.1",
+            "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+            "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+            "dev": true,
+            "bin": {
+                "acorn": "bin/acorn"
+            },
+            "engines": {
+                "node": ">=0.4.0"
+            }
+        },
+        "node_modules/acorn-walk": {
+            "version": "7.2.0",
+            "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
+            "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
+            "dev": true,
+            "engines": {
+                "node": ">=0.4.0"
+            }
+        },
+        "node_modules/agent-base": {
+            "version": "6.0.2",
+            "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+            "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+            "dev": true,
+            "dependencies": {
+                "debug": "4"
+            },
+            "engines": {
+                "node": ">= 6.0.0"
+            }
+        },
+        "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/asynckit": {
+            "version": "0.4.0",
+            "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+            "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+            "dev": true
+        },
+        "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/boolbase": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+            "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+            "dev": true
+        },
+        "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/browser-process-hrtime": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
+            "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==",
+            "dev": true
+        },
+        "node_modules/cheerio": {
+            "version": "1.0.0-rc.12",
+            "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
+            "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
+            "dev": true,
+            "dependencies": {
+                "cheerio-select": "^2.1.0",
+                "dom-serializer": "^2.0.0",
+                "domhandler": "^5.0.3",
+                "domutils": "^3.0.1",
+                "htmlparser2": "^8.0.1",
+                "parse5": "^7.0.0",
+                "parse5-htmlparser2-tree-adapter": "^7.0.0"
+            },
+            "engines": {
+                "node": ">= 6"
+            },
+            "funding": {
+                "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
+            }
+        },
+        "node_modules/cheerio-select": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
+            "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
+            "dev": true,
+            "dependencies": {
+                "boolbase": "^1.0.0",
+                "css-select": "^5.1.0",
+                "css-what": "^6.1.0",
+                "domelementtype": "^2.3.0",
+                "domhandler": "^5.0.3",
+                "domutils": "^3.0.1"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/fb55"
+            }
+        },
+        "node_modules/cheerio/node_modules/parse5": {
+            "version": "7.1.2",
+            "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+            "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+            "dev": true,
+            "dependencies": {
+                "entities": "^4.4.0"
+            },
+            "funding": {
+                "url": "https://github.com/inikulin/parse5?sponsor=1"
+            }
+        },
+        "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/classnames": {
+            "version": "2.3.2",
+            "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
+            "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
+        },
+        "node_modules/clsx": {
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
+            "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/combined-stream": {
+            "version": "1.0.8",
+            "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+            "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+            "dev": true,
+            "dependencies": {
+                "delayed-stream": "~1.0.0"
+            },
+            "engines": {
+                "node": ">= 0.8"
+            }
+        },
+        "node_modules/css-select": {
+            "version": "5.1.0",
+            "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
+            "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+            "dev": true,
+            "dependencies": {
+                "boolbase": "^1.0.0",
+                "css-what": "^6.1.0",
+                "domhandler": "^5.0.2",
+                "domutils": "^3.0.1",
+                "nth-check": "^2.0.1"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/fb55"
+            }
+        },
+        "node_modules/css-vendor": {
+            "version": "2.0.8",
+            "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz",
+            "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==",
+            "dependencies": {
+                "@babel/runtime": "^7.8.3",
+                "is-in-browser": "^1.0.2"
+            }
+        },
+        "node_modules/css-what": {
+            "version": "6.1.0",
+            "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+            "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+            "dev": true,
+            "engines": {
+                "node": ">= 6"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/fb55"
+            }
+        },
+        "node_modules/cssom": {
+            "version": "0.5.0",
+            "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
+            "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==",
+            "dev": true
+        },
+        "node_modules/cssstyle": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
+            "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
+            "dev": true,
+            "dependencies": {
+                "cssom": "~0.3.6"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/cssstyle/node_modules/cssom": {
+            "version": "0.3.8",
+            "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+            "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
+            "dev": true
+        },
+        "node_modules/csstype": {
+            "version": "2.6.21",
+            "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
+            "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
+        },
+        "node_modules/data-urls": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
+            "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
+            "dev": true,
+            "dependencies": {
+                "abab": "^2.0.6",
+                "whatwg-mimetype": "^3.0.0",
+                "whatwg-url": "^11.0.0"
+            },
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/data-urls/node_modules/tr46": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
+            "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
+            "dev": true,
+            "dependencies": {
+                "punycode": "^2.1.1"
+            },
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/data-urls/node_modules/webidl-conversions": {
+            "version": "7.0.0",
+            "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+            "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+            "dev": true,
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/data-urls/node_modules/whatwg-mimetype": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
+            "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
+            "dev": true,
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/data-urls/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==",
+            "dev": true,
+            "dependencies": {
+                "tr46": "^3.0.0",
+                "webidl-conversions": "^7.0.0"
+            },
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/debug": {
+            "version": "4.3.4",
+            "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+            "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+            "dev": true,
+            "dependencies": {
+                "ms": "2.1.2"
+            },
+            "engines": {
+                "node": ">=6.0"
+            },
+            "peerDependenciesMeta": {
+                "supports-color": {
+                    "optional": true
+                }
+            }
+        },
+        "node_modules/decimal.js": {
+            "version": "10.4.3",
+            "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
+            "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
+            "dev": true
+        },
+        "node_modules/deepmerge": {
+            "version": "4.3.1",
+            "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+            "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/delayed-stream": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+            "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+            "dev": true,
+            "engines": {
+                "node": ">=0.4.0"
+            }
+        },
+        "node_modules/dom-helpers": {
+            "version": "5.2.1",
+            "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
+            "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+            "dependencies": {
+                "@babel/runtime": "^7.8.7",
+                "csstype": "^3.0.2"
+            }
+        },
+        "node_modules/dom-helpers/node_modules/csstype": {
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
+            "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+        },
+        "node_modules/dom-serializer": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+            "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+            "dev": true,
+            "dependencies": {
+                "domelementtype": "^2.3.0",
+                "domhandler": "^5.0.2",
+                "entities": "^4.2.0"
+            },
+            "funding": {
+                "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+            }
+        },
+        "node_modules/domelementtype": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+            "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+            "dev": true,
+            "funding": [
+                {
+                    "type": "github",
+                    "url": "https://github.com/sponsors/fb55"
+                }
+            ]
+        },
+        "node_modules/domexception": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
+            "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
+            "dev": true,
+            "dependencies": {
+                "webidl-conversions": "^5.0.0"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/domexception/node_modules/webidl-conversions": {
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
+            "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==",
+            "dev": true,
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/domhandler": {
+            "version": "5.0.3",
+            "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+            "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+            "dev": true,
+            "dependencies": {
+                "domelementtype": "^2.3.0"
+            },
+            "engines": {
+                "node": ">= 4"
+            },
+            "funding": {
+                "url": "https://github.com/fb55/domhandler?sponsor=1"
+            }
+        },
+        "node_modules/domutils": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
+            "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+            "dev": true,
+            "dependencies": {
+                "dom-serializer": "^2.0.0",
+                "domelementtype": "^2.3.0",
+                "domhandler": "^5.0.3"
+            },
+            "funding": {
+                "url": "https://github.com/fb55/domutils?sponsor=1"
+            }
+        },
+        "node_modules/entities": {
+            "version": "4.5.0",
+            "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+            "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+            "dev": true,
+            "engines": {
+                "node": ">=0.12"
+            },
+            "funding": {
+                "url": "https://github.com/fb55/entities?sponsor=1"
+            }
+        },
+        "node_modules/esbuild": {
+            "version": "0.19.5",
+            "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz",
+            "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==",
+            "dev": true,
+            "hasInstallScript": true,
+            "bin": {
+                "esbuild": "bin/esbuild"
+            },
+            "engines": {
+                "node": ">=12"
+            },
+            "optionalDependencies": {
+                "@esbuild/android-arm": "0.19.5",
+                "@esbuild/android-arm64": "0.19.5",
+                "@esbuild/android-x64": "0.19.5",
+                "@esbuild/darwin-arm64": "0.19.5",
+                "@esbuild/darwin-x64": "0.19.5",
+                "@esbuild/freebsd-arm64": "0.19.5",
+                "@esbuild/freebsd-x64": "0.19.5",
+                "@esbuild/linux-arm": "0.19.5",
+                "@esbuild/linux-arm64": "0.19.5",
+                "@esbuild/linux-ia32": "0.19.5",
+                "@esbuild/linux-loong64": "0.19.5",
+                "@esbuild/linux-mips64el": "0.19.5",
+                "@esbuild/linux-ppc64": "0.19.5",
+                "@esbuild/linux-riscv64": "0.19.5",
+                "@esbuild/linux-s390x": "0.19.5",
+                "@esbuild/linux-x64": "0.19.5",
+                "@esbuild/netbsd-x64": "0.19.5",
+                "@esbuild/openbsd-x64": "0.19.5",
+                "@esbuild/sunos-x64": "0.19.5",
+                "@esbuild/win32-arm64": "0.19.5",
+                "@esbuild/win32-ia32": "0.19.5",
+                "@esbuild/win32-x64": "0.19.5"
+            }
+        },
+        "node_modules/esbuild-sass-plugin": {
+            "version": "2.16.0",
+            "resolved": "https://registry.npmjs.org/esbuild-sass-plugin/-/esbuild-sass-plugin-2.16.0.tgz",
+            "integrity": "sha512-mGCe9MxNYvZ+j77Q/QFO+rwUGA36mojDXkOhtVmoyz1zwYbMaNrtVrmXwwYDleS/UMKTNU3kXuiTtPiAD3K+Pw==",
+            "dev": true,
+            "dependencies": {
+                "resolve": "^1.22.6",
+                "sass": "^1.7.3"
+            },
+            "peerDependencies": {
+                "esbuild": "^0.19.4"
+            }
+        },
+        "node_modules/escodegen": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
+            "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
+            "dev": true,
+            "dependencies": {
+                "esprima": "^4.0.1",
+                "estraverse": "^5.2.0",
+                "esutils": "^2.0.2"
+            },
+            "bin": {
+                "escodegen": "bin/escodegen.js",
+                "esgenerate": "bin/esgenerate.js"
+            },
+            "engines": {
+                "node": ">=6.0"
+            },
+            "optionalDependencies": {
+                "source-map": "~0.6.1"
+            }
+        },
+        "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==",
+            "dev": true,
+            "bin": {
+                "esparse": "bin/esparse.js",
+                "esvalidate": "bin/esvalidate.js"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "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/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/form-data": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+            "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+            "dev": true,
+            "dependencies": {
+                "asynckit": "^0.4.0",
+                "combined-stream": "^1.0.8",
+                "mime-types": "^2.1.12"
+            },
+            "engines": {
+                "node": ">= 6"
+            }
+        },
+        "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.2",
+            "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+            "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+            "dev": true,
+            "funding": {
+                "url": "https://github.com/sponsors/ljharb"
+            }
+        },
+        "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/hasown": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
+            "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+            "dev": true,
+            "dependencies": {
+                "function-bind": "^1.1.2"
+            },
+            "engines": {
+                "node": ">= 0.4"
+            }
+        },
+        "node_modules/history": {
+            "version": "5.3.0",
+            "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz",
+            "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==",
+            "dev": true,
+            "dependencies": {
+                "@babel/runtime": "^7.7.6"
+            }
+        },
+        "node_modules/hoist-non-react-statics": {
+            "version": "3.3.2",
+            "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+            "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+            "dependencies": {
+                "react-is": "^16.7.0"
+            }
+        },
+        "node_modules/hoist-non-react-statics/node_modules/react-is": {
+            "version": "16.13.1",
+            "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+            "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+        },
+        "node_modules/html-encoding-sniffer": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
+            "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
+            "dev": true,
+            "dependencies": {
+                "whatwg-encoding": "^1.0.5"
+            },
+            "engines": {
+                "node": ">=10"
+            }
+        },
+        "node_modules/htmlparser2": {
+            "version": "8.0.2",
+            "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+            "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
+            "dev": true,
+            "funding": [
+                "https://github.com/fb55/htmlparser2?sponsor=1",
+                {
+                    "type": "github",
+                    "url": "https://github.com/sponsors/fb55"
+                }
+            ],
+            "dependencies": {
+                "domelementtype": "^2.3.0",
+                "domhandler": "^5.0.3",
+                "domutils": "^3.0.1",
+                "entities": "^4.4.0"
+            }
+        },
+        "node_modules/http-proxy-agent": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
+            "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
+            "dev": true,
+            "dependencies": {
+                "@tootallnate/once": "1",
+                "agent-base": "6",
+                "debug": "4"
+            },
+            "engines": {
+                "node": ">= 6"
+            }
+        },
+        "node_modules/https-proxy-agent": {
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+            "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+            "dev": true,
+            "dependencies": {
+                "agent-base": "6",
+                "debug": "4"
+            },
+            "engines": {
+                "node": ">= 6"
+            }
+        },
+        "node_modules/hyphenate-style-name": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
+            "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
+        },
+        "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==",
+            "dev": true,
+            "dependencies": {
+                "safer-buffer": ">= 2.1.2 < 3"
+            },
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "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/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-core-module": {
+            "version": "2.13.1",
+            "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+            "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+            "dev": true,
+            "dependencies": {
+                "hasown": "^2.0.0"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/ljharb"
+            }
+        },
+        "node_modules/is-extglob": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+            "integrity": "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-in-browser": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
+            "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g=="
+        },
+        "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-potential-custom-element-name": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+            "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
+            "dev": true
+        },
+        "node_modules/isarray": {
+            "version": "0.0.1",
+            "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+            "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
+        },
+        "node_modules/js-tokens": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+            "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+        },
+        "node_modules/jsdom": {
+            "version": "17.0.0",
+            "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-17.0.0.tgz",
+            "integrity": "sha512-MUq4XdqwtNurZDVeKScENMPHnkgmdIvMzZ1r1NSwHkDuaqI6BouPjr+17COo4/19oLNnmdpFDPOHVpgIZmZ+VA==",
+            "dev": true,
+            "dependencies": {
+                "abab": "^2.0.5",
+                "acorn": "^8.4.1",
+                "acorn-globals": "^6.0.0",
+                "cssom": "^0.5.0",
+                "cssstyle": "^2.3.0",
+                "data-urls": "^3.0.0",
+                "decimal.js": "^10.3.1",
+                "domexception": "^2.0.1",
+                "escodegen": "^2.0.0",
+                "form-data": "^4.0.0",
+                "html-encoding-sniffer": "^2.0.1",
+                "http-proxy-agent": "^4.0.1",
+                "https-proxy-agent": "^5.0.0",
+                "is-potential-custom-element-name": "^1.0.1",
+                "nwsapi": "^2.2.0",
+                "parse5": "6.0.1",
+                "saxes": "^5.0.1",
+                "symbol-tree": "^3.2.4",
+                "tough-cookie": "^4.0.0",
+                "w3c-hr-time": "^1.0.2",
+                "w3c-xmlserializer": "^2.0.0",
+                "webidl-conversions": "^6.1.0",
+                "whatwg-encoding": "^1.0.5",
+                "whatwg-mimetype": "^2.3.0",
+                "whatwg-url": "^9.0.0",
+                "ws": "^8.0.0",
+                "xml-name-validator": "^3.0.0"
+            },
+            "engines": {
+                "node": ">=12"
+            },
+            "peerDependencies": {
+                "canvas": "^2.5.0"
+            },
+            "peerDependenciesMeta": {
+                "canvas": {
+                    "optional": true
+                }
+            }
+        },
+        "node_modules/jss": {
+            "version": "10.10.0",
+            "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz",
+            "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==",
+            "dependencies": {
+                "@babel/runtime": "^7.3.1",
+                "csstype": "^3.0.2",
+                "is-in-browser": "^1.1.3",
+                "tiny-warning": "^1.0.2"
+            },
+            "funding": {
+                "type": "opencollective",
+                "url": "https://opencollective.com/jss"
+            }
+        },
+        "node_modules/jss-plugin-camel-case": {
+            "version": "10.10.0",
+            "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz",
+            "integrity": "sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==",
+            "dependencies": {
+                "@babel/runtime": "^7.3.1",
+                "hyphenate-style-name": "^1.0.3",
+                "jss": "10.10.0"
+            }
+        },
+        "node_modules/jss-plugin-default-unit": {
+            "version": "10.10.0",
+            "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz",
+            "integrity": "sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==",
+            "dependencies": {
+                "@babel/runtime": "^7.3.1",
+                "jss": "10.10.0"
+            }
+        },
+        "node_modules/jss-plugin-global": {
+            "version": "10.10.0",
+            "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz",
+            "integrity": "sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==",
+            "dependencies": {
+                "@babel/runtime": "^7.3.1",
+                "jss": "10.10.0"
+            }
+        },
+        "node_modules/jss-plugin-nested": {
+            "version": "10.10.0",
+            "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz",
+            "integrity": "sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==",
+            "dependencies": {
+                "@babel/runtime": "^7.3.1",
+                "jss": "10.10.0",
+                "tiny-warning": "^1.0.2"
+            }
+        },
+        "node_modules/jss-plugin-props-sort": {
+            "version": "10.10.0",
+            "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz",
+            "integrity": "sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==",
+            "dependencies": {
+                "@babel/runtime": "^7.3.1",
+                "jss": "10.10.0"
+            }
+        },
+        "node_modules/jss-plugin-rule-value-function": {
+            "version": "10.10.0",
+            "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz",
+            "integrity": "sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==",
+            "dependencies": {
+                "@babel/runtime": "^7.3.1",
+                "jss": "10.10.0",
+                "tiny-warning": "^1.0.2"
+            }
+        },
+        "node_modules/jss-plugin-vendor-prefixer": {
+            "version": "10.10.0",
+            "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz",
+            "integrity": "sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==",
+            "dependencies": {
+                "@babel/runtime": "^7.3.1",
+                "css-vendor": "^2.0.8",
+                "jss": "10.10.0"
+            }
+        },
+        "node_modules/jss/node_modules/csstype": {
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
+            "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+        },
+        "node_modules/keycode": {
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.1.tgz",
+            "integrity": "sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg=="
+        },
+        "node_modules/lodash._reinterpolate": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+            "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==",
+            "dev": true
+        },
+        "node_modules/lodash.template": {
+            "version": "4.5.0",
+            "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
+            "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
+            "dev": true,
+            "dependencies": {
+                "lodash._reinterpolate": "^3.0.0",
+                "lodash.templatesettings": "^4.0.0"
+            }
+        },
+        "node_modules/lodash.templatesettings": {
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+            "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+            "dev": true,
+            "dependencies": {
+                "lodash._reinterpolate": "^3.0.0"
+            }
+        },
+        "node_modules/loose-envify": {
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+            "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+            "dependencies": {
+                "js-tokens": "^3.0.0 || ^4.0.0"
+            },
+            "bin": {
+                "loose-envify": "cli.js"
+            }
+        },
+        "node_modules/mainloop.js": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/mainloop.js/-/mainloop.js-1.0.4.tgz",
+            "integrity": "sha512-zAyzCCwJcSDv777sGZTnDaXQdZs8POeysoI5YcSJaFKRVTnFRUQFlnV2B1Wn8N5KRygMOyKCr6cOerAnItkY3A=="
+        },
+        "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==",
+            "dev": true,
+            "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==",
+            "dev": true,
+            "dependencies": {
+                "mime-db": "1.52.0"
+            },
+            "engines": {
+                "node": ">= 0.6"
+            }
+        },
+        "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==",
+            "dev": true
+        },
+        "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/nth-check": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+            "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+            "dev": true,
+            "dependencies": {
+                "boolbase": "^1.0.0"
+            },
+            "funding": {
+                "url": "https://github.com/fb55/nth-check?sponsor=1"
+            }
+        },
+        "node_modules/nwsapi": {
+            "version": "2.2.7",
+            "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz",
+            "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==",
+            "dev": true
+        },
+        "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/parse5": {
+            "version": "6.0.1",
+            "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+            "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
+            "dev": true
+        },
+        "node_modules/parse5-htmlparser2-tree-adapter": {
+            "version": "7.0.0",
+            "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
+            "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
+            "dev": true,
+            "dependencies": {
+                "domhandler": "^5.0.2",
+                "parse5": "^7.0.0"
+            },
+            "funding": {
+                "url": "https://github.com/inikulin/parse5?sponsor=1"
+            }
+        },
+        "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": {
+            "version": "7.1.2",
+            "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+            "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+            "dev": true,
+            "dependencies": {
+                "entities": "^4.4.0"
+            },
+            "funding": {
+                "url": "https://github.com/inikulin/parse5?sponsor=1"
+            }
+        },
+        "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": "1.8.0",
+            "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
+            "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+            "dependencies": {
+                "isarray": "0.0.1"
+            }
+        },
+        "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/popper.js": {
+            "version": "1.16.1-lts",
+            "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz",
+            "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA=="
+        },
+        "node_modules/prop-types": {
+            "version": "15.8.1",
+            "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+            "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+            "dependencies": {
+                "loose-envify": "^1.4.0",
+                "object-assign": "^4.1.1",
+                "react-is": "^16.13.1"
+            }
+        },
+        "node_modules/prop-types/node_modules/react-is": {
+            "version": "16.13.1",
+            "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+            "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+        },
+        "node_modules/psl": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
+            "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
+            "dev": true
+        },
+        "node_modules/punycode": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+            "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+            "dev": true,
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/querystringify": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+            "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
+            "dev": true
+        },
+        "node_modules/react": {
+            "version": "16.14.0",
+            "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
+            "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
+            "dependencies": {
+                "loose-envify": "^1.1.0",
+                "object-assign": "^4.1.1",
+                "prop-types": "^15.6.2"
+            },
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/react-dom": {
+            "version": "16.14.0",
+            "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz",
+            "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==",
+            "dependencies": {
+                "loose-envify": "^1.1.0",
+                "object-assign": "^4.1.1",
+                "prop-types": "^15.6.2",
+                "scheduler": "^0.19.1"
+            },
+            "peerDependencies": {
+                "react": "^16.14.0"
+            }
+        },
+        "node_modules/react-is": {
+            "version": "17.0.2",
+            "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
+            "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
+        },
+        "node_modules/react-router": {
+            "version": "5.3.4",
+            "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz",
+            "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==",
+            "dependencies": {
+                "@babel/runtime": "^7.12.13",
+                "history": "^4.9.0",
+                "hoist-non-react-statics": "^3.1.0",
+                "loose-envify": "^1.3.1",
+                "path-to-regexp": "^1.7.0",
+                "prop-types": "^15.6.2",
+                "react-is": "^16.6.0",
+                "tiny-invariant": "^1.0.2",
+                "tiny-warning": "^1.0.0"
+            },
+            "peerDependencies": {
+                "react": ">=15"
+            }
+        },
+        "node_modules/react-router-dom": {
+            "version": "5.3.4",
+            "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz",
+            "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==",
+            "dependencies": {
+                "@babel/runtime": "^7.12.13",
+                "history": "^4.9.0",
+                "loose-envify": "^1.3.1",
+                "prop-types": "^15.6.2",
+                "react-router": "5.3.4",
+                "tiny-invariant": "^1.0.2",
+                "tiny-warning": "^1.0.0"
+            },
+            "peerDependencies": {
+                "react": ">=15"
+            }
+        },
+        "node_modules/react-router-dom/node_modules/history": {
+            "version": "4.10.1",
+            "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
+            "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
+            "dependencies": {
+                "@babel/runtime": "^7.1.2",
+                "loose-envify": "^1.2.0",
+                "resolve-pathname": "^3.0.0",
+                "tiny-invariant": "^1.0.2",
+                "tiny-warning": "^1.0.0",
+                "value-equal": "^1.0.1"
+            }
+        },
+        "node_modules/react-router/node_modules/history": {
+            "version": "4.10.1",
+            "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
+            "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
+            "dependencies": {
+                "@babel/runtime": "^7.1.2",
+                "loose-envify": "^1.2.0",
+                "resolve-pathname": "^3.0.0",
+                "tiny-invariant": "^1.0.2",
+                "tiny-warning": "^1.0.0",
+                "value-equal": "^1.0.1"
+            }
+        },
+        "node_modules/react-router/node_modules/react-is": {
+            "version": "16.13.1",
+            "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+            "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+        },
+        "node_modules/react-toastify": {
+            "version": "5.5.0",
+            "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-5.5.0.tgz",
+            "integrity": "sha512-jsVme7jALIFGRyQsri/g4YTsRuaaGI70T6/ikjwZMB4mwTZaCWqj5NqxhGrRStKlJc5npXKKvKeqTiRGQl78LQ==",
+            "dependencies": {
+                "@babel/runtime": "^7.4.2",
+                "classnames": "^2.2.6",
+                "prop-types": "^15.7.2",
+                "react-transition-group": "^4"
+            },
+            "peerDependencies": {
+                "react": ">=15.0.0",
+                "react-dom": ">=15.0.0"
+            }
+        },
+        "node_modules/react-transition-group": {
+            "version": "4.4.5",
+            "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
+            "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
+            "dependencies": {
+                "@babel/runtime": "^7.5.5",
+                "dom-helpers": "^5.0.1",
+                "loose-envify": "^1.4.0",
+                "prop-types": "^15.6.2"
+            },
+            "peerDependencies": {
+                "react": ">=16.6.0",
+                "react-dom": ">=16.6.0"
+            }
+        },
+        "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/regenerator-runtime": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
+            "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
+        },
+        "node_modules/requires-port": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+            "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+            "dev": true
+        },
+        "node_modules/resolve": {
+            "version": "1.22.8",
+            "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+            "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+            "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-pathname": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
+            "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
+        },
+        "node_modules/rxjs": {
+            "version": "6.6.7",
+            "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+            "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+            "dependencies": {
+                "tslib": "^1.9.0"
+            },
+            "engines": {
+                "npm": ">=2.0.0"
+            }
+        },
+        "node_modules/rxjs-hooks": {
+            "version": "0.5.2",
+            "resolved": "https://registry.npmjs.org/rxjs-hooks/-/rxjs-hooks-0.5.2.tgz",
+            "integrity": "sha512-sm2FMw1CbcYM7x4CRQ9OLiDtwpgQaiG8owURC2rB/iw7txpGSMU3BN25/wm19cMctezZsTM2EeH7jiyBqSfuSw==",
+            "dependencies": {
+                "tslib": "^1.10.0",
+                "use-constant": "^1.0.0"
+            }
+        },
+        "node_modules/safer-buffer": {
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+            "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+            "dev": true
+        },
+        "node_modules/sass": {
+            "version": "1.69.5",
+            "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz",
+            "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==",
+            "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/saxes": {
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
+            "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
+            "dev": true,
+            "dependencies": {
+                "xmlchars": "^2.2.0"
+            },
+            "engines": {
+                "node": ">=10"
+            }
+        },
+        "node_modules/scheduler": {
+            "version": "0.19.1",
+            "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
+            "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
+            "dependencies": {
+                "loose-envify": "^1.1.0",
+                "object-assign": "^4.1.1"
+            }
+        },
+        "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==",
+            "dev": true,
+            "optional": true,
+            "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/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/symbol-tree": {
+            "version": "3.2.4",
+            "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+            "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
+            "dev": true
+        },
+        "node_modules/tiny-invariant": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz",
+            "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw=="
+        },
+        "node_modules/tiny-warning": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
+            "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
+        },
+        "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/tough-cookie": {
+            "version": "4.1.3",
+            "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
+            "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
+            "dev": true,
+            "dependencies": {
+                "psl": "^1.1.33",
+                "punycode": "^2.1.1",
+                "universalify": "^0.2.0",
+                "url-parse": "^1.5.3"
+            },
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/tr46": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+            "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
+            "dev": true,
+            "dependencies": {
+                "punycode": "^2.1.1"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/tslib": {
+            "version": "1.14.1",
+            "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+            "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+        },
+        "node_modules/typescript": {
+            "version": "5.2.2",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
+            "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+            "dev": true,
+            "bin": {
+                "tsc": "bin/tsc",
+                "tsserver": "bin/tsserver"
+            },
+            "engines": {
+                "node": ">=14.17"
+            }
+        },
+        "node_modules/undici-types": {
+            "version": "5.26.5",
+            "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+            "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+            "dev": true
+        },
+        "node_modules/universalify": {
+            "version": "0.2.0",
+            "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+            "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+            "dev": true,
+            "engines": {
+                "node": ">= 4.0.0"
+            }
+        },
+        "node_modules/url-parse": {
+            "version": "1.5.10",
+            "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+            "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+            "dev": true,
+            "dependencies": {
+                "querystringify": "^2.1.1",
+                "requires-port": "^1.0.0"
+            }
+        },
+        "node_modules/use-constant": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/use-constant/-/use-constant-1.1.1.tgz",
+            "integrity": "sha512-sy2ttlE4kuAnNbp2P6a5aTZiGYwsZojkqaGZ31yDDjIurteUS8GOcYiPGmJ3y/LHOHkdazDdVRBZPzH3RZHffA==",
+            "peerDependencies": {
+                "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+            }
+        },
+        "node_modules/value-equal": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
+            "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw=="
+        },
+        "node_modules/w3c-hr-time": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
+            "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
+            "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.",
+            "dev": true,
+            "dependencies": {
+                "browser-process-hrtime": "^1.0.0"
+            }
+        },
+        "node_modules/w3c-xmlserializer": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
+            "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
+            "dev": true,
+            "dependencies": {
+                "xml-name-validator": "^3.0.0"
+            },
+            "engines": {
+                "node": ">=10"
+            }
+        },
+        "node_modules/webidl-conversions": {
+            "version": "6.1.0",
+            "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
+            "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
+            "dev": true,
+            "engines": {
+                "node": ">=10.4"
+            }
+        },
+        "node_modules/whatwg-encoding": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
+            "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
+            "dev": true,
+            "dependencies": {
+                "iconv-lite": "0.4.24"
+            }
+        },
+        "node_modules/whatwg-mimetype": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
+            "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
+            "dev": true
+        },
+        "node_modules/whatwg-url": {
+            "version": "9.1.0",
+            "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-9.1.0.tgz",
+            "integrity": "sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==",
+            "dev": true,
+            "dependencies": {
+                "tr46": "^2.1.0",
+                "webidl-conversions": "^6.1.0"
+            },
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/ws": {
+            "version": "8.14.2",
+            "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz",
+            "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==",
+            "dev": true,
+            "engines": {
+                "node": ">=10.0.0"
+            },
+            "peerDependencies": {
+                "bufferutil": "^4.0.1",
+                "utf-8-validate": ">=5.0.2"
+            },
+            "peerDependenciesMeta": {
+                "bufferutil": {
+                    "optional": true
+                },
+                "utf-8-validate": {
+                    "optional": true
+                }
+            }
+        },
+        "node_modules/xml-name-validator": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
+            "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
+            "dev": true
+        },
+        "node_modules/xmlchars": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
+            "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
+            "dev": true
+        }
+    }
+}
diff --git a/package.json b/package.json
index ec2f79a..8479a85 100644
--- a/package.json
+++ b/package.json
@@ -1,33 +1,33 @@
 {
-  "name": "erratic-gate",
-  "version": "1.0.0",
-  "type": "module",
-  "scripts": {
-    "dev": "vite",
-    "build": "vite build",
-    "check": "tsc",
-    "preview": "vite preview"
-  },
-  "devDependencies": {
-    "@types/deepmerge": "^2.2.0",
-    "@types/mainloop.js": "^1.0.5",
-    "@types/node": "^1.0.5",
-    "@types/react-router-dom": "^4.3.4",
-    "@vitejs/plugin-react": "^4.0.0-beta.0",
-    "typescript": "^5.0.2",
-    "vite": "^4.3.0"
-  },
-  "dependencies": {
-    "@eix-js/utils": "0.0.6",
-    "@material-ui/core": "^4.2.1",
-    "deepmerge": "^4.0.0",
-    "keycode": "^2.2.0",
-    "mainloop.js": "^1.0.4",
-    "react": "^16.8.6",
-    "react-dom": "^16.8.6",
-    "react-router-dom": "^5.0.1",
-    "react-toastify": "^5.3.2",
-    "rxjs": "^6.5.2",
-    "rxjs-hooks": "^0.5.1"
-  }
+    "name": "erratic-gate",
+    "version": "1.0.0",
+    "type": "module",
+    "scripts": {
+        "build": "node ./build.js",
+        "check": "tsc"
+    },
+    "devDependencies": {
+        "@craftamap/esbuild-plugin-html": "^0.6.1",
+        "@types/deepmerge": "^2.2.0",
+        "@types/mainloop.js": "^1.0.5",
+        "@types/node": "^20.8.9",
+        "@types/react-dom": "^18.2.14",
+        "@types/react-router-dom": "^4.3.4",
+        "esbuild": "^0.19.5",
+        "esbuild-sass-plugin": "^2.16.0",
+        "typescript": "^5.0.2"
+    },
+    "dependencies": {
+        "@eix-js/utils": "0.0.6",
+        "@material-ui/core": "^4.2.1",
+        "deepmerge": "^4.0.0",
+        "keycode": "^2.2.0",
+        "mainloop.js": "^1.0.4",
+        "react": "^16.8.6",
+        "react-dom": "^16.8.6",
+        "react-router-dom": "^5.0.1",
+        "react-toastify": "^5.3.2",
+        "rxjs": "^6.5.2",
+        "rxjs-hooks": "^0.5.1"
+    }
 }
diff --git a/projects.toml b/projects.toml
deleted file mode 100644
index 67f5152..0000000
--- a/projects.toml
+++ /dev/null
@@ -1,18 +0,0 @@
-# projects.toml file describing inputs for dream2nix
-#
-# To re-generate this file, run:
-#   nix run .#detect-projects $source
-# ... where `$source` points to the source of your project.
-#
-# If the local flake is unavailable, alternatively execute the app from the
-# upstream dream2nix flake:
-#   nix run github:nix-community/dream2nix#detect-projects $source
-
-[erratic-gate]
-name = "erratic-gate"
-relPath = ""
-subsystem = "nodejs"
-translator = "package-json"
-builder = "strict-builder"
-
-[erratic-gate.subsystemInfo]
diff --git a/index.html b/public/index.html
similarity index 77%
rename from index.html
rename to public/index.html
index 9ddd26c..4a17aa9 100644
--- a/index.html
+++ b/public/index.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html>
+<!doctype html>
 <html lang="en">
     <head>
-        <title>Logic gate simulator</title>
+        <title>Erratic gate</title>
 
         <meta name="pinterest" content="nopin" />
 
@@ -9,30 +9,35 @@
             rel="stylesheet"
             href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap"
         />
+        <link
+            rel="stylesheet"
+            href="https://fonts.googleapis.com/css?family=Righteous&display=swap"
+        />
         <link
             rel="stylesheet"
             href="https://fonts.googleapis.com/icon?family=Material+Icons"
         />
+
         <meta
             name="viewport"
             content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no"
         />
 
-        <link
-            href="https://fonts.googleapis.com/css?family=Righteous&display=swap"
-            rel="stylesheet"
+        <meta property="og:title" content="Erratic gate" />
+        <meta
+            property="og:description"
+            content="A logic gate simulator made for infoeducatie 2019"
+        />
+        <meta
+            property="og:url"
+            content="https://mateiadrielrafael.github.io/erratic-gate/"
         />
-
-        <meta property="og:title" content="Logic gate simulator" />
-        <meta property="og:description" content="A logic gate simulator made for infoeducatie 2019" />
-        <meta property="og:url" content="https://mateiadrielrafael.github.io/logic-gate-simulator/" />
 
         <meta
             name="Description"
             content="A logic gate simulator made for infoeducatie 2019"
         />
 
-        <link rel="icon" href="/favicon.ico" />
         <meta charset="UTF-8" />
     </head>
 
@@ -57,8 +62,5 @@
             <!--In case someone tries to laod this with js disabled-->
             <noscript> JavaScript must be enabled to run this app. </noscript>
         </div>
-
-
-      <script type="module" src="/src/index.ts"></script>
     </body>
 </html>
diff --git a/src/public/robots.txt b/public/robots.txt
similarity index 100%
rename from src/public/robots.txt
rename to public/robots.txt
diff --git a/src/main.tsx b/src/main.tsx
index 7166b66..0088140 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -1,4 +1,3 @@
-import React from 'react'
 import App from './modules/core/components/App'
 
 import { render } from 'react-dom'
diff --git a/src/modules/core/components/App.tsx b/src/modules/core/components/App.tsx
index b05ee53..a7fc705 100644
--- a/src/modules/core/components/App.tsx
+++ b/src/modules/core/components/App.tsx
@@ -1,20 +1,19 @@
-import '../styles/reset'
+import '../styles/reset.scss'
 import './App.scss'
 import './Scrollbars.scss'
 import 'react-toastify/dist/ReactToastify.css'
 
 import { ToastContainer } from 'react-toastify'
 import { theme as muiTheme } from '../constants'
-import { Route } from 'react-router-dom'
+import { BrowserRouter, Route } from 'react-router-dom'
 
-import React, { useEffect } from 'react'
+import { useEffect } from 'react'
 import CssBaseline from '@material-ui/core/CssBaseline'
 import Theme from '@material-ui/styles/ThemeProvider'
 import Sidebar from './Sidebar'
 import Root from './Root'
 import LogicGatePage from '../../logic-gates/components/LogicGatesPage'
 import { loadSubject } from '../subjects/loadedSubject'
-import { CustomRouter } from './CustomRouter'
 import LogicGateInfoPage from '../../logic-gate-info/components/LogicGateInfoPage'
 
 const App = () => {
@@ -27,13 +26,13 @@ const App = () => {
             <CssBaseline />
 
             <Theme theme={muiTheme}>
-                <CustomRouter>
+                <BrowserRouter>
                     <Sidebar />
 
                     <Route path="/" component={Root} exact />
                     <Route path="/gates" component={LogicGatePage} />
                     <Route path="/info/:name" component={LogicGateInfoPage} />
-                </CustomRouter>
+                </BrowserRouter>
             </Theme>
 
             <ToastContainer
diff --git a/src/modules/core/components/CustomRouter.tsx b/src/modules/core/components/CustomRouter.tsx
deleted file mode 100644
index 172ab19..0000000
--- a/src/modules/core/components/CustomRouter.tsx
+++ /dev/null
@@ -1,6 +0,0 @@
-import { BrowserRouter } from 'react-router-dom'
-import { history } from '../constants'
-
-export class CustomRouter extends BrowserRouter {
-    public history = history
-}
diff --git a/src/modules/core/constants.ts b/src/modules/core/constants.ts
index 45b6b76..bce286a 100644
--- a/src/modules/core/constants.ts
+++ b/src/modules/core/constants.ts
@@ -1,9 +1,8 @@
-import { createMuiTheme } from '@material-ui/core/styles'
+import { createTheme } from '@material-ui/core/styles'
 import { red, deepPurple } from '@material-ui/core/colors'
 import { simulationMode } from '../saving/types/SimulationSave'
-import { createBrowserHistory } from 'history'
 
-export const theme = createMuiTheme({
+export const theme = createTheme({
     palette: {
         type: 'dark',
         primary: deepPurple,
@@ -32,8 +31,3 @@ export const icons: IconInterface = {
  * The width of the sidebar
  */
 export const sidebarWidth = 240
-
-/**
- * The history to be used by the router
- */
-export const history = createBrowserHistory()
diff --git a/src/modules/core/styles/reset.scss b/src/modules/core/styles/reset.scss
index 942b44d..0935397 100644
--- a/src/modules/core/styles/reset.scss
+++ b/src/modules/core/styles/reset.scss
@@ -169,8 +169,6 @@ audio,
 canvas,
 video {
     display: inline-block;
-    *display: inline;
-    *zoom: 1;
     max-width: 100%;
 }
 
@@ -269,7 +267,7 @@ legend {
     border: 0; /* 1 */
     padding: 0;
     white-space: normal; /* 2 */
-    *margin-left: -7px; /* 3 */
+    margin-left: -7px; /* 3 */
 }
 
 /**
@@ -286,7 +284,6 @@ textarea {
     font-size: 100%; /* 1 */
     margin: 0; /* 2 */
     vertical-align: baseline; /* 3 */
-    *vertical-align: middle; /* 3 */
 }
 
 /**
@@ -327,7 +324,7 @@ input[type="reset"],
 input[type="submit"] {
     -webkit-appearance: button; /* 2 */
     cursor: pointer; /* 3 */
-    *overflow: visible; /* 4 */
+    overflow: visible; /* 4 */
 }
 
 /**
@@ -350,8 +347,8 @@ input[type='checkbox'],
 input[type='radio'] {
     box-sizing: border-box; /* 1 */
     padding: 0; /* 2 */
-    *height: 13px; /* 3 */
-    *width: 13px; /* 3 */
+    height: 13px; /* 3 */
+    width: 13px; /* 3 */
 }
 
 /**
diff --git a/src/modules/integrated-circuits/helpers/compileIc.ts b/src/modules/integrated-circuits/helpers/compileIc.ts
index 4017b26..a4c5311 100644
--- a/src/modules/integrated-circuits/helpers/compileIc.ts
+++ b/src/modules/integrated-circuits/helpers/compileIc.ts
@@ -59,7 +59,7 @@ export const compileIc = (state: SimulationState, log = false) => {
         category: categories.ic,
         material: {
             type: 'image',
-            fill: require('../../../assets/ic')
+            fill: require('../../../assets/ic.svg')
         },
         properties: {
             enabled: !!props.length,
diff --git a/src/modules/internalisation/helpers/nextLanguage.ts b/src/modules/internalisation/helpers/nextLanguage.ts
index 5802902..7784dce 100644
--- a/src/modules/internalisation/helpers/nextLanguage.ts
+++ b/src/modules/internalisation/helpers/nextLanguage.ts
@@ -1,7 +1,4 @@
-import {
-    CurrentLanguage,
-    CurrentLanguageLocalStore
-} from '../stores/currentLanguage'
+import { CurrentLanguage } from '../stores/currentLanguage'
 import { allSupportedLanguages } from '../constants'
 
 /**
diff --git a/src/modules/logic-gates/components/LogicGatesPage.tsx b/src/modules/logic-gates/components/LogicGatesPage.tsx
index 4c747d9..04ed657 100644
--- a/src/modules/logic-gates/components/LogicGatesPage.tsx
+++ b/src/modules/logic-gates/components/LogicGatesPage.tsx
@@ -12,6 +12,7 @@ import LogicGate from './LogicGate'
 const LogicGatePage = () => {
     const gates = useObservable(() => LogicGateList, [])
     const renderer = getRendererSafely()
+    console.log('got this far')
 
     return (
         <main>
@@ -20,7 +21,7 @@ const LogicGatePage = () => {
                     {gates
                         .map(getTemplateSafely)
                         .sort((a, b) => a.category - b.category)
-                        .filter(template => {
+                        .filter((template) => {
                             return (
                                 renderer.simulation.mode === 'project' ||
                                 template.metadata.name !==
diff --git a/src/modules/modals/styles/mixins/modal-container.scss b/src/modules/modals/styles/mixins/modal-container.scss
index e2b0cb7..d68208a 100644
--- a/src/modules/modals/styles/mixins/modal-container.scss
+++ b/src/modules/modals/styles/mixins/modal-container.scss
@@ -1,8 +1,8 @@
-@import '../../core/styles/indexes.scss';
-@import '../../core/styles/colors.scss';
-@import '../../core/styles/mixins/flex.scss';
-@import '../../core/styles/mixins/full-screen.scss';
-@import '../../core/styles/mixins/visibility.scss';
+@import '../../../core/styles/indexes.scss';
+@import '../../../core/styles/colors.scss';
+@import '../../../core/styles/mixins/flex.scss';
+@import '../../../core/styles/mixins/full-screen.scss';
+@import '../../../core/styles/mixins/visibility.scss';
 
 @mixin modal-container {
     @include flex();
diff --git a/src/modules/saving/templates/4bitDecoder.ts b/src/modules/saving/templates/4bitDecoder.ts
index a49b61b..8f0d844 100644
--- a/src/modules/saving/templates/4bitDecoder.ts
+++ b/src/modules/saving/templates/4bitDecoder.ts
@@ -25,7 +25,7 @@ const _4bitDecoderTemplate: PartialTemplate = {
     },
     material: {
         type: 'image',
-        fill: require('../../../assets/4decoder')
+        fill: require('../../../assets/4decoder.svg')
     },
     shape: {
         scale: _4BitScale
diff --git a/src/modules/saving/templates/4bitEncoder.ts b/src/modules/saving/templates/4bitEncoder.ts
index 27efac4..e03875e 100644
--- a/src/modules/saving/templates/4bitEncoder.ts
+++ b/src/modules/saving/templates/4bitEncoder.ts
@@ -24,7 +24,7 @@ const _4bitEncoderTemplate: PartialTemplate = {
     },
     material: {
         type: 'image',
-        fill: require('../../../assets/4encoder')
+        fill: require('../../../assets/4encoder.svg')
     },
     shape: {
         scale: _4BitScale
diff --git a/src/modules/saving/templates/and.ts b/src/modules/saving/templates/and.ts
index bae1ebd..0c4d087 100644
--- a/src/modules/saving/templates/and.ts
+++ b/src/modules/saving/templates/and.ts
@@ -9,7 +9,7 @@ const andTemplate: PartialTemplate = {
     },
     material: {
         type: 'image',
-        fill: require('../../../assets/and')
+        fill: require('../../../assets/and.svg')
     },
     code: {
         activation: `
diff --git a/src/modules/saving/templates/bitMerger.ts b/src/modules/saving/templates/bitMerger.ts
index b5a14bd..1a30406 100644
--- a/src/modules/saving/templates/bitMerger.ts
+++ b/src/modules/saving/templates/bitMerger.ts
@@ -24,7 +24,7 @@ const bitMergerTemplate: PartialTemplate = {
     category: categories.compressing,
     material: {
         type: 'image',
-        fill: require('../../../assets/merger')
+        fill: require('../../../assets/merger.svg')
     }
 }
 
diff --git a/src/modules/saving/templates/bitSplitter.ts b/src/modules/saving/templates/bitSplitter.ts
index 4465b58..0d494d2 100644
--- a/src/modules/saving/templates/bitSplitter.ts
+++ b/src/modules/saving/templates/bitSplitter.ts
@@ -27,7 +27,7 @@ const bitSplitterTemplate: PartialTemplate = {
     },
     material: {
         type: 'image',
-        fill: require('../../../assets/splitter')
+        fill: require('../../../assets/splitter.svg')
     },
     category: categories.compressing,
     pins: {
diff --git a/src/modules/saving/templates/fullAdder.ts b/src/modules/saving/templates/fullAdder.ts
index 959f6ef..28c0a15 100644
--- a/src/modules/saving/templates/fullAdder.ts
+++ b/src/modules/saving/templates/fullAdder.ts
@@ -11,7 +11,7 @@ const fullAdderTemplate: PartialTemplate = {
     },
     material: {
         type: 'image',
-        fill: require('../../../assets/full-adder')
+        fill: require('../../../assets/full-adder.svg')
     },
     code: {
         activation: adderActivation(true)
diff --git a/src/modules/saving/templates/halfAdder.ts b/src/modules/saving/templates/halfAdder.ts
index 653aa9a..bb6f008 100644
--- a/src/modules/saving/templates/halfAdder.ts
+++ b/src/modules/saving/templates/halfAdder.ts
@@ -11,7 +11,7 @@ const halfAdderTemplate: PartialTemplate = {
     },
     material: {
         type: 'image',
-        fill: require('../../../assets/half-adder')
+        fill: require('../../../assets/half-adder.svg')
     },
     code: {
         activation: adderActivation(false)
diff --git a/src/modules/saving/templates/nand.ts b/src/modules/saving/templates/nand.ts
index 1704afe..9884146 100644
--- a/src/modules/saving/templates/nand.ts
+++ b/src/modules/saving/templates/nand.ts
@@ -9,7 +9,7 @@ const nandTemplate: PartialTemplate = {
     },
     material: {
         type: 'image',
-        fill: require('../../../assets/nand')
+        fill: require('../../../assets/nand.svg')
     },
     code: {
         activation: `
diff --git a/src/modules/saving/templates/nor.ts b/src/modules/saving/templates/nor.ts
index 58eb554..1cc53d5 100644
--- a/src/modules/saving/templates/nor.ts
+++ b/src/modules/saving/templates/nor.ts
@@ -9,7 +9,7 @@ const norTemplate: PartialTemplate = {
     },
     material: {
         type: 'image',
-        fill: require('../../../assets/nor')
+        fill: require('../../../assets/nor.svg')
     },
     code: {
         activation: `
diff --git a/src/modules/saving/templates/not.ts b/src/modules/saving/templates/not.ts
index e5fe80e..5a1412c 100644
--- a/src/modules/saving/templates/not.ts
+++ b/src/modules/saving/templates/not.ts
@@ -9,7 +9,7 @@ const notTemplate: PartialTemplate = {
     },
     material: {
         type: 'image',
-        fill: require('../../../assets/not')
+        fill: require('../../../assets/not.svg')
     },
     code: {
         activation: `
diff --git a/src/modules/saving/templates/or.ts b/src/modules/saving/templates/or.ts
index c03be6b..6fb0390 100644
--- a/src/modules/saving/templates/or.ts
+++ b/src/modules/saving/templates/or.ts
@@ -9,7 +9,7 @@ const orTemplate: PartialTemplate = {
     },
     material: {
         type: 'image',
-        fill: require('../../../assets/or')
+        fill: require('../../../assets/or.svg')
     },
     code: {
         activation: `
diff --git a/src/modules/saving/templates/parallelDelayer.ts b/src/modules/saving/templates/parallelDelayer.ts
index 0a1638c..9a81c39 100644
--- a/src/modules/saving/templates/parallelDelayer.ts
+++ b/src/modules/saving/templates/parallelDelayer.ts
@@ -11,7 +11,7 @@ const parallelDelayerTemplate: PartialTemplate = {
     },
     material: {
         type: 'image',
-        fill: require('../../../assets/parallel')
+        fill: require('../../../assets/parallel.svg')
     },
     code: {
         activation: `
diff --git a/src/modules/saving/templates/sequentialDelayer.ts b/src/modules/saving/templates/sequentialDelayer.ts
index 018987f..3f16336 100644
--- a/src/modules/saving/templates/sequentialDelayer.ts
+++ b/src/modules/saving/templates/sequentialDelayer.ts
@@ -11,7 +11,7 @@ const sequentialDelayerTemplate: PartialTemplate = {
     },
     material: {
         type: 'image',
-        fill: require('../../../assets/sequential')
+        fill: require('../../../assets/sequential.svg')
     },
     code: {
         activation: `
diff --git a/src/modules/saving/templates/xnor.ts b/src/modules/saving/templates/xnor.ts
index 5978def..9bac462 100644
--- a/src/modules/saving/templates/xnor.ts
+++ b/src/modules/saving/templates/xnor.ts
@@ -9,7 +9,7 @@ const xnorTemplate: PartialTemplate = {
     },
     material: {
         type: 'image',
-        fill: require('../../../assets/xnor')
+        fill: require('../../../assets/xnor.svg')
     },
     code: {
         activation: `
diff --git a/src/modules/saving/templates/xor.ts b/src/modules/saving/templates/xor.ts
index b2a4060..002b96f 100644
--- a/src/modules/saving/templates/xor.ts
+++ b/src/modules/saving/templates/xor.ts
@@ -9,7 +9,7 @@ const xorTemplate: PartialTemplate = {
     },
     material: {
         type: 'image',
-        fill: require('../../../assets/xor')
+        fill: require('../../../assets/xor.svg')
     },
     code: {
         activation: `
diff --git a/src/modules/storage/classes/LocalStore.ts b/src/modules/storage/classes/LocalStore.ts
index 90eb082..606b925 100644
--- a/src/modules/storage/classes/LocalStore.ts
+++ b/src/modules/storage/classes/LocalStore.ts
@@ -1,6 +1,3 @@
-import { CacheInstancesByKey } from '@eix-js/utils'
-
-@CacheInstancesByKey(Infinity)
 export class LocalStore<T> {
     public constructor(public name: string) {
         if (!localStorage.getItem(name)) {
@@ -13,9 +10,7 @@ export class LocalStore<T> {
 
         if (!raw)
             throw new Error(
-                `An error occured when accesing ${
-                    this.name
-                } in the local storage!`
+                `An error occured when accesing ${this.name} in the local storage!`
             )
         else {
             return JSON.parse(raw)
diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts
deleted file mode 100644
index 11f02fe..0000000
--- a/src/vite-env.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-/// <reference types="vite/client" />
diff --git a/tsconfig.json b/tsconfig.json
index 98c4397..6e45ba3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,10 +1,13 @@
 {
   "compilerOptions": {
     "target": "ESNext",
-    "lib": [ "DOM", "DOM.Iterable", "ESNext" ],
+    "lib": [
+      "DOM",
+      "DOM.Iterable",
+      "ESNext"
+    ],
     "module": "ESNext",
     "skipLibCheck": true,
-
     /* Bundler mode */
     "moduleResolution": "bundler",
     "allowImportingTsExtensions": true,
@@ -12,7 +15,6 @@
     "isolatedModules": true,
     "noEmit": true,
     "jsx": "react-jsx",
-
     /* Features */
     "experimentalDecorators": true,
     "downlevelIteration": true,
@@ -21,9 +23,4 @@
   "include": [
     "src"
   ],
-  "references": [
-    {
-      "path": "./tsconfig.node.json"
-    }
-  ]
 }
diff --git a/tsconfig.node.json b/tsconfig.node.json
deleted file mode 100644
index b5a3431..0000000
--- a/tsconfig.node.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "compilerOptions": {
-    "composite": true,
-    "skipLibCheck": true,
-    "module": "ESNext",
-    "moduleResolution": "bundler",
-    "allowSyntheticDefaultImports": true
-  },
-  "include": [
-    "vite.config.ts"
-  ]
-}
diff --git a/vite.config.ts b/vite.config.ts
deleted file mode 100644
index 5a33944..0000000
--- a/vite.config.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { defineConfig } from 'vite'
-import react from '@vitejs/plugin-react'
-
-// https://vitejs.dev/config/
-export default defineConfig({
-  plugins: [react()],
-})