Add site/earlgrey_diagram

- Commit generated earlgrey-diagram html to repo (links to opentitan.org URLs)

Signed-off-by: Jorge Prendes <jorge.prendes@gmail.com>
Co-authored-by: Andreas Kurth <adk@lowrisc.org>

[COMMITTER: squashing commits and minor patching]
Signed-off-by: Harry Callahan <hcallahan@lowrisc.org>
diff --git a/site/earlgrey-diagram/.browserslistrc b/site/earlgrey-diagram/.browserslistrc
new file mode 100644
index 0000000..a657608
--- /dev/null
+++ b/site/earlgrey-diagram/.browserslistrc
@@ -0,0 +1 @@
+Chrome 80
diff --git a/site/earlgrey-diagram/.gitignore b/site/earlgrey-diagram/.gitignore
new file mode 100644
index 0000000..31e50a6
--- /dev/null
+++ b/site/earlgrey-diagram/.gitignore
@@ -0,0 +1,3 @@
+.parcel-cache/
+node_modules/
+dist/
diff --git a/site/earlgrey-diagram/README.md b/site/earlgrey-diagram/README.md
new file mode 100644
index 0000000..8bfb49e
--- /dev/null
+++ b/site/earlgrey-diagram/README.md
@@ -0,0 +1,8 @@
+# Earlgrey Diagram
+
+To generate the diagram run
+```
+npm install
+npm run build
+npm run deploy
+```
diff --git a/site/earlgrey-diagram/package-lock.json b/site/earlgrey-diagram/package-lock.json
new file mode 100644
index 0000000..27d45e9
--- /dev/null
+++ b/site/earlgrey-diagram/package-lock.json
@@ -0,0 +1,9342 @@
+{
+	"name": "earlgrey-diagram",
+	"lockfileVersion": 2,
+	"requires": true,
+	"packages": {
+		"": {
+			"devDependencies": {
+				"parcel": "^2.8.3",
+				"puppeteer": "^19.6.2"
+			}
+		},
+		"node_modules/@babel/code-frame": {
+			"version": "7.18.6",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
+			"integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+			"dev": true,
+			"dependencies": {
+				"@babel/highlight": "^7.18.6"
+			},
+			"engines": {
+				"node": ">=6.9.0"
+			}
+		},
+		"node_modules/@babel/helper-validator-identifier": {
+			"version": "7.19.1",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+			"integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+			"dev": true,
+			"engines": {
+				"node": ">=6.9.0"
+			}
+		},
+		"node_modules/@babel/highlight": {
+			"version": "7.18.6",
+			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
+			"integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+			"dev": true,
+			"dependencies": {
+				"@babel/helper-validator-identifier": "^7.18.6",
+				"chalk": "^2.0.0",
+				"js-tokens": "^4.0.0"
+			},
+			"engines": {
+				"node": ">=6.9.0"
+			}
+		},
+		"node_modules/@babel/highlight/node_modules/js-tokens": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+			"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+			"dev": true
+		},
+		"node_modules/@jridgewell/gen-mapping": {
+			"version": "0.3.2",
+			"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+			"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+			"dev": true,
+			"dependencies": {
+				"@jridgewell/set-array": "^1.0.1",
+				"@jridgewell/sourcemap-codec": "^1.4.10",
+				"@jridgewell/trace-mapping": "^0.3.9"
+			},
+			"engines": {
+				"node": ">=6.0.0"
+			}
+		},
+		"node_modules/@jridgewell/resolve-uri": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+			"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+			"dev": true,
+			"engines": {
+				"node": ">=6.0.0"
+			}
+		},
+		"node_modules/@jridgewell/set-array": {
+			"version": "1.1.2",
+			"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+			"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+			"dev": true,
+			"engines": {
+				"node": ">=6.0.0"
+			}
+		},
+		"node_modules/@jridgewell/source-map": {
+			"version": "0.3.2",
+			"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+			"integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+			"dev": true,
+			"dependencies": {
+				"@jridgewell/gen-mapping": "^0.3.0",
+				"@jridgewell/trace-mapping": "^0.3.9"
+			}
+		},
+		"node_modules/@jridgewell/sourcemap-codec": {
+			"version": "1.4.14",
+			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+			"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+			"dev": true
+		},
+		"node_modules/@jridgewell/trace-mapping": {
+			"version": "0.3.17",
+			"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
+			"integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+			"dev": true,
+			"dependencies": {
+				"@jridgewell/resolve-uri": "3.1.0",
+				"@jridgewell/sourcemap-codec": "1.4.14"
+			}
+		},
+		"node_modules/@lezer/common": {
+			"version": "0.15.12",
+			"resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.12.tgz",
+			"integrity": "sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig==",
+			"dev": true
+		},
+		"node_modules/@lezer/lr": {
+			"version": "0.15.8",
+			"resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.8.tgz",
+			"integrity": "sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg==",
+			"dev": true,
+			"dependencies": {
+				"@lezer/common": "^0.15.0"
+			}
+		},
+		"node_modules/@lmdb/lmdb-darwin-arm64": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz",
+			"integrity": "sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"darwin"
+			]
+		},
+		"node_modules/@lmdb/lmdb-darwin-x64": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz",
+			"integrity": "sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"darwin"
+			]
+		},
+		"node_modules/@lmdb/lmdb-linux-arm": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz",
+			"integrity": "sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw==",
+			"cpu": [
+				"arm"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@lmdb/lmdb-linux-arm64": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz",
+			"integrity": "sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@lmdb/lmdb-linux-x64": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz",
+			"integrity": "sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@lmdb/lmdb-win32-x64": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz",
+			"integrity": "sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"win32"
+			]
+		},
+		"node_modules/@mischnic/json-sourcemap": {
+			"version": "0.1.0",
+			"resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz",
+			"integrity": "sha512-dQb3QnfNqmQNYA4nFSN/uLaByIic58gOXq4Y4XqLOWmOrw73KmJPt/HLyG0wvn1bnR6mBKs/Uwvkh+Hns1T0XA==",
+			"dev": true,
+			"dependencies": {
+				"@lezer/common": "^0.15.7",
+				"@lezer/lr": "^0.15.4",
+				"json5": "^2.2.1"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@mischnic/json-sourcemap/node_modules/json5": {
+			"version": "2.2.3",
+			"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+			"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+			"dev": true,
+			"bin": {
+				"json5": "lib/cli.js"
+			},
+			"engines": {
+				"node": ">=6"
+			}
+		},
+		"node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-2.2.0.tgz",
+			"integrity": "sha512-Z9LFPzfoJi4mflGWV+rv7o7ZbMU5oAU9VmzCgL240KnqDW65Y2HFCT3MW06/ITJSnbVLacmcEJA8phywK7JinQ==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"darwin"
+			]
+		},
+		"node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-2.2.0.tgz",
+			"integrity": "sha512-vq0tT8sjZsy4JdSqmadWVw6f66UXqUCabLmUVHZwUFzMgtgoIIQjT4VVRHKvlof3P/dMCkbMJ5hB1oJ9OWHaaw==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"darwin"
+			]
+		},
+		"node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-2.2.0.tgz",
+			"integrity": "sha512-SaJ3Qq4lX9Syd2xEo9u3qPxi/OB+5JO/ngJKK97XDpa1C587H9EWYO6KD8995DAjSinWvdHKRrCOXVUC5fvGOg==",
+			"cpu": [
+				"arm"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-2.2.0.tgz",
+			"integrity": "sha512-hlxxLdRmPyq16QCutUtP8Tm6RDWcyaLsRssaHROatgnkOxdleMTgetf9JsdncL8vLh7FVy/RN9i3XR5dnb9cRA==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-2.2.0.tgz",
+			"integrity": "sha512-94y5PJrSOqUNcFKmOl7z319FelCLAE0rz/jPCWS+UtdMZvpa4jrQd+cJPQCLp2Fes1yAW/YUQj/Di6YVT3c3Iw==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-2.2.0.tgz",
+			"integrity": "sha512-XrC0JzsqQSvOyM3t04FMLO6z5gCuhPE6k4FXuLK5xf52ZbdvcFe1yBmo7meCew9B8G2f0T9iu9t3kfTYRYROgA==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"win32"
+			]
+		},
+		"node_modules/@parcel/bundler-default": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.8.3.tgz",
+			"integrity": "sha512-yJvRsNWWu5fVydsWk3O2L4yIy3UZiKWO2cPDukGOIWMgp/Vbpp+2Ct5IygVRtE22bnseW/E/oe0PV3d2IkEJGg==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/graph": "2.8.3",
+				"@parcel/hash": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/cache": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.8.3.tgz",
+			"integrity": "sha512-k7xv5vSQrJLdXuglo+Hv3yF4BCSs1tQ/8Vbd6CHTkOhf7LcGg6CPtLw053R/KdMpd/4GPn0QrAsOLdATm1ELtQ==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/fs": "2.8.3",
+				"@parcel/logger": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"lmdb": "2.5.2"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			},
+			"peerDependencies": {
+				"@parcel/core": "^2.8.3"
+			}
+		},
+		"node_modules/@parcel/codeframe": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.8.3.tgz",
+			"integrity": "sha512-FE7sY53D6n/+2Pgg6M9iuEC6F5fvmyBkRE4d9VdnOoxhTXtkEqpqYgX7RJ12FAQwNlxKq4suBJQMgQHMF2Kjeg==",
+			"dev": true,
+			"dependencies": {
+				"chalk": "^4.1.0"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/codeframe/node_modules/ansi-styles": {
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+			"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+			"dev": true,
+			"dependencies": {
+				"color-convert": "^2.0.1"
+			},
+			"engines": {
+				"node": ">=8"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/ansi-styles?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/codeframe/node_modules/chalk": {
+			"version": "4.1.2",
+			"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+			"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+			"dev": true,
+			"dependencies": {
+				"ansi-styles": "^4.1.0",
+				"supports-color": "^7.1.0"
+			},
+			"engines": {
+				"node": ">=10"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/chalk?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/codeframe/node_modules/color-convert": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+			"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+			"dev": true,
+			"dependencies": {
+				"color-name": "~1.1.4"
+			},
+			"engines": {
+				"node": ">=7.0.0"
+			}
+		},
+		"node_modules/@parcel/codeframe/node_modules/color-name": {
+			"version": "1.1.4",
+			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+			"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+			"dev": true
+		},
+		"node_modules/@parcel/codeframe/node_modules/has-flag": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+			"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/@parcel/codeframe/node_modules/supports-color": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+			"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+			"dev": true,
+			"dependencies": {
+				"has-flag": "^4.0.0"
+			},
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/@parcel/compressor-raw": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.8.3.tgz",
+			"integrity": "sha512-bVDsqleBUxRdKMakWSlWC9ZjOcqDKE60BE+Gh3JSN6WJrycJ02P5wxjTVF4CStNP/G7X17U+nkENxSlMG77ySg==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/config-default": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.8.3.tgz",
+			"integrity": "sha512-o/A/mbrO6X/BfGS65Sib8d6SSG45NYrNooNBkH/o7zbOBSRQxwyTlysleK1/3Wa35YpvFyLOwgfakqCtbGy4fw==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/bundler-default": "2.8.3",
+				"@parcel/compressor-raw": "2.8.3",
+				"@parcel/namer-default": "2.8.3",
+				"@parcel/optimizer-css": "2.8.3",
+				"@parcel/optimizer-htmlnano": "2.8.3",
+				"@parcel/optimizer-image": "2.8.3",
+				"@parcel/optimizer-svgo": "2.8.3",
+				"@parcel/optimizer-terser": "2.8.3",
+				"@parcel/packager-css": "2.8.3",
+				"@parcel/packager-html": "2.8.3",
+				"@parcel/packager-js": "2.8.3",
+				"@parcel/packager-raw": "2.8.3",
+				"@parcel/packager-svg": "2.8.3",
+				"@parcel/reporter-dev-server": "2.8.3",
+				"@parcel/resolver-default": "2.8.3",
+				"@parcel/runtime-browser-hmr": "2.8.3",
+				"@parcel/runtime-js": "2.8.3",
+				"@parcel/runtime-react-refresh": "2.8.3",
+				"@parcel/runtime-service-worker": "2.8.3",
+				"@parcel/transformer-babel": "2.8.3",
+				"@parcel/transformer-css": "2.8.3",
+				"@parcel/transformer-html": "2.8.3",
+				"@parcel/transformer-image": "2.8.3",
+				"@parcel/transformer-js": "2.8.3",
+				"@parcel/transformer-json": "2.8.3",
+				"@parcel/transformer-postcss": "2.8.3",
+				"@parcel/transformer-posthtml": "2.8.3",
+				"@parcel/transformer-raw": "2.8.3",
+				"@parcel/transformer-react-refresh-wrap": "2.8.3",
+				"@parcel/transformer-svg": "2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			},
+			"peerDependencies": {
+				"@parcel/core": "^2.8.3"
+			}
+		},
+		"node_modules/@parcel/core": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.8.3.tgz",
+			"integrity": "sha512-Euf/un4ZAiClnlUXqPB9phQlKbveU+2CotZv7m7i+qkgvFn5nAGnrV4h1OzQU42j9dpgOxWi7AttUDMrvkbhCQ==",
+			"dev": true,
+			"dependencies": {
+				"@mischnic/json-sourcemap": "^0.1.0",
+				"@parcel/cache": "2.8.3",
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/events": "2.8.3",
+				"@parcel/fs": "2.8.3",
+				"@parcel/graph": "2.8.3",
+				"@parcel/hash": "2.8.3",
+				"@parcel/logger": "2.8.3",
+				"@parcel/package-manager": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/types": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"@parcel/workers": "2.8.3",
+				"abortcontroller-polyfill": "^1.1.9",
+				"base-x": "^3.0.8",
+				"browserslist": "^4.6.6",
+				"clone": "^2.1.1",
+				"dotenv": "^7.0.0",
+				"dotenv-expand": "^5.1.0",
+				"json5": "^2.2.0",
+				"msgpackr": "^1.5.4",
+				"nullthrows": "^1.1.1",
+				"semver": "^5.7.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/core/node_modules/browserslist": {
+			"version": "4.21.4",
+			"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+			"integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/browserslist"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/browserslist"
+				}
+			],
+			"dependencies": {
+				"caniuse-lite": "^1.0.30001400",
+				"electron-to-chromium": "^1.4.251",
+				"node-releases": "^2.0.6",
+				"update-browserslist-db": "^1.0.9"
+			},
+			"bin": {
+				"browserslist": "cli.js"
+			},
+			"engines": {
+				"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+			}
+		},
+		"node_modules/@parcel/core/node_modules/clone": {
+			"version": "2.1.2",
+			"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+			"integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+			"dev": true,
+			"engines": {
+				"node": ">=0.8"
+			}
+		},
+		"node_modules/@parcel/core/node_modules/dotenv": {
+			"version": "7.0.0",
+			"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz",
+			"integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==",
+			"dev": true,
+			"engines": {
+				"node": ">=6"
+			}
+		},
+		"node_modules/@parcel/core/node_modules/json5": {
+			"version": "2.2.3",
+			"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+			"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+			"dev": true,
+			"bin": {
+				"json5": "lib/cli.js"
+			},
+			"engines": {
+				"node": ">=6"
+			}
+		},
+		"node_modules/@parcel/core/node_modules/update-browserslist-db": {
+			"version": "1.0.10",
+			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+			"integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/browserslist"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/browserslist"
+				}
+			],
+			"dependencies": {
+				"escalade": "^3.1.1",
+				"picocolors": "^1.0.0"
+			},
+			"bin": {
+				"browserslist-lint": "cli.js"
+			},
+			"peerDependencies": {
+				"browserslist": ">= 4.21.0"
+			}
+		},
+		"node_modules/@parcel/diagnostic": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.8.3.tgz",
+			"integrity": "sha512-u7wSzuMhLGWZjVNYJZq/SOViS3uFG0xwIcqXw12w54Uozd6BH8JlhVtVyAsq9kqnn7YFkw6pXHqAo5Tzh4FqsQ==",
+			"dev": true,
+			"dependencies": {
+				"@mischnic/json-sourcemap": "^0.1.0",
+				"nullthrows": "^1.1.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/events": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.8.3.tgz",
+			"integrity": "sha512-hoIS4tAxWp8FJk3628bsgKxEvR7bq2scCVYHSqZ4fTi/s0+VymEATrRCUqf+12e5H47uw1/ZjoqrGtBI02pz4w==",
+			"dev": true,
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/fs": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.8.3.tgz",
+			"integrity": "sha512-y+i+oXbT7lP0e0pJZi/YSm1vg0LDsbycFuHZIL80pNwdEppUAtibfJZCp606B7HOjMAlNZOBo48e3hPG3d8jgQ==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/fs-search": "2.8.3",
+				"@parcel/types": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"@parcel/watcher": "^2.0.7",
+				"@parcel/workers": "2.8.3"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			},
+			"peerDependencies": {
+				"@parcel/core": "^2.8.3"
+			}
+		},
+		"node_modules/@parcel/fs-search": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.8.3.tgz",
+			"integrity": "sha512-DJBT2N8knfN7Na6PP2mett3spQLTqxFrvl0gv+TJRp61T8Ljc4VuUTb0hqBj+belaASIp3Q+e8+SgaFQu7wLiQ==",
+			"dev": true,
+			"dependencies": {
+				"detect-libc": "^1.0.3"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/graph": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.8.3.tgz",
+			"integrity": "sha512-26GL8fYZPdsRhSXCZ0ZWliloK6DHlMJPWh6Z+3VVZ5mnDSbYg/rRKWmrkhnr99ZWmL9rJsv4G74ZwvDEXTMPBg==",
+			"dev": true,
+			"dependencies": {
+				"nullthrows": "^1.1.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/hash": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.8.3.tgz",
+			"integrity": "sha512-FVItqzjWmnyP4ZsVgX+G00+6U2IzOvqDtdwQIWisCcVoXJFCqZJDy6oa2qDDFz96xCCCynjRjPdQx2jYBCpfYw==",
+			"dev": true,
+			"dependencies": {
+				"detect-libc": "^1.0.3",
+				"xxhash-wasm": "^0.4.2"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/logger": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.8.3.tgz",
+			"integrity": "sha512-Kpxd3O/Vs7nYJIzkdmB6Bvp3l/85ydIxaZaPfGSGTYOfaffSOTkhcW9l6WemsxUrlts4za6CaEWcc4DOvaMOPA==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/events": "2.8.3"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/markdown-ansi": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.8.3.tgz",
+			"integrity": "sha512-4v+pjyoh9f5zuU/gJlNvNFGEAb6J90sOBwpKJYJhdWXLZMNFCVzSigxrYO+vCsi8G4rl6/B2c0LcwIMjGPHmFQ==",
+			"dev": true,
+			"dependencies": {
+				"chalk": "^4.1.0"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/markdown-ansi/node_modules/ansi-styles": {
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+			"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+			"dev": true,
+			"dependencies": {
+				"color-convert": "^2.0.1"
+			},
+			"engines": {
+				"node": ">=8"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/ansi-styles?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/markdown-ansi/node_modules/chalk": {
+			"version": "4.1.2",
+			"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+			"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+			"dev": true,
+			"dependencies": {
+				"ansi-styles": "^4.1.0",
+				"supports-color": "^7.1.0"
+			},
+			"engines": {
+				"node": ">=10"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/chalk?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/markdown-ansi/node_modules/color-convert": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+			"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+			"dev": true,
+			"dependencies": {
+				"color-name": "~1.1.4"
+			},
+			"engines": {
+				"node": ">=7.0.0"
+			}
+		},
+		"node_modules/@parcel/markdown-ansi/node_modules/color-name": {
+			"version": "1.1.4",
+			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+			"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+			"dev": true
+		},
+		"node_modules/@parcel/markdown-ansi/node_modules/has-flag": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+			"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/@parcel/markdown-ansi/node_modules/supports-color": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+			"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+			"dev": true,
+			"dependencies": {
+				"has-flag": "^4.0.0"
+			},
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/@parcel/namer-default": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.8.3.tgz",
+			"integrity": "sha512-tJ7JehZviS5QwnxbARd8Uh63rkikZdZs1QOyivUhEvhN+DddSAVEdQLHGPzkl3YRk0tjFhbqo+Jci7TpezuAMw==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"nullthrows": "^1.1.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/node-resolver-core": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.8.3.tgz",
+			"integrity": "sha512-12YryWcA5Iw2WNoEVr/t2HDjYR1iEzbjEcxfh1vaVDdZ020PiGw67g5hyIE/tsnG7SRJ0xdRx1fQ2hDgED+0Ww==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1",
+				"semver": "^5.7.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/optimizer-css": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.8.3.tgz",
+			"integrity": "sha512-JotGAWo8JhuXsQDK0UkzeQB0UR5hDAKvAviXrjqB4KM9wZNLhLleeEAW4Hk8R9smCeQFP6Xg/N/NkLDpqMwT3g==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/utils": "2.8.3",
+				"browserslist": "^4.6.6",
+				"lightningcss": "^1.16.1",
+				"nullthrows": "^1.1.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/optimizer-css/node_modules/browserslist": {
+			"version": "4.21.4",
+			"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+			"integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/browserslist"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/browserslist"
+				}
+			],
+			"dependencies": {
+				"caniuse-lite": "^1.0.30001400",
+				"electron-to-chromium": "^1.4.251",
+				"node-releases": "^2.0.6",
+				"update-browserslist-db": "^1.0.9"
+			},
+			"bin": {
+				"browserslist": "cli.js"
+			},
+			"engines": {
+				"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+			}
+		},
+		"node_modules/@parcel/optimizer-css/node_modules/update-browserslist-db": {
+			"version": "1.0.10",
+			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+			"integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/browserslist"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/browserslist"
+				}
+			],
+			"dependencies": {
+				"escalade": "^3.1.1",
+				"picocolors": "^1.0.0"
+			},
+			"bin": {
+				"browserslist-lint": "cli.js"
+			},
+			"peerDependencies": {
+				"browserslist": ">= 4.21.0"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.8.3.tgz",
+			"integrity": "sha512-L8/fHbEy8Id2a2E0fwR5eKGlv9VYDjrH9PwdJE9Za9v1O/vEsfl/0T/79/x129l5O0yB6EFQkFa20MiK3b+vOg==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3",
+				"htmlnano": "^2.0.0",
+				"nullthrows": "^1.1.1",
+				"posthtml": "^0.16.5",
+				"svgo": "^2.4.0"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/acorn": {
+			"version": "8.8.2",
+			"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+			"integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"bin": {
+				"acorn": "bin/acorn"
+			},
+			"engines": {
+				"node": ">=0.4.0"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/browserslist": {
+			"version": "4.21.4",
+			"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+			"integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/browserslist"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/browserslist"
+				}
+			],
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"caniuse-lite": "^1.0.30001400",
+				"electron-to-chromium": "^1.4.251",
+				"node-releases": "^2.0.6",
+				"update-browserslist-db": "^1.0.9"
+			},
+			"bin": {
+				"browserslist": "cli.js"
+			},
+			"engines": {
+				"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/caniuse-api": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
+			"integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"browserslist": "^4.0.0",
+				"caniuse-lite": "^1.0.0",
+				"lodash.memoize": "^4.1.2",
+				"lodash.uniq": "^4.5.0"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/css-declaration-sorter": {
+			"version": "6.3.1",
+			"resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz",
+			"integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"engines": {
+				"node": "^10 || ^12 || >=14"
+			},
+			"peerDependencies": {
+				"postcss": "^8.0.9"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/css-select": {
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
+			"integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+			"dev": true,
+			"dependencies": {
+				"boolbase": "^1.0.0",
+				"css-what": "^6.0.1",
+				"domhandler": "^4.3.1",
+				"domutils": "^2.8.0",
+				"nth-check": "^2.0.1"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/fb55"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/css-tree": {
+			"version": "1.1.3",
+			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
+			"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+			"dev": true,
+			"dependencies": {
+				"mdn-data": "2.0.14",
+				"source-map": "^0.6.1"
+			},
+			"engines": {
+				"node": ">=8.0.0"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/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/@parcel/optimizer-htmlnano/node_modules/cssnano": {
+			"version": "5.1.14",
+			"resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz",
+			"integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"cssnano-preset-default": "^5.2.13",
+				"lilconfig": "^2.0.3",
+				"yaml": "^1.10.2"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/cssnano"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/cssnano-preset-default": {
+			"version": "5.2.13",
+			"resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz",
+			"integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"css-declaration-sorter": "^6.3.1",
+				"cssnano-utils": "^3.1.0",
+				"postcss-calc": "^8.2.3",
+				"postcss-colormin": "^5.3.0",
+				"postcss-convert-values": "^5.1.3",
+				"postcss-discard-comments": "^5.1.2",
+				"postcss-discard-duplicates": "^5.1.0",
+				"postcss-discard-empty": "^5.1.1",
+				"postcss-discard-overridden": "^5.1.0",
+				"postcss-merge-longhand": "^5.1.7",
+				"postcss-merge-rules": "^5.1.3",
+				"postcss-minify-font-values": "^5.1.0",
+				"postcss-minify-gradients": "^5.1.1",
+				"postcss-minify-params": "^5.1.4",
+				"postcss-minify-selectors": "^5.2.1",
+				"postcss-normalize-charset": "^5.1.0",
+				"postcss-normalize-display-values": "^5.1.0",
+				"postcss-normalize-positions": "^5.1.1",
+				"postcss-normalize-repeat-style": "^5.1.1",
+				"postcss-normalize-string": "^5.1.0",
+				"postcss-normalize-timing-functions": "^5.1.0",
+				"postcss-normalize-unicode": "^5.1.1",
+				"postcss-normalize-url": "^5.1.0",
+				"postcss-normalize-whitespace": "^5.1.1",
+				"postcss-ordered-values": "^5.1.3",
+				"postcss-reduce-initial": "^5.1.1",
+				"postcss-reduce-transforms": "^5.1.0",
+				"postcss-svgo": "^5.1.0",
+				"postcss-unique-selectors": "^5.1.1"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/cssnano-utils": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
+			"integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/dom-serializer": {
+			"version": "1.4.1",
+			"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+			"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.2.0",
+				"entities": "^2.0.0"
+			},
+			"funding": {
+				"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/dom-serializer/node_modules/entities": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+			"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+			"dev": true,
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/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/@parcel/optimizer-htmlnano/node_modules/domhandler": {
+			"version": "4.3.1",
+			"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+			"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.2.0"
+			},
+			"engines": {
+				"node": ">= 4"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domhandler?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/domutils": {
+			"version": "2.8.0",
+			"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+			"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+			"dev": true,
+			"dependencies": {
+				"dom-serializer": "^1.0.1",
+				"domelementtype": "^2.2.0",
+				"domhandler": "^4.2.0"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domutils?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/entities": {
+			"version": "3.0.1",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+			"integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+			"dev": true,
+			"engines": {
+				"node": ">=0.12"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/htmlnano": {
+			"version": "2.0.3",
+			"resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.0.3.tgz",
+			"integrity": "sha512-S4PGGj9RbdgW8LhbILNK7W9JhmYP8zmDY7KDV/8eCiJBQJlbmltp5I0gv8c5ntLljfdxxfmJ+UJVSqyH4mb41A==",
+			"dev": true,
+			"dependencies": {
+				"cosmiconfig": "^7.0.1",
+				"posthtml": "^0.16.5",
+				"timsort": "^0.3.0"
+			},
+			"peerDependencies": {
+				"cssnano": "^5.0.11",
+				"postcss": "^8.3.11",
+				"purgecss": "^5.0.0",
+				"relateurl": "^0.2.7",
+				"srcset": "4.0.0",
+				"svgo": "^2.8.0",
+				"terser": "^5.10.0",
+				"uncss": "^0.17.3"
+			},
+			"peerDependenciesMeta": {
+				"cssnano": {
+					"optional": true
+				},
+				"postcss": {
+					"optional": true
+				},
+				"purgecss": {
+					"optional": true
+				},
+				"relateurl": {
+					"optional": true
+				},
+				"srcset": {
+					"optional": true
+				},
+				"svgo": {
+					"optional": true
+				},
+				"terser": {
+					"optional": true
+				},
+				"uncss": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/htmlparser2": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+			"integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+			"dev": true,
+			"funding": [
+				"https://github.com/fb55/htmlparser2?sponsor=1",
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/fb55"
+				}
+			],
+			"dependencies": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.2.2",
+				"domutils": "^2.8.0",
+				"entities": "^3.0.1"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/mdn-data": {
+			"version": "2.0.14",
+			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+			"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+			"dev": true
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/normalize-url": {
+			"version": "6.1.0",
+			"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+			"integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"engines": {
+				"node": ">=10"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/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/@parcel/optimizer-htmlnano/node_modules/postcss": {
+			"version": "8.4.21",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
+			"integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/postcss/"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/postcss"
+				}
+			],
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"nanoid": "^3.3.4",
+				"picocolors": "^1.0.0",
+				"source-map-js": "^1.0.2"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-calc": {
+			"version": "8.2.4",
+			"resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz",
+			"integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"postcss-selector-parser": "^6.0.9",
+				"postcss-value-parser": "^4.2.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.2"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-colormin": {
+			"version": "5.3.0",
+			"resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz",
+			"integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"browserslist": "^4.16.6",
+				"caniuse-api": "^3.0.0",
+				"colord": "^2.9.1",
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-convert-values": {
+			"version": "5.1.3",
+			"resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz",
+			"integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"browserslist": "^4.21.4",
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-discard-comments": {
+			"version": "5.1.2",
+			"resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
+			"integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-discard-duplicates": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
+			"integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-discard-empty": {
+			"version": "5.1.1",
+			"resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
+			"integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-discard-overridden": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
+			"integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-merge-longhand": {
+			"version": "5.1.7",
+			"resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz",
+			"integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"postcss-value-parser": "^4.2.0",
+				"stylehacks": "^5.1.1"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-merge-rules": {
+			"version": "5.1.3",
+			"resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz",
+			"integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"browserslist": "^4.21.4",
+				"caniuse-api": "^3.0.0",
+				"cssnano-utils": "^3.1.0",
+				"postcss-selector-parser": "^6.0.5"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-minify-font-values": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz",
+			"integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-minify-gradients": {
+			"version": "5.1.1",
+			"resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz",
+			"integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"colord": "^2.9.1",
+				"cssnano-utils": "^3.1.0",
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-minify-params": {
+			"version": "5.1.4",
+			"resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz",
+			"integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"browserslist": "^4.21.4",
+				"cssnano-utils": "^3.1.0",
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-minify-selectors": {
+			"version": "5.2.1",
+			"resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz",
+			"integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"postcss-selector-parser": "^6.0.5"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-charset": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
+			"integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-display-values": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz",
+			"integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-positions": {
+			"version": "5.1.1",
+			"resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz",
+			"integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-repeat-style": {
+			"version": "5.1.1",
+			"resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz",
+			"integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-string": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz",
+			"integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-timing-functions": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz",
+			"integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-unicode": {
+			"version": "5.1.1",
+			"resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz",
+			"integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"browserslist": "^4.21.4",
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-url": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz",
+			"integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"normalize-url": "^6.0.1",
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-normalize-whitespace": {
+			"version": "5.1.1",
+			"resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz",
+			"integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-ordered-values": {
+			"version": "5.1.3",
+			"resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz",
+			"integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"cssnano-utils": "^3.1.0",
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-reduce-initial": {
+			"version": "5.1.1",
+			"resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz",
+			"integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"browserslist": "^4.21.4",
+				"caniuse-api": "^3.0.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-reduce-transforms": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz",
+			"integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"postcss-value-parser": "^4.2.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-selector-parser": {
+			"version": "6.0.11",
+			"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
+			"integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"cssesc": "^3.0.0",
+				"util-deprecate": "^1.0.2"
+			},
+			"engines": {
+				"node": ">=4"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-svgo": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz",
+			"integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"postcss-value-parser": "^4.2.0",
+				"svgo": "^2.7.0"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-unique-selectors": {
+			"version": "5.1.1",
+			"resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz",
+			"integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"postcss-selector-parser": "^6.0.5"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/postcss-value-parser": {
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+			"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/posthtml": {
+			"version": "0.16.6",
+			"resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+			"integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+			"dev": true,
+			"dependencies": {
+				"posthtml-parser": "^0.11.0",
+				"posthtml-render": "^3.0.0"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/posthtml-parser": {
+			"version": "0.11.0",
+			"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+			"integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+			"dev": true,
+			"dependencies": {
+				"htmlparser2": "^7.1.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/posthtml-render": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+			"integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+			"dev": true,
+			"dependencies": {
+				"is-json": "^2.0.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/source-map-support": {
+			"version": "0.5.21",
+			"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+			"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"buffer-from": "^1.0.0",
+				"source-map": "^0.6.0"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/stylehacks": {
+			"version": "5.1.1",
+			"resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
+			"integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"browserslist": "^4.21.4",
+				"postcss-selector-parser": "^6.0.4"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14.0"
+			},
+			"peerDependencies": {
+				"postcss": "^8.2.15"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/svgo": {
+			"version": "2.8.0",
+			"resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz",
+			"integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
+			"dev": true,
+			"dependencies": {
+				"@trysound/sax": "0.2.0",
+				"commander": "^7.2.0",
+				"css-select": "^4.1.3",
+				"css-tree": "^1.1.3",
+				"csso": "^4.2.0",
+				"picocolors": "^1.0.0",
+				"stable": "^0.1.8"
+			},
+			"bin": {
+				"svgo": "bin/svgo"
+			},
+			"engines": {
+				"node": ">=10.13.0"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/svgo/node_modules/commander": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+			"integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+			"dev": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/terser": {
+			"version": "5.16.1",
+			"resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz",
+			"integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"@jridgewell/source-map": "^0.3.2",
+				"acorn": "^8.5.0",
+				"commander": "^2.20.0",
+				"source-map-support": "~0.5.20"
+			},
+			"bin": {
+				"terser": "bin/terser"
+			},
+			"engines": {
+				"node": ">=10"
+			}
+		},
+		"node_modules/@parcel/optimizer-htmlnano/node_modules/update-browserslist-db": {
+			"version": "1.0.10",
+			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+			"integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/browserslist"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/browserslist"
+				}
+			],
+			"optional": true,
+			"peer": true,
+			"dependencies": {
+				"escalade": "^3.1.1",
+				"picocolors": "^1.0.0"
+			},
+			"bin": {
+				"browserslist-lint": "cli.js"
+			},
+			"peerDependencies": {
+				"browserslist": ">= 4.21.0"
+			}
+		},
+		"node_modules/@parcel/optimizer-image": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.8.3.tgz",
+			"integrity": "sha512-SD71sSH27SkCDNUNx9A3jizqB/WIJr3dsfp+JZGZC42tpD/Siim6Rqy9M4To/BpMMQIIiEXa5ofwS+DgTEiEHQ==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"@parcel/workers": "2.8.3",
+				"detect-libc": "^1.0.3"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/optimizer-svgo": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.8.3.tgz",
+			"integrity": "sha512-9KQed99NZnQw3/W4qBYVQ7212rzA9EqrQG019TIWJzkA9tjGBMIm2c/nXpK1tc3hQ3e7KkXkFCQ3C+ibVUnHNA==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"svgo": "^2.4.0"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/optimizer-svgo/node_modules/commander": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+			"integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+			"dev": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@parcel/optimizer-svgo/node_modules/css-select": {
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
+			"integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+			"dev": true,
+			"dependencies": {
+				"boolbase": "^1.0.0",
+				"css-what": "^6.0.1",
+				"domhandler": "^4.3.1",
+				"domutils": "^2.8.0",
+				"nth-check": "^2.0.1"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/fb55"
+			}
+		},
+		"node_modules/@parcel/optimizer-svgo/node_modules/css-tree": {
+			"version": "1.1.3",
+			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
+			"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+			"dev": true,
+			"dependencies": {
+				"mdn-data": "2.0.14",
+				"source-map": "^0.6.1"
+			},
+			"engines": {
+				"node": ">=8.0.0"
+			}
+		},
+		"node_modules/@parcel/optimizer-svgo/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/@parcel/optimizer-svgo/node_modules/dom-serializer": {
+			"version": "1.4.1",
+			"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+			"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.2.0",
+				"entities": "^2.0.0"
+			},
+			"funding": {
+				"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/optimizer-svgo/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/@parcel/optimizer-svgo/node_modules/domhandler": {
+			"version": "4.3.1",
+			"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+			"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.2.0"
+			},
+			"engines": {
+				"node": ">= 4"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domhandler?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/optimizer-svgo/node_modules/domutils": {
+			"version": "2.8.0",
+			"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+			"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+			"dev": true,
+			"dependencies": {
+				"dom-serializer": "^1.0.1",
+				"domelementtype": "^2.2.0",
+				"domhandler": "^4.2.0"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domutils?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/optimizer-svgo/node_modules/mdn-data": {
+			"version": "2.0.14",
+			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+			"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+			"dev": true
+		},
+		"node_modules/@parcel/optimizer-svgo/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/@parcel/optimizer-svgo/node_modules/svgo": {
+			"version": "2.8.0",
+			"resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz",
+			"integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
+			"dev": true,
+			"dependencies": {
+				"@trysound/sax": "0.2.0",
+				"commander": "^7.2.0",
+				"css-select": "^4.1.3",
+				"css-tree": "^1.1.3",
+				"csso": "^4.2.0",
+				"picocolors": "^1.0.0",
+				"stable": "^0.1.8"
+			},
+			"bin": {
+				"svgo": "bin/svgo"
+			},
+			"engines": {
+				"node": ">=10.13.0"
+			}
+		},
+		"node_modules/@parcel/optimizer-terser": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.8.3.tgz",
+			"integrity": "sha512-9EeQlN6zIeUWwzrzu6Q2pQSaYsYGah8MtiQ/hog9KEPlYTP60hBv/+utDyYEHSQhL7y5ym08tPX5GzBvwAD/dA==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1",
+				"terser": "^5.2.0"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/optimizer-terser/node_modules/acorn": {
+			"version": "8.8.2",
+			"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+			"integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+			"dev": true,
+			"bin": {
+				"acorn": "bin/acorn"
+			},
+			"engines": {
+				"node": ">=0.4.0"
+			}
+		},
+		"node_modules/@parcel/optimizer-terser/node_modules/source-map-support": {
+			"version": "0.5.21",
+			"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+			"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+			"dev": true,
+			"dependencies": {
+				"buffer-from": "^1.0.0",
+				"source-map": "^0.6.0"
+			}
+		},
+		"node_modules/@parcel/optimizer-terser/node_modules/terser": {
+			"version": "5.16.1",
+			"resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz",
+			"integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==",
+			"dev": true,
+			"dependencies": {
+				"@jridgewell/source-map": "^0.3.2",
+				"acorn": "^8.5.0",
+				"commander": "^2.20.0",
+				"source-map-support": "~0.5.20"
+			},
+			"bin": {
+				"terser": "bin/terser"
+			},
+			"engines": {
+				"node": ">=10"
+			}
+		},
+		"node_modules/@parcel/package-manager": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.8.3.tgz",
+			"integrity": "sha512-tIpY5pD2lH53p9hpi++GsODy6V3khSTX4pLEGuMpeSYbHthnOViobqIlFLsjni+QA1pfc8NNNIQwSNdGjYflVA==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/fs": "2.8.3",
+				"@parcel/logger": "2.8.3",
+				"@parcel/types": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"@parcel/workers": "2.8.3",
+				"semver": "^5.7.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			},
+			"peerDependencies": {
+				"@parcel/core": "^2.8.3"
+			}
+		},
+		"node_modules/@parcel/packager-css": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.8.3.tgz",
+			"integrity": "sha512-WyvkMmsurlHG8d8oUVm7S+D+cC/T3qGeqogb7sTI52gB6uiywU7lRCizLNqGFyFGIxcVTVHWnSHqItBcLN76lA==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/packager-html": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.8.3.tgz",
+			"integrity": "sha512-OhPu1Hx1RRKJodpiu86ZqL8el2Aa4uhBHF6RAL1Pcrh2EhRRlPf70Sk0tC22zUpYL7es+iNKZ/n0Rl+OWSHWEw==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/types": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1",
+				"posthtml": "^0.16.5"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/packager-html/node_modules/dom-serializer": {
+			"version": "1.4.1",
+			"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+			"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.2.0",
+				"entities": "^2.0.0"
+			},
+			"funding": {
+				"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/packager-html/node_modules/dom-serializer/node_modules/entities": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+			"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+			"dev": true,
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/packager-html/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/@parcel/packager-html/node_modules/domhandler": {
+			"version": "4.3.1",
+			"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+			"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.2.0"
+			},
+			"engines": {
+				"node": ">= 4"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domhandler?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/packager-html/node_modules/domutils": {
+			"version": "2.8.0",
+			"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+			"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+			"dev": true,
+			"dependencies": {
+				"dom-serializer": "^1.0.1",
+				"domelementtype": "^2.2.0",
+				"domhandler": "^4.2.0"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domutils?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/packager-html/node_modules/entities": {
+			"version": "3.0.1",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+			"integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+			"dev": true,
+			"engines": {
+				"node": ">=0.12"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/packager-html/node_modules/htmlparser2": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+			"integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+			"dev": true,
+			"funding": [
+				"https://github.com/fb55/htmlparser2?sponsor=1",
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/fb55"
+				}
+			],
+			"dependencies": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.2.2",
+				"domutils": "^2.8.0",
+				"entities": "^3.0.1"
+			}
+		},
+		"node_modules/@parcel/packager-html/node_modules/posthtml": {
+			"version": "0.16.6",
+			"resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+			"integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+			"dev": true,
+			"dependencies": {
+				"posthtml-parser": "^0.11.0",
+				"posthtml-render": "^3.0.0"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@parcel/packager-html/node_modules/posthtml-parser": {
+			"version": "0.11.0",
+			"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+			"integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+			"dev": true,
+			"dependencies": {
+				"htmlparser2": "^7.1.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/packager-html/node_modules/posthtml-render": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+			"integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+			"dev": true,
+			"dependencies": {
+				"is-json": "^2.0.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/packager-js": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.8.3.tgz",
+			"integrity": "sha512-0pGKC3Ax5vFuxuZCRB+nBucRfFRz4ioie19BbDxYnvBxrd4M3FIu45njf6zbBYsI9eXqaDnL1b3DcZJfYqtIzw==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/hash": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/utils": "2.8.3",
+				"globals": "^13.2.0",
+				"nullthrows": "^1.1.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/packager-js/node_modules/globals": {
+			"version": "13.19.0",
+			"resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
+			"integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
+			"dev": true,
+			"dependencies": {
+				"type-fest": "^0.20.2"
+			},
+			"engines": {
+				"node": ">=8"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/@parcel/packager-raw": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.8.3.tgz",
+			"integrity": "sha512-BA6enNQo1RCnco9MhkxGrjOk59O71IZ9DPKu3lCtqqYEVd823tXff2clDKHK25i6cChmeHu6oB1Rb73hlPqhUA==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/packager-svg": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.8.3.tgz",
+			"integrity": "sha512-mvIoHpmv5yzl36OjrklTDFShLUfPFTwrmp1eIwiszGdEBuQaX7JVI3Oo2jbVQgcN4W7J6SENzGQ3Q5hPTW3pMw==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/types": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"posthtml": "^0.16.4"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/packager-svg/node_modules/dom-serializer": {
+			"version": "1.4.1",
+			"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+			"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.2.0",
+				"entities": "^2.0.0"
+			},
+			"funding": {
+				"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/packager-svg/node_modules/dom-serializer/node_modules/entities": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+			"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+			"dev": true,
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/packager-svg/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/@parcel/packager-svg/node_modules/domhandler": {
+			"version": "4.3.1",
+			"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+			"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.2.0"
+			},
+			"engines": {
+				"node": ">= 4"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domhandler?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/packager-svg/node_modules/domutils": {
+			"version": "2.8.0",
+			"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+			"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+			"dev": true,
+			"dependencies": {
+				"dom-serializer": "^1.0.1",
+				"domelementtype": "^2.2.0",
+				"domhandler": "^4.2.0"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domutils?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/packager-svg/node_modules/entities": {
+			"version": "3.0.1",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+			"integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+			"dev": true,
+			"engines": {
+				"node": ">=0.12"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/packager-svg/node_modules/htmlparser2": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+			"integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+			"dev": true,
+			"funding": [
+				"https://github.com/fb55/htmlparser2?sponsor=1",
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/fb55"
+				}
+			],
+			"dependencies": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.2.2",
+				"domutils": "^2.8.0",
+				"entities": "^3.0.1"
+			}
+		},
+		"node_modules/@parcel/packager-svg/node_modules/posthtml": {
+			"version": "0.16.6",
+			"resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+			"integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+			"dev": true,
+			"dependencies": {
+				"posthtml-parser": "^0.11.0",
+				"posthtml-render": "^3.0.0"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@parcel/packager-svg/node_modules/posthtml-parser": {
+			"version": "0.11.0",
+			"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+			"integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+			"dev": true,
+			"dependencies": {
+				"htmlparser2": "^7.1.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/packager-svg/node_modules/posthtml-render": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+			"integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+			"dev": true,
+			"dependencies": {
+				"is-json": "^2.0.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/plugin": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.8.3.tgz",
+			"integrity": "sha512-jZ6mnsS4D9X9GaNnvrixDQwlUQJCohDX2hGyM0U0bY2NWU8Km97SjtoCpWjq+XBCx/gpC4g58+fk9VQeZq2vlw==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/types": "2.8.3"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/reporter-cli": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.8.3.tgz",
+			"integrity": "sha512-3sJkS6tFFzgIOz3u3IpD/RsmRxvOKKiQHOTkiiqRt1l44mMDGKS7zANRnJYsQzdCsgwc9SOP30XFgJwtoVlMbw==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/types": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"chalk": "^4.1.0",
+				"term-size": "^2.2.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/reporter-cli/node_modules/ansi-styles": {
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+			"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+			"dev": true,
+			"dependencies": {
+				"color-convert": "^2.0.1"
+			},
+			"engines": {
+				"node": ">=8"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/ansi-styles?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/reporter-cli/node_modules/chalk": {
+			"version": "4.1.2",
+			"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+			"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+			"dev": true,
+			"dependencies": {
+				"ansi-styles": "^4.1.0",
+				"supports-color": "^7.1.0"
+			},
+			"engines": {
+				"node": ">=10"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/chalk?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/reporter-cli/node_modules/color-convert": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+			"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+			"dev": true,
+			"dependencies": {
+				"color-name": "~1.1.4"
+			},
+			"engines": {
+				"node": ">=7.0.0"
+			}
+		},
+		"node_modules/@parcel/reporter-cli/node_modules/color-name": {
+			"version": "1.1.4",
+			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+			"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+			"dev": true
+		},
+		"node_modules/@parcel/reporter-cli/node_modules/has-flag": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+			"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/@parcel/reporter-cli/node_modules/supports-color": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+			"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+			"dev": true,
+			"dependencies": {
+				"has-flag": "^4.0.0"
+			},
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/@parcel/reporter-dev-server": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.8.3.tgz",
+			"integrity": "sha512-Y8C8hzgzTd13IoWTj+COYXEyCkXfmVJs3//GDBsH22pbtSFMuzAZd+8J9qsCo0EWpiDow7V9f1LischvEh3FbQ==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/resolver-default": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.8.3.tgz",
+			"integrity": "sha512-k0B5M/PJ+3rFbNj4xZSBr6d6HVIe6DH/P3dClLcgBYSXAvElNDfXgtIimbjCyItFkW9/BfcgOVKEEIZOeySH/A==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/node-resolver-core": "2.8.3",
+				"@parcel/plugin": "2.8.3"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/runtime-browser-hmr": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.8.3.tgz",
+			"integrity": "sha512-2O1PYi2j/Q0lTyGNV3JdBYwg4rKo6TEVFlYGdd5wCYU9ZIN9RRuoCnWWH2qCPj3pjIVtBeppYxzfVjPEHINWVg==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/runtime-js": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.8.3.tgz",
+			"integrity": "sha512-IRja0vNKwvMtPgIqkBQh0QtRn0XcxNC8HU1jrgWGRckzu10qJWO+5ULgtOeR4pv9krffmMPqywGXw6l/gvJKYQ==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/runtime-react-refresh": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.8.3.tgz",
+			"integrity": "sha512-2v/qFKp00MfG0234OdOgQNAo6TLENpFYZMbVbAsPMY9ITiqG73MrEsrGXVoGbYiGTMB/Toer/lSWlJxtacOCuA==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"react-error-overlay": "6.0.9",
+				"react-refresh": "^0.9.0"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/runtime-service-worker": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.8.3.tgz",
+			"integrity": "sha512-/Skkw+EeRiwzOJso5fQtK8c9b452uWLNhQH1ISTodbmlcyB4YalAiSsyHCtMYD0c3/t5Sx4ZS7vxBAtQd0RvOw==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/source-map": {
+			"version": "2.1.1",
+			"resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz",
+			"integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==",
+			"dev": true,
+			"dependencies": {
+				"detect-libc": "^1.0.3"
+			},
+			"engines": {
+				"node": "^12.18.3 || >=14"
+			}
+		},
+		"node_modules/@parcel/transformer-babel": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.8.3.tgz",
+			"integrity": "sha512-L6lExfpvvC7T/g3pxf3CIJRouQl+sgrSzuWQ0fD4PemUDHvHchSP4SNUVnd6gOytF3Y1KpnEZIunQGi5xVqQCQ==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/utils": "2.8.3",
+				"browserslist": "^4.6.6",
+				"json5": "^2.2.0",
+				"nullthrows": "^1.1.1",
+				"semver": "^5.7.0"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/transformer-babel/node_modules/browserslist": {
+			"version": "4.21.4",
+			"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+			"integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/browserslist"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/browserslist"
+				}
+			],
+			"dependencies": {
+				"caniuse-lite": "^1.0.30001400",
+				"electron-to-chromium": "^1.4.251",
+				"node-releases": "^2.0.6",
+				"update-browserslist-db": "^1.0.9"
+			},
+			"bin": {
+				"browserslist": "cli.js"
+			},
+			"engines": {
+				"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+			}
+		},
+		"node_modules/@parcel/transformer-babel/node_modules/json5": {
+			"version": "2.2.3",
+			"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+			"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+			"dev": true,
+			"bin": {
+				"json5": "lib/cli.js"
+			},
+			"engines": {
+				"node": ">=6"
+			}
+		},
+		"node_modules/@parcel/transformer-babel/node_modules/update-browserslist-db": {
+			"version": "1.0.10",
+			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+			"integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/browserslist"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/browserslist"
+				}
+			],
+			"dependencies": {
+				"escalade": "^3.1.1",
+				"picocolors": "^1.0.0"
+			},
+			"bin": {
+				"browserslist-lint": "cli.js"
+			},
+			"peerDependencies": {
+				"browserslist": ">= 4.21.0"
+			}
+		},
+		"node_modules/@parcel/transformer-css": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.8.3.tgz",
+			"integrity": "sha512-xTqFwlSXtnaYen9ivAgz+xPW7yRl/u4QxtnDyDpz5dr8gSeOpQYRcjkd4RsYzKsWzZcGtB5EofEk8ayUbWKEUg==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/utils": "2.8.3",
+				"browserslist": "^4.6.6",
+				"lightningcss": "^1.16.1",
+				"nullthrows": "^1.1.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/transformer-css/node_modules/browserslist": {
+			"version": "4.21.4",
+			"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+			"integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/browserslist"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/browserslist"
+				}
+			],
+			"dependencies": {
+				"caniuse-lite": "^1.0.30001400",
+				"electron-to-chromium": "^1.4.251",
+				"node-releases": "^2.0.6",
+				"update-browserslist-db": "^1.0.9"
+			},
+			"bin": {
+				"browserslist": "cli.js"
+			},
+			"engines": {
+				"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+			}
+		},
+		"node_modules/@parcel/transformer-css/node_modules/update-browserslist-db": {
+			"version": "1.0.10",
+			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+			"integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/browserslist"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/browserslist"
+				}
+			],
+			"dependencies": {
+				"escalade": "^3.1.1",
+				"picocolors": "^1.0.0"
+			},
+			"bin": {
+				"browserslist-lint": "cli.js"
+			},
+			"peerDependencies": {
+				"browserslist": ">= 4.21.0"
+			}
+		},
+		"node_modules/@parcel/transformer-html": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.8.3.tgz",
+			"integrity": "sha512-kIZO3qsMYTbSnSpl9cnZog+SwL517ffWH54JeB410OSAYF1ouf4n5v9qBnALZbuCCmPwJRGs4jUtE452hxwN4g==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/hash": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"nullthrows": "^1.1.1",
+				"posthtml": "^0.16.5",
+				"posthtml-parser": "^0.10.1",
+				"posthtml-render": "^3.0.0",
+				"semver": "^5.7.1",
+				"srcset": "4"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/transformer-html/node_modules/dom-serializer": {
+			"version": "1.4.1",
+			"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+			"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.2.0",
+				"entities": "^2.0.0"
+			},
+			"funding": {
+				"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-html/node_modules/dom-serializer/node_modules/entities": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+			"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+			"dev": true,
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-html/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/@parcel/transformer-html/node_modules/domhandler": {
+			"version": "4.3.1",
+			"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+			"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.2.0"
+			},
+			"engines": {
+				"node": ">= 4"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domhandler?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-html/node_modules/domutils": {
+			"version": "2.8.0",
+			"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+			"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+			"dev": true,
+			"dependencies": {
+				"dom-serializer": "^1.0.1",
+				"domelementtype": "^2.2.0",
+				"domhandler": "^4.2.0"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domutils?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-html/node_modules/entities": {
+			"version": "3.0.1",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+			"integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+			"dev": true,
+			"engines": {
+				"node": ">=0.12"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-html/node_modules/htmlparser2": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+			"integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+			"dev": true,
+			"funding": [
+				"https://github.com/fb55/htmlparser2?sponsor=1",
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/fb55"
+				}
+			],
+			"dependencies": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.2.2",
+				"domutils": "^2.8.0",
+				"entities": "^3.0.1"
+			}
+		},
+		"node_modules/@parcel/transformer-html/node_modules/posthtml": {
+			"version": "0.16.6",
+			"resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+			"integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+			"dev": true,
+			"dependencies": {
+				"posthtml-parser": "^0.11.0",
+				"posthtml-render": "^3.0.0"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@parcel/transformer-html/node_modules/posthtml-parser": {
+			"version": "0.10.2",
+			"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz",
+			"integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==",
+			"dev": true,
+			"dependencies": {
+				"htmlparser2": "^7.1.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/transformer-html/node_modules/posthtml-render": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+			"integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+			"dev": true,
+			"dependencies": {
+				"is-json": "^2.0.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/transformer-html/node_modules/posthtml/node_modules/posthtml-parser": {
+			"version": "0.11.0",
+			"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+			"integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+			"dev": true,
+			"dependencies": {
+				"htmlparser2": "^7.1.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/transformer-image": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.8.3.tgz",
+			"integrity": "sha512-cO4uptcCGTi5H6bvTrAWEFUsTNhA4kCo8BSvRSCHA2sf/4C5tGQPHt3JhdO0GQLPwZRCh/R41EkJs5HZ8A8DAg==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"@parcel/workers": "2.8.3",
+				"nullthrows": "^1.1.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"peerDependencies": {
+				"@parcel/core": "^2.8.3"
+			}
+		},
+		"node_modules/@parcel/transformer-js": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.8.3.tgz",
+			"integrity": "sha512-9Qd6bib+sWRcpovvzvxwy/PdFrLUXGfmSW9XcVVG8pvgXsZPFaNjnNT8stzGQj1pQiougCoxMY4aTM5p1lGHEQ==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/utils": "2.8.3",
+				"@parcel/workers": "2.8.3",
+				"@swc/helpers": "^0.4.12",
+				"browserslist": "^4.6.6",
+				"detect-libc": "^1.0.3",
+				"nullthrows": "^1.1.1",
+				"regenerator-runtime": "^0.13.7",
+				"semver": "^5.7.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			},
+			"peerDependencies": {
+				"@parcel/core": "^2.8.3"
+			}
+		},
+		"node_modules/@parcel/transformer-js/node_modules/browserslist": {
+			"version": "4.21.4",
+			"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+			"integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/browserslist"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/browserslist"
+				}
+			],
+			"dependencies": {
+				"caniuse-lite": "^1.0.30001400",
+				"electron-to-chromium": "^1.4.251",
+				"node-releases": "^2.0.6",
+				"update-browserslist-db": "^1.0.9"
+			},
+			"bin": {
+				"browserslist": "cli.js"
+			},
+			"engines": {
+				"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+			}
+		},
+		"node_modules/@parcel/transformer-js/node_modules/update-browserslist-db": {
+			"version": "1.0.10",
+			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+			"integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/browserslist"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/browserslist"
+				}
+			],
+			"dependencies": {
+				"escalade": "^3.1.1",
+				"picocolors": "^1.0.0"
+			},
+			"bin": {
+				"browserslist-lint": "cli.js"
+			},
+			"peerDependencies": {
+				"browserslist": ">= 4.21.0"
+			}
+		},
+		"node_modules/@parcel/transformer-json": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.8.3.tgz",
+			"integrity": "sha512-B7LmVq5Q7bZO4ERb6NHtRuUKWGysEeaj9H4zelnyBv+wLgpo4f5FCxSE1/rTNmP9u1qHvQ3scGdK6EdSSokGPg==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3",
+				"json5": "^2.2.0"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/transformer-json/node_modules/json5": {
+			"version": "2.2.3",
+			"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+			"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+			"dev": true,
+			"bin": {
+				"json5": "lib/cli.js"
+			},
+			"engines": {
+				"node": ">=6"
+			}
+		},
+		"node_modules/@parcel/transformer-postcss": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.8.3.tgz",
+			"integrity": "sha512-e8luB/poIlz6jBsD1Izms+6ElbyzuoFVa4lFVLZnTAChI3UxPdt9p/uTsIO46HyBps/Bk8ocvt3J4YF84jzmvg==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/hash": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"clone": "^2.1.1",
+				"nullthrows": "^1.1.1",
+				"postcss-value-parser": "^4.2.0",
+				"semver": "^5.7.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/transformer-postcss/node_modules/clone": {
+			"version": "2.1.2",
+			"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+			"integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+			"dev": true,
+			"engines": {
+				"node": ">=0.8"
+			}
+		},
+		"node_modules/@parcel/transformer-postcss/node_modules/postcss-value-parser": {
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+			"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+			"dev": true
+		},
+		"node_modules/@parcel/transformer-posthtml": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.8.3.tgz",
+			"integrity": "sha512-pkzf9Smyeaw4uaRLsT41RGrPLT5Aip8ZPcntawAfIo+KivBQUV0erY1IvHYjyfFzq1ld/Fo2Ith9He6mxpPifA==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1",
+				"posthtml": "^0.16.5",
+				"posthtml-parser": "^0.10.1",
+				"posthtml-render": "^3.0.0",
+				"semver": "^5.7.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/transformer-posthtml/node_modules/dom-serializer": {
+			"version": "1.4.1",
+			"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+			"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.2.0",
+				"entities": "^2.0.0"
+			},
+			"funding": {
+				"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-posthtml/node_modules/dom-serializer/node_modules/entities": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+			"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+			"dev": true,
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-posthtml/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/@parcel/transformer-posthtml/node_modules/domhandler": {
+			"version": "4.3.1",
+			"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+			"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.2.0"
+			},
+			"engines": {
+				"node": ">= 4"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domhandler?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-posthtml/node_modules/domutils": {
+			"version": "2.8.0",
+			"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+			"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+			"dev": true,
+			"dependencies": {
+				"dom-serializer": "^1.0.1",
+				"domelementtype": "^2.2.0",
+				"domhandler": "^4.2.0"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domutils?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-posthtml/node_modules/entities": {
+			"version": "3.0.1",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+			"integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+			"dev": true,
+			"engines": {
+				"node": ">=0.12"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-posthtml/node_modules/htmlparser2": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+			"integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+			"dev": true,
+			"funding": [
+				"https://github.com/fb55/htmlparser2?sponsor=1",
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/fb55"
+				}
+			],
+			"dependencies": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.2.2",
+				"domutils": "^2.8.0",
+				"entities": "^3.0.1"
+			}
+		},
+		"node_modules/@parcel/transformer-posthtml/node_modules/posthtml": {
+			"version": "0.16.6",
+			"resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+			"integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+			"dev": true,
+			"dependencies": {
+				"posthtml-parser": "^0.11.0",
+				"posthtml-render": "^3.0.0"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@parcel/transformer-posthtml/node_modules/posthtml-parser": {
+			"version": "0.10.2",
+			"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz",
+			"integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==",
+			"dev": true,
+			"dependencies": {
+				"htmlparser2": "^7.1.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/transformer-posthtml/node_modules/posthtml-render": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+			"integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+			"dev": true,
+			"dependencies": {
+				"is-json": "^2.0.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/transformer-posthtml/node_modules/posthtml/node_modules/posthtml-parser": {
+			"version": "0.11.0",
+			"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+			"integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+			"dev": true,
+			"dependencies": {
+				"htmlparser2": "^7.1.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/transformer-raw": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.8.3.tgz",
+			"integrity": "sha512-G+5cXnd2/1O3nV/pgRxVKZY/HcGSseuhAe71gQdSQftb8uJEURyUHoQ9Eh0JUD3MgWh9V+nIKoyFEZdf9T0sUQ==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/transformer-react-refresh-wrap": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.8.3.tgz",
+			"integrity": "sha512-q8AAoEvBnCf/nPvgOwFwKZfEl/thwq7c2duxXkhl+tTLDRN2vGmyz4355IxCkavSX+pLWSQ5MexklSEeMkgthg==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"react-refresh": "^0.9.0"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/transformer-svg": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.8.3.tgz",
+			"integrity": "sha512-3Zr/gBzxi1ZH1fftH/+KsZU7w5GqkmxlB0ZM8ovS5E/Pl1lq1t0xvGJue9m2VuQqP8Mxfpl5qLFmsKlhaZdMIQ==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/hash": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"nullthrows": "^1.1.1",
+				"posthtml": "^0.16.5",
+				"posthtml-parser": "^0.10.1",
+				"posthtml-render": "^3.0.0",
+				"semver": "^5.7.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0",
+				"parcel": "^2.8.3"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/transformer-svg/node_modules/dom-serializer": {
+			"version": "1.4.1",
+			"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+			"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.2.0",
+				"entities": "^2.0.0"
+			},
+			"funding": {
+				"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-svg/node_modules/dom-serializer/node_modules/entities": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+			"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+			"dev": true,
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-svg/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/@parcel/transformer-svg/node_modules/domhandler": {
+			"version": "4.3.1",
+			"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+			"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+			"dev": true,
+			"dependencies": {
+				"domelementtype": "^2.2.0"
+			},
+			"engines": {
+				"node": ">= 4"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domhandler?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-svg/node_modules/domutils": {
+			"version": "2.8.0",
+			"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+			"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+			"dev": true,
+			"dependencies": {
+				"dom-serializer": "^1.0.1",
+				"domelementtype": "^2.2.0",
+				"domhandler": "^4.2.0"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/domutils?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-svg/node_modules/entities": {
+			"version": "3.0.1",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+			"integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+			"dev": true,
+			"engines": {
+				"node": ">=0.12"
+			},
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/transformer-svg/node_modules/htmlparser2": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+			"integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+			"dev": true,
+			"funding": [
+				"https://github.com/fb55/htmlparser2?sponsor=1",
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/fb55"
+				}
+			],
+			"dependencies": {
+				"domelementtype": "^2.0.1",
+				"domhandler": "^4.2.2",
+				"domutils": "^2.8.0",
+				"entities": "^3.0.1"
+			}
+		},
+		"node_modules/@parcel/transformer-svg/node_modules/posthtml": {
+			"version": "0.16.6",
+			"resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+			"integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+			"dev": true,
+			"dependencies": {
+				"posthtml-parser": "^0.11.0",
+				"posthtml-render": "^3.0.0"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
+		"node_modules/@parcel/transformer-svg/node_modules/posthtml-parser": {
+			"version": "0.10.2",
+			"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz",
+			"integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==",
+			"dev": true,
+			"dependencies": {
+				"htmlparser2": "^7.1.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/transformer-svg/node_modules/posthtml-render": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+			"integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+			"dev": true,
+			"dependencies": {
+				"is-json": "^2.0.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/transformer-svg/node_modules/posthtml/node_modules/posthtml-parser": {
+			"version": "0.11.0",
+			"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+			"integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+			"dev": true,
+			"dependencies": {
+				"htmlparser2": "^7.1.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@parcel/types": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.8.3.tgz",
+			"integrity": "sha512-FECA1FB7+0UpITKU0D6TgGBpGxYpVSMNEENZbSJxFSajNy3wrko+zwBKQmFOLOiPcEtnGikxNs+jkFWbPlUAtw==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/cache": "2.8.3",
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/fs": "2.8.3",
+				"@parcel/package-manager": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/workers": "2.8.3",
+				"utility-types": "^3.10.0"
+			}
+		},
+		"node_modules/@parcel/utils": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.8.3.tgz",
+			"integrity": "sha512-IhVrmNiJ+LOKHcCivG5dnuLGjhPYxQ/IzbnF2DKNQXWBTsYlHkJZpmz7THoeLtLliGmSOZ3ZCsbR8/tJJKmxjA==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/codeframe": "2.8.3",
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/hash": "2.8.3",
+				"@parcel/logger": "2.8.3",
+				"@parcel/markdown-ansi": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"chalk": "^4.1.0"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/utils/node_modules/ansi-styles": {
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+			"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+			"dev": true,
+			"dependencies": {
+				"color-convert": "^2.0.1"
+			},
+			"engines": {
+				"node": ">=8"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/ansi-styles?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/utils/node_modules/chalk": {
+			"version": "4.1.2",
+			"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+			"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+			"dev": true,
+			"dependencies": {
+				"ansi-styles": "^4.1.0",
+				"supports-color": "^7.1.0"
+			},
+			"engines": {
+				"node": ">=10"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/chalk?sponsor=1"
+			}
+		},
+		"node_modules/@parcel/utils/node_modules/color-convert": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+			"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+			"dev": true,
+			"dependencies": {
+				"color-name": "~1.1.4"
+			},
+			"engines": {
+				"node": ">=7.0.0"
+			}
+		},
+		"node_modules/@parcel/utils/node_modules/color-name": {
+			"version": "1.1.4",
+			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+			"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+			"dev": true
+		},
+		"node_modules/@parcel/utils/node_modules/has-flag": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+			"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/@parcel/utils/node_modules/supports-color": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+			"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+			"dev": true,
+			"dependencies": {
+				"has-flag": "^4.0.0"
+			},
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/@parcel/watcher": {
+			"version": "2.1.0",
+			"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.1.0.tgz",
+			"integrity": "sha512-8s8yYjd19pDSsBpbkOHnT6Z2+UJSuLQx61pCFM0s5wSRvKCEMDjd/cHY3/GI1szHIWbpXpsJdg3V6ISGGx9xDw==",
+			"dev": true,
+			"hasInstallScript": true,
+			"dependencies": {
+				"is-glob": "^4.0.3",
+				"micromatch": "^4.0.5",
+				"node-addon-api": "^3.2.1",
+				"node-gyp-build": "^4.3.0"
+			},
+			"engines": {
+				"node": ">= 10.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/@parcel/watcher/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/@parcel/watcher/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/@parcel/watcher/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/@parcel/watcher/node_modules/micromatch": {
+			"version": "4.0.5",
+			"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+			"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+			"dev": true,
+			"dependencies": {
+				"braces": "^3.0.2",
+				"picomatch": "^2.3.1"
+			},
+			"engines": {
+				"node": ">=8.6"
+			}
+		},
+		"node_modules/@parcel/watcher/node_modules/node-addon-api": {
+			"version": "3.2.1",
+			"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
+			"integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==",
+			"dev": true
+		},
+		"node_modules/@parcel/watcher/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/@parcel/workers": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.8.3.tgz",
+			"integrity": "sha512-+AxBnKgjqVpUHBcHLWIHcjYgKIvHIpZjN33mG5LG9XXvrZiqdWvouEzqEXlVLq5VzzVbKIQQcmsvRy138YErkg==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/logger": "2.8.3",
+				"@parcel/types": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"chrome-trace-event": "^1.0.2",
+				"nullthrows": "^1.1.1"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			},
+			"peerDependencies": {
+				"@parcel/core": "^2.8.3"
+			}
+		},
+		"node_modules/@swc/helpers": {
+			"version": "0.4.14",
+			"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz",
+			"integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==",
+			"dev": true,
+			"dependencies": {
+				"tslib": "^2.4.0"
+			}
+		},
+		"node_modules/@trysound/sax": {
+			"version": "0.2.0",
+			"resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
+			"integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
+			"dev": true,
+			"engines": {
+				"node": ">=10.13.0"
+			}
+		},
+		"node_modules/@types/node": {
+			"version": "18.11.18",
+			"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
+			"integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==",
+			"dev": true,
+			"optional": true
+		},
+		"node_modules/@types/parse-json": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+			"integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+			"dev": true
+		},
+		"node_modules/@types/yauzl": {
+			"version": "2.10.0",
+			"resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
+			"integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
+			"dev": true,
+			"optional": true,
+			"dependencies": {
+				"@types/node": "*"
+			}
+		},
+		"node_modules/abortcontroller-polyfill": {
+			"version": "1.7.5",
+			"resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz",
+			"integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==",
+			"dev": true
+		},
+		"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/ansi-styles": {
+			"version": "3.2.1",
+			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+			"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+			"dev": true,
+			"dependencies": {
+				"color-convert": "^1.9.0"
+			},
+			"engines": {
+				"node": ">=4"
+			}
+		},
+		"node_modules/argparse": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+			"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+			"dev": true
+		},
+		"node_modules/balanced-match": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+			"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+			"dev": true
+		},
+		"node_modules/base-x": {
+			"version": "3.0.9",
+			"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+			"integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+			"dev": true,
+			"dependencies": {
+				"safe-buffer": "^5.0.1"
+			}
+		},
+		"node_modules/base64-js": {
+			"version": "1.5.1",
+			"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+			"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/feross"
+				},
+				{
+					"type": "patreon",
+					"url": "https://www.patreon.com/feross"
+				},
+				{
+					"type": "consulting",
+					"url": "https://feross.org/support"
+				}
+			]
+		},
+		"node_modules/bl": {
+			"version": "4.1.0",
+			"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+			"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+			"dev": true,
+			"dependencies": {
+				"buffer": "^5.5.0",
+				"inherits": "^2.0.4",
+				"readable-stream": "^3.4.0"
+			}
+		},
+		"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/brace-expansion": {
+			"version": "1.1.11",
+			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+			"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+			"dev": true,
+			"dependencies": {
+				"balanced-match": "^1.0.0",
+				"concat-map": "0.0.1"
+			}
+		},
+		"node_modules/buffer": {
+			"version": "5.7.1",
+			"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+			"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/feross"
+				},
+				{
+					"type": "patreon",
+					"url": "https://www.patreon.com/feross"
+				},
+				{
+					"type": "consulting",
+					"url": "https://feross.org/support"
+				}
+			],
+			"dependencies": {
+				"base64-js": "^1.3.1",
+				"ieee754": "^1.1.13"
+			}
+		},
+		"node_modules/buffer-crc32": {
+			"version": "0.2.13",
+			"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+			"integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+			"dev": true,
+			"engines": {
+				"node": "*"
+			}
+		},
+		"node_modules/buffer-from": {
+			"version": "1.1.2",
+			"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+			"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+			"dev": true
+		},
+		"node_modules/callsites": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+			"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=6"
+			}
+		},
+		"node_modules/caniuse-lite": {
+			"version": "1.0.30001448",
+			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz",
+			"integrity": "sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/browserslist"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+				}
+			]
+		},
+		"node_modules/chalk": {
+			"version": "2.4.2",
+			"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+			"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+			"dev": true,
+			"dependencies": {
+				"ansi-styles": "^3.2.1",
+				"escape-string-regexp": "^1.0.5",
+				"supports-color": "^5.3.0"
+			},
+			"engines": {
+				"node": ">=4"
+			}
+		},
+		"node_modules/chownr": {
+			"version": "1.1.4",
+			"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+			"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+			"dev": true
+		},
+		"node_modules/chrome-trace-event": {
+			"version": "1.0.3",
+			"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+			"integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+			"dev": true,
+			"engines": {
+				"node": ">=6.0"
+			}
+		},
+		"node_modules/color-convert": {
+			"version": "1.9.3",
+			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+			"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+			"dev": true,
+			"dependencies": {
+				"color-name": "1.1.3"
+			}
+		},
+		"node_modules/color-name": {
+			"version": "1.1.3",
+			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+			"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+			"dev": true
+		},
+		"node_modules/colord": {
+			"version": "2.9.3",
+			"resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
+			"integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
+		"node_modules/commander": {
+			"version": "2.20.3",
+			"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+			"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+			"dev": true
+		},
+		"node_modules/concat-map": {
+			"version": "0.0.1",
+			"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+			"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+			"dev": true
+		},
+		"node_modules/cosmiconfig": {
+			"version": "7.1.0",
+			"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+			"integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+			"dev": true,
+			"dependencies": {
+				"@types/parse-json": "^4.0.0",
+				"import-fresh": "^3.2.1",
+				"parse-json": "^5.0.0",
+				"path-type": "^4.0.0",
+				"yaml": "^1.10.0"
+			},
+			"engines": {
+				"node": ">=10"
+			}
+		},
+		"node_modules/cross-fetch": {
+			"version": "3.1.5",
+			"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
+			"integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
+			"dev": true,
+			"dependencies": {
+				"node-fetch": "2.6.7"
+			}
+		},
+		"node_modules/cssesc": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+			"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"bin": {
+				"cssesc": "bin/cssesc"
+			},
+			"engines": {
+				"node": ">=4"
+			}
+		},
+		"node_modules/csso": {
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz",
+			"integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
+			"dev": true,
+			"dependencies": {
+				"css-tree": "^1.1.2"
+			},
+			"engines": {
+				"node": ">=8.0.0"
+			}
+		},
+		"node_modules/csso/node_modules/css-tree": {
+			"version": "1.1.3",
+			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
+			"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+			"dev": true,
+			"dependencies": {
+				"mdn-data": "2.0.14",
+				"source-map": "^0.6.1"
+			},
+			"engines": {
+				"node": ">=8.0.0"
+			}
+		},
+		"node_modules/csso/node_modules/mdn-data": {
+			"version": "2.0.14",
+			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+			"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+			"dev": true
+		},
+		"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/detect-libc": {
+			"version": "1.0.3",
+			"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+			"integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+			"dev": true,
+			"bin": {
+				"detect-libc": "bin/detect-libc.js"
+			},
+			"engines": {
+				"node": ">=0.10"
+			}
+		},
+		"node_modules/devtools-protocol": {
+			"version": "0.0.1082910",
+			"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1082910.tgz",
+			"integrity": "sha512-RqoZ2GmqaNxyx+99L/RemY5CkwG9D0WEfOKxekwCRXOGrDCep62ngezEJUVMq6rISYQ+085fJnWDQqGHlxVNww==",
+			"dev": true
+		},
+		"node_modules/dotenv-expand": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
+			"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
+			"dev": true
+		},
+		"node_modules/electron-to-chromium": {
+			"version": "1.4.284",
+			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
+			"integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
+			"dev": true
+		},
+		"node_modules/end-of-stream": {
+			"version": "1.4.4",
+			"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+			"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+			"dev": true,
+			"dependencies": {
+				"once": "^1.4.0"
+			}
+		},
+		"node_modules/entities": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+			"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+			"dev": true,
+			"funding": {
+				"url": "https://github.com/fb55/entities?sponsor=1"
+			}
+		},
+		"node_modules/error-ex": {
+			"version": "1.3.2",
+			"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+			"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+			"dev": true,
+			"dependencies": {
+				"is-arrayish": "^0.2.1"
+			}
+		},
+		"node_modules/escalade": {
+			"version": "3.1.1",
+			"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+			"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+			"dev": true,
+			"engines": {
+				"node": ">=6"
+			}
+		},
+		"node_modules/escape-string-regexp": {
+			"version": "1.0.5",
+			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+			"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+			"dev": true,
+			"engines": {
+				"node": ">=0.8.0"
+			}
+		},
+		"node_modules/extract-zip": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+			"integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+			"dev": true,
+			"dependencies": {
+				"debug": "^4.1.1",
+				"get-stream": "^5.1.0",
+				"yauzl": "^2.10.0"
+			},
+			"bin": {
+				"extract-zip": "cli.js"
+			},
+			"engines": {
+				"node": ">= 10.17.0"
+			},
+			"optionalDependencies": {
+				"@types/yauzl": "^2.9.1"
+			}
+		},
+		"node_modules/fd-slicer": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+			"integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+			"dev": true,
+			"dependencies": {
+				"pend": "~1.2.0"
+			}
+		},
+		"node_modules/fs-constants": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+			"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+			"dev": true
+		},
+		"node_modules/fs.realpath": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+			"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+			"dev": true
+		},
+		"node_modules/get-stream": {
+			"version": "5.2.0",
+			"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+			"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+			"dev": true,
+			"dependencies": {
+				"pump": "^3.0.0"
+			},
+			"engines": {
+				"node": ">=8"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/glob": {
+			"version": "7.2.3",
+			"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+			"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+			"dev": true,
+			"dependencies": {
+				"fs.realpath": "^1.0.0",
+				"inflight": "^1.0.4",
+				"inherits": "2",
+				"minimatch": "^3.1.1",
+				"once": "^1.3.0",
+				"path-is-absolute": "^1.0.0"
+			},
+			"engines": {
+				"node": "*"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/isaacs"
+			}
+		},
+		"node_modules/has-flag": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+			"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+			"dev": true,
+			"engines": {
+				"node": ">=4"
+			}
+		},
+		"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/ieee754": {
+			"version": "1.2.1",
+			"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+			"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/feross"
+				},
+				{
+					"type": "patreon",
+					"url": "https://www.patreon.com/feross"
+				},
+				{
+					"type": "consulting",
+					"url": "https://feross.org/support"
+				}
+			]
+		},
+		"node_modules/import-fresh": {
+			"version": "3.3.0",
+			"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+			"integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+			"dev": true,
+			"dependencies": {
+				"parent-module": "^1.0.0",
+				"resolve-from": "^4.0.0"
+			},
+			"engines": {
+				"node": ">=6"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/inflight": {
+			"version": "1.0.6",
+			"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+			"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+			"dev": true,
+			"dependencies": {
+				"once": "^1.3.0",
+				"wrappy": "1"
+			}
+		},
+		"node_modules/inherits": {
+			"version": "2.0.4",
+			"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+			"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+			"dev": true
+		},
+		"node_modules/is-arrayish": {
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+			"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+			"dev": true
+		},
+		"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-json": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz",
+			"integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==",
+			"dev": true
+		},
+		"node_modules/js-yaml": {
+			"version": "4.1.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+			"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+			"dev": true,
+			"dependencies": {
+				"argparse": "^2.0.1"
+			},
+			"bin": {
+				"js-yaml": "bin/js-yaml.js"
+			}
+		},
+		"node_modules/json-parse-even-better-errors": {
+			"version": "2.3.1",
+			"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+			"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+			"dev": true
+		},
+		"node_modules/lightningcss": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.18.0.tgz",
+			"integrity": "sha512-uk10tNxi5fhZqU93vtYiQgx/8a9f0Kvtj5AXIm+VlOXY+t/DWDmCZWJEkZJmmALgvbS6aAW8or+Kq85eJ6TDTw==",
+			"dev": true,
+			"dependencies": {
+				"detect-libc": "^1.0.3"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			},
+			"optionalDependencies": {
+				"lightningcss-darwin-arm64": "1.18.0",
+				"lightningcss-darwin-x64": "1.18.0",
+				"lightningcss-linux-arm-gnueabihf": "1.18.0",
+				"lightningcss-linux-arm64-gnu": "1.18.0",
+				"lightningcss-linux-arm64-musl": "1.18.0",
+				"lightningcss-linux-x64-gnu": "1.18.0",
+				"lightningcss-linux-x64-musl": "1.18.0",
+				"lightningcss-win32-x64-msvc": "1.18.0"
+			}
+		},
+		"node_modules/lightningcss-darwin-arm64": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.18.0.tgz",
+			"integrity": "sha512-OqjydwtiNPgdH1ByIjA1YzqvDG/OMR6L3LPN6wRl1729LB0y4Mik7L06kmZaTb+pvUHr+NmDd2KCwnlrQ4zO3w==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-darwin-x64": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.18.0.tgz",
+			"integrity": "sha512-mNiuPHj89/JHZmJMp+5H8EZSt6EL5DZRWJ31O6k3DrLLnRIQjXuXdDdN8kP7LoIkeWI5xvyD60CsReJm+YWYAw==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-linux-arm-gnueabihf": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.18.0.tgz",
+			"integrity": "sha512-S+25JjI6601HiAVoTDXW6SqH+E94a+FHA7WQqseyNHunOgVWKcAkNEc2LJvVxgwTq6z41sDIb9/M3Z9wa9lk4A==",
+			"cpu": [
+				"arm"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-linux-arm64-gnu": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.18.0.tgz",
+			"integrity": "sha512-JSqh4+21dCgBecIQUet35dtE4PhhSEMyqe3y0ZNQrAJQ5kyUPSQHiw81WXnPJcOSTTpG0TyMLiC8K//+BsFGQA==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-linux-arm64-musl": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.18.0.tgz",
+			"integrity": "sha512-2FWHa8iUhShnZnqhn2wfIcK5adJat9hAAaX7etNsoXJymlliDIOFuBQEsba2KBAZSM4QqfQtvRdR7m8i0I7ybQ==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-linux-x64-gnu": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.18.0.tgz",
+			"integrity": "sha512-plCPGQJtDZHcLVKVRLnQVF2XRsIC32WvuJhQ7fJ7F6BV98b/VZX0OlX05qUaOESD9dCDHjYSfxsgcvOKgCWh7A==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-linux-x64-musl": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.18.0.tgz",
+			"integrity": "sha512-na+BGtVU6fpZvOHKhnlA0XHeibkT3/46nj6vLluG3kzdJYoBKU6dIl7DSOk++8jv4ybZyFJ0aOFMMSc8g2h58A==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-win32-x64-msvc": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.18.0.tgz",
+			"integrity": "sha512-5qeAH4RMNy2yMNEl7e5TI6upt/7xD2ZpHWH4RkT8iJ7/6POS5mjHbXWUO9Q1hhDhqkdzGa76uAdMzEouIeCyNw==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lilconfig": {
+			"version": "2.0.6",
+			"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz",
+			"integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"engines": {
+				"node": ">=10"
+			}
+		},
+		"node_modules/lines-and-columns": {
+			"version": "1.2.4",
+			"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+			"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+			"dev": true
+		},
+		"node_modules/lmdb": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.2.tgz",
+			"integrity": "sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA==",
+			"dev": true,
+			"hasInstallScript": true,
+			"dependencies": {
+				"msgpackr": "^1.5.4",
+				"node-addon-api": "^4.3.0",
+				"node-gyp-build-optional-packages": "5.0.3",
+				"ordered-binary": "^1.2.4",
+				"weak-lru-cache": "^1.2.2"
+			},
+			"optionalDependencies": {
+				"@lmdb/lmdb-darwin-arm64": "2.5.2",
+				"@lmdb/lmdb-darwin-x64": "2.5.2",
+				"@lmdb/lmdb-linux-arm": "2.5.2",
+				"@lmdb/lmdb-linux-arm64": "2.5.2",
+				"@lmdb/lmdb-linux-x64": "2.5.2",
+				"@lmdb/lmdb-win32-x64": "2.5.2"
+			}
+		},
+		"node_modules/lmdb/node_modules/node-addon-api": {
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz",
+			"integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==",
+			"dev": true
+		},
+		"node_modules/lodash.memoize": {
+			"version": "4.1.2",
+			"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+			"integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
+		"node_modules/lodash.uniq": {
+			"version": "4.5.0",
+			"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+			"integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
+		"node_modules/minimatch": {
+			"version": "3.1.2",
+			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+			"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+			"dev": true,
+			"dependencies": {
+				"brace-expansion": "^1.1.7"
+			},
+			"engines": {
+				"node": "*"
+			}
+		},
+		"node_modules/mkdirp-classic": {
+			"version": "0.5.3",
+			"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+			"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+			"dev": true
+		},
+		"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/msgpackr": {
+			"version": "1.8.2",
+			"resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.8.2.tgz",
+			"integrity": "sha512-eLuPeok0DMwsGN23AvuVg32mYpx55tsQnxI87d8V1yZsdT8U5jrWhmCa1INO/joGAFQFfo/eTlM/BxVwLKbBOQ==",
+			"dev": true,
+			"optionalDependencies": {
+				"msgpackr-extract": "^2.2.0"
+			}
+		},
+		"node_modules/msgpackr-extract": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-2.2.0.tgz",
+			"integrity": "sha512-0YcvWSv7ZOGl9Od6Y5iJ3XnPww8O7WLcpYMDwX+PAA/uXLDtyw94PJv9GLQV/nnp3cWlDhMoyKZIQLrx33sWog==",
+			"dev": true,
+			"hasInstallScript": true,
+			"optional": true,
+			"dependencies": {
+				"node-gyp-build-optional-packages": "5.0.3"
+			},
+			"bin": {
+				"download-msgpackr-prebuilds": "bin/download-prebuilds.js"
+			},
+			"optionalDependencies": {
+				"@msgpackr-extract/msgpackr-extract-darwin-arm64": "2.2.0",
+				"@msgpackr-extract/msgpackr-extract-darwin-x64": "2.2.0",
+				"@msgpackr-extract/msgpackr-extract-linux-arm": "2.2.0",
+				"@msgpackr-extract/msgpackr-extract-linux-arm64": "2.2.0",
+				"@msgpackr-extract/msgpackr-extract-linux-x64": "2.2.0",
+				"@msgpackr-extract/msgpackr-extract-win32-x64": "2.2.0"
+			}
+		},
+		"node_modules/nanoid": {
+			"version": "3.3.4",
+			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+			"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+			"dev": true,
+			"optional": true,
+			"peer": true,
+			"bin": {
+				"nanoid": "bin/nanoid.cjs"
+			},
+			"engines": {
+				"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+			}
+		},
+		"node_modules/node-fetch": {
+			"version": "2.6.7",
+			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+			"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+			"dev": true,
+			"dependencies": {
+				"whatwg-url": "^5.0.0"
+			},
+			"engines": {
+				"node": "4.x || >=6.0.0"
+			},
+			"peerDependencies": {
+				"encoding": "^0.1.0"
+			},
+			"peerDependenciesMeta": {
+				"encoding": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/node-gyp-build": {
+			"version": "4.6.0",
+			"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
+			"integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==",
+			"dev": true,
+			"bin": {
+				"node-gyp-build": "bin.js",
+				"node-gyp-build-optional": "optional.js",
+				"node-gyp-build-test": "build-test.js"
+			}
+		},
+		"node_modules/node-gyp-build-optional-packages": {
+			"version": "5.0.3",
+			"resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz",
+			"integrity": "sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==",
+			"dev": true,
+			"bin": {
+				"node-gyp-build-optional-packages": "bin.js",
+				"node-gyp-build-optional-packages-optional": "optional.js",
+				"node-gyp-build-optional-packages-test": "build-test.js"
+			}
+		},
+		"node_modules/node-releases": {
+			"version": "2.0.8",
+			"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
+			"integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==",
+			"dev": true
+		},
+		"node_modules/nullthrows": {
+			"version": "1.1.1",
+			"resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
+			"integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==",
+			"dev": true
+		},
+		"node_modules/once": {
+			"version": "1.4.0",
+			"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+			"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+			"dev": true,
+			"dependencies": {
+				"wrappy": "1"
+			}
+		},
+		"node_modules/ordered-binary": {
+			"version": "1.4.0",
+			"resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.4.0.tgz",
+			"integrity": "sha512-EHQ/jk4/a9hLupIKxTfUsQRej1Yd/0QLQs3vGvIqg5ZtCYSzNhkzHoZc7Zf4e4kUlDaC3Uw8Q/1opOLNN2OKRQ==",
+			"dev": true
+		},
+		"node_modules/parcel": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/parcel/-/parcel-2.8.3.tgz",
+			"integrity": "sha512-5rMBpbNE72g6jZvkdR5gS2nyhwIXaJy8i65osOqs/+5b7zgf3eMKgjSsDrv6bhz3gzifsba6MBJiZdBckl+vnA==",
+			"dev": true,
+			"dependencies": {
+				"@parcel/config-default": "2.8.3",
+				"@parcel/core": "2.8.3",
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/events": "2.8.3",
+				"@parcel/fs": "2.8.3",
+				"@parcel/logger": "2.8.3",
+				"@parcel/package-manager": "2.8.3",
+				"@parcel/reporter-cli": "2.8.3",
+				"@parcel/reporter-dev-server": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"chalk": "^4.1.0",
+				"commander": "^7.0.0",
+				"get-port": "^4.2.0",
+				"v8-compile-cache": "^2.0.0"
+			},
+			"bin": {
+				"parcel": "lib/bin.js"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/parcel/node_modules/ansi-styles": {
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+			"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+			"dev": true,
+			"dependencies": {
+				"color-convert": "^2.0.1"
+			},
+			"engines": {
+				"node": ">=8"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/ansi-styles?sponsor=1"
+			}
+		},
+		"node_modules/parcel/node_modules/chalk": {
+			"version": "4.1.2",
+			"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+			"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+			"dev": true,
+			"dependencies": {
+				"ansi-styles": "^4.1.0",
+				"supports-color": "^7.1.0"
+			},
+			"engines": {
+				"node": ">=10"
+			},
+			"funding": {
+				"url": "https://github.com/chalk/chalk?sponsor=1"
+			}
+		},
+		"node_modules/parcel/node_modules/color-convert": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+			"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+			"dev": true,
+			"dependencies": {
+				"color-name": "~1.1.4"
+			},
+			"engines": {
+				"node": ">=7.0.0"
+			}
+		},
+		"node_modules/parcel/node_modules/color-name": {
+			"version": "1.1.4",
+			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+			"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+			"dev": true
+		},
+		"node_modules/parcel/node_modules/commander": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+			"integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+			"dev": true,
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/parcel/node_modules/get-port": {
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz",
+			"integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==",
+			"dev": true,
+			"engines": {
+				"node": ">=6"
+			}
+		},
+		"node_modules/parcel/node_modules/has-flag": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+			"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/parcel/node_modules/supports-color": {
+			"version": "7.2.0",
+			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+			"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+			"dev": true,
+			"dependencies": {
+				"has-flag": "^4.0.0"
+			},
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/parent-module": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+			"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+			"dev": true,
+			"dependencies": {
+				"callsites": "^3.0.0"
+			},
+			"engines": {
+				"node": ">=6"
+			}
+		},
+		"node_modules/parse-json": {
+			"version": "5.2.0",
+			"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+			"integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+			"dev": true,
+			"dependencies": {
+				"@babel/code-frame": "^7.0.0",
+				"error-ex": "^1.3.1",
+				"json-parse-even-better-errors": "^2.3.0",
+				"lines-and-columns": "^1.1.6"
+			},
+			"engines": {
+				"node": ">=8"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/path-is-absolute": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+			"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+			"dev": true,
+			"engines": {
+				"node": ">=0.10.0"
+			}
+		},
+		"node_modules/path-type": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+			"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+			"dev": true,
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/pend": {
+			"version": "1.2.0",
+			"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+			"integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+			"dev": true
+		},
+		"node_modules/picocolors": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+			"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+			"dev": true
+		},
+		"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/progress": {
+			"version": "2.0.3",
+			"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+			"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+			"dev": true,
+			"engines": {
+				"node": ">=0.4.0"
+			}
+		},
+		"node_modules/proxy-from-env": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+			"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+			"dev": true
+		},
+		"node_modules/pump": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+			"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+			"dev": true,
+			"dependencies": {
+				"end-of-stream": "^1.1.0",
+				"once": "^1.3.1"
+			}
+		},
+		"node_modules/puppeteer": {
+			"version": "19.6.2",
+			"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.6.2.tgz",
+			"integrity": "sha512-Y5OAXXwXLfJYbl0dEFg8JKIhvCGxn+UYaBW9yra9ErmIhkVroDnYusM6oYxJCt/YIfC2pQWhvhxoZyf/E5fV6w==",
+			"dev": true,
+			"hasInstallScript": true,
+			"dependencies": {
+				"cosmiconfig": "8.0.0",
+				"https-proxy-agent": "5.0.1",
+				"progress": "2.0.3",
+				"proxy-from-env": "1.1.0",
+				"puppeteer-core": "19.6.2"
+			},
+			"engines": {
+				"node": ">=14.1.0"
+			}
+		},
+		"node_modules/puppeteer-core": {
+			"version": "19.6.2",
+			"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.6.2.tgz",
+			"integrity": "sha512-il7uK658MNC1FlxPABvcnv1RdpDa9CaBFHzvtEsl+9Y4tbAJKZurkegpcvWeIWcRYGiuBIVo+t+ZSh3G82CCjw==",
+			"dev": true,
+			"dependencies": {
+				"cross-fetch": "3.1.5",
+				"debug": "4.3.4",
+				"devtools-protocol": "0.0.1082910",
+				"extract-zip": "2.0.1",
+				"https-proxy-agent": "5.0.1",
+				"proxy-from-env": "1.1.0",
+				"rimraf": "3.0.2",
+				"tar-fs": "2.1.1",
+				"unbzip2-stream": "1.4.3",
+				"ws": "8.11.0"
+			},
+			"engines": {
+				"node": ">=14.1.0"
+			}
+		},
+		"node_modules/puppeteer/node_modules/cosmiconfig": {
+			"version": "8.0.0",
+			"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz",
+			"integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==",
+			"dev": true,
+			"dependencies": {
+				"import-fresh": "^3.2.1",
+				"js-yaml": "^4.1.0",
+				"parse-json": "^5.0.0",
+				"path-type": "^4.0.0"
+			},
+			"engines": {
+				"node": ">=14"
+			}
+		},
+		"node_modules/react-error-overlay": {
+			"version": "6.0.9",
+			"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz",
+			"integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==",
+			"dev": true
+		},
+		"node_modules/react-refresh": {
+			"version": "0.9.0",
+			"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz",
+			"integrity": "sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=0.10.0"
+			}
+		},
+		"node_modules/readable-stream": {
+			"version": "3.6.0",
+			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+			"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+			"dev": true,
+			"dependencies": {
+				"inherits": "^2.0.3",
+				"string_decoder": "^1.1.1",
+				"util-deprecate": "^1.0.1"
+			},
+			"engines": {
+				"node": ">= 6"
+			}
+		},
+		"node_modules/regenerator-runtime": {
+			"version": "0.13.11",
+			"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+			"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
+			"dev": true
+		},
+		"node_modules/resolve-from": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+			"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+			"dev": true,
+			"engines": {
+				"node": ">=4"
+			}
+		},
+		"node_modules/rimraf": {
+			"version": "3.0.2",
+			"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+			"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+			"dev": true,
+			"dependencies": {
+				"glob": "^7.1.3"
+			},
+			"bin": {
+				"rimraf": "bin.js"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/isaacs"
+			}
+		},
+		"node_modules/safe-buffer": {
+			"version": "5.2.1",
+			"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+			"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/feross"
+				},
+				{
+					"type": "patreon",
+					"url": "https://www.patreon.com/feross"
+				},
+				{
+					"type": "consulting",
+					"url": "https://feross.org/support"
+				}
+			]
+		},
+		"node_modules/semver": {
+			"version": "5.7.1",
+			"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+			"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+			"dev": true,
+			"bin": {
+				"semver": "bin/semver"
+			}
+		},
+		"node_modules/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,
+			"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,
+			"optional": true,
+			"peer": true,
+			"engines": {
+				"node": ">=0.10.0"
+			}
+		},
+		"node_modules/srcset": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz",
+			"integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==",
+			"dev": true,
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/stable": {
+			"version": "0.1.8",
+			"resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
+			"integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
+			"deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility",
+			"dev": true
+		},
+		"node_modules/string_decoder": {
+			"version": "1.3.0",
+			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+			"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+			"dev": true,
+			"dependencies": {
+				"safe-buffer": "~5.2.0"
+			}
+		},
+		"node_modules/supports-color": {
+			"version": "5.5.0",
+			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+			"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+			"dev": true,
+			"dependencies": {
+				"has-flag": "^3.0.0"
+			},
+			"engines": {
+				"node": ">=4"
+			}
+		},
+		"node_modules/tar-fs": {
+			"version": "2.1.1",
+			"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+			"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+			"dev": true,
+			"dependencies": {
+				"chownr": "^1.1.1",
+				"mkdirp-classic": "^0.5.2",
+				"pump": "^3.0.0",
+				"tar-stream": "^2.1.4"
+			}
+		},
+		"node_modules/tar-stream": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+			"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+			"dev": true,
+			"dependencies": {
+				"bl": "^4.0.3",
+				"end-of-stream": "^1.4.1",
+				"fs-constants": "^1.0.0",
+				"inherits": "^2.0.3",
+				"readable-stream": "^3.1.1"
+			},
+			"engines": {
+				"node": ">=6"
+			}
+		},
+		"node_modules/term-size": {
+			"version": "2.2.1",
+			"resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
+			"integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==",
+			"dev": true,
+			"engines": {
+				"node": ">=8"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/through": {
+			"version": "2.3.8",
+			"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+			"integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+			"dev": true
+		},
+		"node_modules/timsort": {
+			"version": "0.3.0",
+			"resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
+			"integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==",
+			"dev": true
+		},
+		"node_modules/tr46": {
+			"version": "0.0.3",
+			"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+			"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+			"dev": true
+		},
+		"node_modules/tslib": {
+			"version": "2.4.1",
+			"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+			"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==",
+			"dev": true
+		},
+		"node_modules/type-fest": {
+			"version": "0.20.2",
+			"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+			"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+			"dev": true,
+			"engines": {
+				"node": ">=10"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/unbzip2-stream": {
+			"version": "1.4.3",
+			"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
+			"integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
+			"dev": true,
+			"dependencies": {
+				"buffer": "^5.2.1",
+				"through": "^2.3.8"
+			}
+		},
+		"node_modules/util-deprecate": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+			"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+			"dev": true
+		},
+		"node_modules/utility-types": {
+			"version": "3.10.0",
+			"resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz",
+			"integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==",
+			"dev": true,
+			"engines": {
+				"node": ">= 4"
+			}
+		},
+		"node_modules/v8-compile-cache": {
+			"version": "2.3.0",
+			"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+			"integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+			"dev": true
+		},
+		"node_modules/weak-lru-cache": {
+			"version": "1.2.2",
+			"resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz",
+			"integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==",
+			"dev": true
+		},
+		"node_modules/webidl-conversions": {
+			"version": "3.0.1",
+			"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+			"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+			"dev": true
+		},
+		"node_modules/whatwg-url": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+			"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+			"dev": true,
+			"dependencies": {
+				"tr46": "~0.0.3",
+				"webidl-conversions": "^3.0.0"
+			}
+		},
+		"node_modules/wrappy": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+			"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+			"dev": true
+		},
+		"node_modules/ws": {
+			"version": "8.11.0",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
+			"integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
+			"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/xxhash-wasm": {
+			"version": "0.4.2",
+			"resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz",
+			"integrity": "sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA==",
+			"dev": true
+		},
+		"node_modules/yaml": {
+			"version": "1.10.2",
+			"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+			"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+			"dev": true,
+			"engines": {
+				"node": ">= 6"
+			}
+		},
+		"node_modules/yauzl": {
+			"version": "2.10.0",
+			"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+			"integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+			"dev": true,
+			"dependencies": {
+				"buffer-crc32": "~0.2.3",
+				"fd-slicer": "~1.1.0"
+			}
+		}
+	},
+	"dependencies": {
+		"@babel/code-frame": {
+			"version": "7.18.6",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
+			"integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+			"dev": true,
+			"requires": {
+				"@babel/highlight": "^7.18.6"
+			}
+		},
+		"@babel/helper-validator-identifier": {
+			"version": "7.19.1",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+			"integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+			"dev": true
+		},
+		"@babel/highlight": {
+			"version": "7.18.6",
+			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
+			"integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+			"dev": true,
+			"requires": {
+				"@babel/helper-validator-identifier": "^7.18.6",
+				"chalk": "^2.0.0",
+				"js-tokens": "^4.0.0"
+			},
+			"dependencies": {
+				"js-tokens": {
+					"version": "4.0.0",
+					"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+					"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+					"dev": true
+				}
+			}
+		},
+		"@jridgewell/gen-mapping": {
+			"version": "0.3.2",
+			"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+			"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+			"dev": true,
+			"requires": {
+				"@jridgewell/set-array": "^1.0.1",
+				"@jridgewell/sourcemap-codec": "^1.4.10",
+				"@jridgewell/trace-mapping": "^0.3.9"
+			}
+		},
+		"@jridgewell/resolve-uri": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+			"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+			"dev": true
+		},
+		"@jridgewell/set-array": {
+			"version": "1.1.2",
+			"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+			"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+			"dev": true
+		},
+		"@jridgewell/source-map": {
+			"version": "0.3.2",
+			"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+			"integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+			"dev": true,
+			"requires": {
+				"@jridgewell/gen-mapping": "^0.3.0",
+				"@jridgewell/trace-mapping": "^0.3.9"
+			}
+		},
+		"@jridgewell/sourcemap-codec": {
+			"version": "1.4.14",
+			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+			"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+			"dev": true
+		},
+		"@jridgewell/trace-mapping": {
+			"version": "0.3.17",
+			"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
+			"integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+			"dev": true,
+			"requires": {
+				"@jridgewell/resolve-uri": "3.1.0",
+				"@jridgewell/sourcemap-codec": "1.4.14"
+			}
+		},
+		"@lezer/common": {
+			"version": "0.15.12",
+			"resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.12.tgz",
+			"integrity": "sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig==",
+			"dev": true
+		},
+		"@lezer/lr": {
+			"version": "0.15.8",
+			"resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.8.tgz",
+			"integrity": "sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg==",
+			"dev": true,
+			"requires": {
+				"@lezer/common": "^0.15.0"
+			}
+		},
+		"@lmdb/lmdb-darwin-arm64": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz",
+			"integrity": "sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A==",
+			"dev": true,
+			"optional": true
+		},
+		"@lmdb/lmdb-darwin-x64": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz",
+			"integrity": "sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA==",
+			"dev": true,
+			"optional": true
+		},
+		"@lmdb/lmdb-linux-arm": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz",
+			"integrity": "sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw==",
+			"dev": true,
+			"optional": true
+		},
+		"@lmdb/lmdb-linux-arm64": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz",
+			"integrity": "sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ==",
+			"dev": true,
+			"optional": true
+		},
+		"@lmdb/lmdb-linux-x64": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz",
+			"integrity": "sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q==",
+			"dev": true,
+			"optional": true
+		},
+		"@lmdb/lmdb-win32-x64": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz",
+			"integrity": "sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA==",
+			"dev": true,
+			"optional": true
+		},
+		"@mischnic/json-sourcemap": {
+			"version": "0.1.0",
+			"resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz",
+			"integrity": "sha512-dQb3QnfNqmQNYA4nFSN/uLaByIic58gOXq4Y4XqLOWmOrw73KmJPt/HLyG0wvn1bnR6mBKs/Uwvkh+Hns1T0XA==",
+			"dev": true,
+			"requires": {
+				"@lezer/common": "^0.15.7",
+				"@lezer/lr": "^0.15.4",
+				"json5": "^2.2.1"
+			},
+			"dependencies": {
+				"json5": {
+					"version": "2.2.3",
+					"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+					"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+					"dev": true
+				}
+			}
+		},
+		"@msgpackr-extract/msgpackr-extract-darwin-arm64": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-2.2.0.tgz",
+			"integrity": "sha512-Z9LFPzfoJi4mflGWV+rv7o7ZbMU5oAU9VmzCgL240KnqDW65Y2HFCT3MW06/ITJSnbVLacmcEJA8phywK7JinQ==",
+			"dev": true,
+			"optional": true
+		},
+		"@msgpackr-extract/msgpackr-extract-darwin-x64": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-2.2.0.tgz",
+			"integrity": "sha512-vq0tT8sjZsy4JdSqmadWVw6f66UXqUCabLmUVHZwUFzMgtgoIIQjT4VVRHKvlof3P/dMCkbMJ5hB1oJ9OWHaaw==",
+			"dev": true,
+			"optional": true
+		},
+		"@msgpackr-extract/msgpackr-extract-linux-arm": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-2.2.0.tgz",
+			"integrity": "sha512-SaJ3Qq4lX9Syd2xEo9u3qPxi/OB+5JO/ngJKK97XDpa1C587H9EWYO6KD8995DAjSinWvdHKRrCOXVUC5fvGOg==",
+			"dev": true,
+			"optional": true
+		},
+		"@msgpackr-extract/msgpackr-extract-linux-arm64": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-2.2.0.tgz",
+			"integrity": "sha512-hlxxLdRmPyq16QCutUtP8Tm6RDWcyaLsRssaHROatgnkOxdleMTgetf9JsdncL8vLh7FVy/RN9i3XR5dnb9cRA==",
+			"dev": true,
+			"optional": true
+		},
+		"@msgpackr-extract/msgpackr-extract-linux-x64": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-2.2.0.tgz",
+			"integrity": "sha512-94y5PJrSOqUNcFKmOl7z319FelCLAE0rz/jPCWS+UtdMZvpa4jrQd+cJPQCLp2Fes1yAW/YUQj/Di6YVT3c3Iw==",
+			"dev": true,
+			"optional": true
+		},
+		"@msgpackr-extract/msgpackr-extract-win32-x64": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-2.2.0.tgz",
+			"integrity": "sha512-XrC0JzsqQSvOyM3t04FMLO6z5gCuhPE6k4FXuLK5xf52ZbdvcFe1yBmo7meCew9B8G2f0T9iu9t3kfTYRYROgA==",
+			"dev": true,
+			"optional": true
+		},
+		"@parcel/bundler-default": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.8.3.tgz",
+			"integrity": "sha512-yJvRsNWWu5fVydsWk3O2L4yIy3UZiKWO2cPDukGOIWMgp/Vbpp+2Ct5IygVRtE22bnseW/E/oe0PV3d2IkEJGg==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/graph": "2.8.3",
+				"@parcel/hash": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1"
+			}
+		},
+		"@parcel/cache": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.8.3.tgz",
+			"integrity": "sha512-k7xv5vSQrJLdXuglo+Hv3yF4BCSs1tQ/8Vbd6CHTkOhf7LcGg6CPtLw053R/KdMpd/4GPn0QrAsOLdATm1ELtQ==",
+			"dev": true,
+			"requires": {
+				"@parcel/fs": "2.8.3",
+				"@parcel/logger": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"lmdb": "2.5.2"
+			}
+		},
+		"@parcel/codeframe": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.8.3.tgz",
+			"integrity": "sha512-FE7sY53D6n/+2Pgg6M9iuEC6F5fvmyBkRE4d9VdnOoxhTXtkEqpqYgX7RJ12FAQwNlxKq4suBJQMgQHMF2Kjeg==",
+			"dev": true,
+			"requires": {
+				"chalk": "^4.1.0"
+			},
+			"dependencies": {
+				"ansi-styles": {
+					"version": "4.3.0",
+					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+					"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+					"dev": true,
+					"requires": {
+						"color-convert": "^2.0.1"
+					}
+				},
+				"chalk": {
+					"version": "4.1.2",
+					"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+					"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+					"dev": true,
+					"requires": {
+						"ansi-styles": "^4.1.0",
+						"supports-color": "^7.1.0"
+					}
+				},
+				"color-convert": {
+					"version": "2.0.1",
+					"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+					"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+					"dev": true,
+					"requires": {
+						"color-name": "~1.1.4"
+					}
+				},
+				"color-name": {
+					"version": "1.1.4",
+					"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+					"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+					"dev": true
+				},
+				"has-flag": {
+					"version": "4.0.0",
+					"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+					"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+					"dev": true
+				},
+				"supports-color": {
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+					"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+					"dev": true,
+					"requires": {
+						"has-flag": "^4.0.0"
+					}
+				}
+			}
+		},
+		"@parcel/compressor-raw": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.8.3.tgz",
+			"integrity": "sha512-bVDsqleBUxRdKMakWSlWC9ZjOcqDKE60BE+Gh3JSN6WJrycJ02P5wxjTVF4CStNP/G7X17U+nkENxSlMG77ySg==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3"
+			}
+		},
+		"@parcel/config-default": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.8.3.tgz",
+			"integrity": "sha512-o/A/mbrO6X/BfGS65Sib8d6SSG45NYrNooNBkH/o7zbOBSRQxwyTlysleK1/3Wa35YpvFyLOwgfakqCtbGy4fw==",
+			"dev": true,
+			"requires": {
+				"@parcel/bundler-default": "2.8.3",
+				"@parcel/compressor-raw": "2.8.3",
+				"@parcel/namer-default": "2.8.3",
+				"@parcel/optimizer-css": "2.8.3",
+				"@parcel/optimizer-htmlnano": "2.8.3",
+				"@parcel/optimizer-image": "2.8.3",
+				"@parcel/optimizer-svgo": "2.8.3",
+				"@parcel/optimizer-terser": "2.8.3",
+				"@parcel/packager-css": "2.8.3",
+				"@parcel/packager-html": "2.8.3",
+				"@parcel/packager-js": "2.8.3",
+				"@parcel/packager-raw": "2.8.3",
+				"@parcel/packager-svg": "2.8.3",
+				"@parcel/reporter-dev-server": "2.8.3",
+				"@parcel/resolver-default": "2.8.3",
+				"@parcel/runtime-browser-hmr": "2.8.3",
+				"@parcel/runtime-js": "2.8.3",
+				"@parcel/runtime-react-refresh": "2.8.3",
+				"@parcel/runtime-service-worker": "2.8.3",
+				"@parcel/transformer-babel": "2.8.3",
+				"@parcel/transformer-css": "2.8.3",
+				"@parcel/transformer-html": "2.8.3",
+				"@parcel/transformer-image": "2.8.3",
+				"@parcel/transformer-js": "2.8.3",
+				"@parcel/transformer-json": "2.8.3",
+				"@parcel/transformer-postcss": "2.8.3",
+				"@parcel/transformer-posthtml": "2.8.3",
+				"@parcel/transformer-raw": "2.8.3",
+				"@parcel/transformer-react-refresh-wrap": "2.8.3",
+				"@parcel/transformer-svg": "2.8.3"
+			}
+		},
+		"@parcel/core": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.8.3.tgz",
+			"integrity": "sha512-Euf/un4ZAiClnlUXqPB9phQlKbveU+2CotZv7m7i+qkgvFn5nAGnrV4h1OzQU42j9dpgOxWi7AttUDMrvkbhCQ==",
+			"dev": true,
+			"requires": {
+				"@mischnic/json-sourcemap": "^0.1.0",
+				"@parcel/cache": "2.8.3",
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/events": "2.8.3",
+				"@parcel/fs": "2.8.3",
+				"@parcel/graph": "2.8.3",
+				"@parcel/hash": "2.8.3",
+				"@parcel/logger": "2.8.3",
+				"@parcel/package-manager": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/types": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"@parcel/workers": "2.8.3",
+				"abortcontroller-polyfill": "^1.1.9",
+				"base-x": "^3.0.8",
+				"browserslist": "^4.6.6",
+				"clone": "^2.1.1",
+				"dotenv": "^7.0.0",
+				"dotenv-expand": "^5.1.0",
+				"json5": "^2.2.0",
+				"msgpackr": "^1.5.4",
+				"nullthrows": "^1.1.1",
+				"semver": "^5.7.1"
+			},
+			"dependencies": {
+				"browserslist": {
+					"version": "4.21.4",
+					"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+					"integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+					"dev": true,
+					"requires": {
+						"caniuse-lite": "^1.0.30001400",
+						"electron-to-chromium": "^1.4.251",
+						"node-releases": "^2.0.6",
+						"update-browserslist-db": "^1.0.9"
+					}
+				},
+				"clone": {
+					"version": "2.1.2",
+					"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+					"integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+					"dev": true
+				},
+				"dotenv": {
+					"version": "7.0.0",
+					"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz",
+					"integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==",
+					"dev": true
+				},
+				"json5": {
+					"version": "2.2.3",
+					"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+					"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+					"dev": true
+				},
+				"update-browserslist-db": {
+					"version": "1.0.10",
+					"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+					"integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+					"dev": true,
+					"requires": {
+						"escalade": "^3.1.1",
+						"picocolors": "^1.0.0"
+					}
+				}
+			}
+		},
+		"@parcel/diagnostic": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.8.3.tgz",
+			"integrity": "sha512-u7wSzuMhLGWZjVNYJZq/SOViS3uFG0xwIcqXw12w54Uozd6BH8JlhVtVyAsq9kqnn7YFkw6pXHqAo5Tzh4FqsQ==",
+			"dev": true,
+			"requires": {
+				"@mischnic/json-sourcemap": "^0.1.0",
+				"nullthrows": "^1.1.1"
+			}
+		},
+		"@parcel/events": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.8.3.tgz",
+			"integrity": "sha512-hoIS4tAxWp8FJk3628bsgKxEvR7bq2scCVYHSqZ4fTi/s0+VymEATrRCUqf+12e5H47uw1/ZjoqrGtBI02pz4w==",
+			"dev": true
+		},
+		"@parcel/fs": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.8.3.tgz",
+			"integrity": "sha512-y+i+oXbT7lP0e0pJZi/YSm1vg0LDsbycFuHZIL80pNwdEppUAtibfJZCp606B7HOjMAlNZOBo48e3hPG3d8jgQ==",
+			"dev": true,
+			"requires": {
+				"@parcel/fs-search": "2.8.3",
+				"@parcel/types": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"@parcel/watcher": "^2.0.7",
+				"@parcel/workers": "2.8.3"
+			}
+		},
+		"@parcel/fs-search": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.8.3.tgz",
+			"integrity": "sha512-DJBT2N8knfN7Na6PP2mett3spQLTqxFrvl0gv+TJRp61T8Ljc4VuUTb0hqBj+belaASIp3Q+e8+SgaFQu7wLiQ==",
+			"dev": true,
+			"requires": {
+				"detect-libc": "^1.0.3"
+			}
+		},
+		"@parcel/graph": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.8.3.tgz",
+			"integrity": "sha512-26GL8fYZPdsRhSXCZ0ZWliloK6DHlMJPWh6Z+3VVZ5mnDSbYg/rRKWmrkhnr99ZWmL9rJsv4G74ZwvDEXTMPBg==",
+			"dev": true,
+			"requires": {
+				"nullthrows": "^1.1.1"
+			}
+		},
+		"@parcel/hash": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.8.3.tgz",
+			"integrity": "sha512-FVItqzjWmnyP4ZsVgX+G00+6U2IzOvqDtdwQIWisCcVoXJFCqZJDy6oa2qDDFz96xCCCynjRjPdQx2jYBCpfYw==",
+			"dev": true,
+			"requires": {
+				"detect-libc": "^1.0.3",
+				"xxhash-wasm": "^0.4.2"
+			}
+		},
+		"@parcel/logger": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.8.3.tgz",
+			"integrity": "sha512-Kpxd3O/Vs7nYJIzkdmB6Bvp3l/85ydIxaZaPfGSGTYOfaffSOTkhcW9l6WemsxUrlts4za6CaEWcc4DOvaMOPA==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/events": "2.8.3"
+			}
+		},
+		"@parcel/markdown-ansi": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.8.3.tgz",
+			"integrity": "sha512-4v+pjyoh9f5zuU/gJlNvNFGEAb6J90sOBwpKJYJhdWXLZMNFCVzSigxrYO+vCsi8G4rl6/B2c0LcwIMjGPHmFQ==",
+			"dev": true,
+			"requires": {
+				"chalk": "^4.1.0"
+			},
+			"dependencies": {
+				"ansi-styles": {
+					"version": "4.3.0",
+					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+					"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+					"dev": true,
+					"requires": {
+						"color-convert": "^2.0.1"
+					}
+				},
+				"chalk": {
+					"version": "4.1.2",
+					"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+					"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+					"dev": true,
+					"requires": {
+						"ansi-styles": "^4.1.0",
+						"supports-color": "^7.1.0"
+					}
+				},
+				"color-convert": {
+					"version": "2.0.1",
+					"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+					"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+					"dev": true,
+					"requires": {
+						"color-name": "~1.1.4"
+					}
+				},
+				"color-name": {
+					"version": "1.1.4",
+					"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+					"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+					"dev": true
+				},
+				"has-flag": {
+					"version": "4.0.0",
+					"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+					"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+					"dev": true
+				},
+				"supports-color": {
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+					"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+					"dev": true,
+					"requires": {
+						"has-flag": "^4.0.0"
+					}
+				}
+			}
+		},
+		"@parcel/namer-default": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.8.3.tgz",
+			"integrity": "sha512-tJ7JehZviS5QwnxbARd8Uh63rkikZdZs1QOyivUhEvhN+DddSAVEdQLHGPzkl3YRk0tjFhbqo+Jci7TpezuAMw==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"nullthrows": "^1.1.1"
+			}
+		},
+		"@parcel/node-resolver-core": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.8.3.tgz",
+			"integrity": "sha512-12YryWcA5Iw2WNoEVr/t2HDjYR1iEzbjEcxfh1vaVDdZ020PiGw67g5hyIE/tsnG7SRJ0xdRx1fQ2hDgED+0Ww==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1",
+				"semver": "^5.7.1"
+			}
+		},
+		"@parcel/optimizer-css": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.8.3.tgz",
+			"integrity": "sha512-JotGAWo8JhuXsQDK0UkzeQB0UR5hDAKvAviXrjqB4KM9wZNLhLleeEAW4Hk8R9smCeQFP6Xg/N/NkLDpqMwT3g==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/utils": "2.8.3",
+				"browserslist": "^4.6.6",
+				"lightningcss": "^1.16.1",
+				"nullthrows": "^1.1.1"
+			},
+			"dependencies": {
+				"browserslist": {
+					"version": "4.21.4",
+					"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+					"integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+					"dev": true,
+					"requires": {
+						"caniuse-lite": "^1.0.30001400",
+						"electron-to-chromium": "^1.4.251",
+						"node-releases": "^2.0.6",
+						"update-browserslist-db": "^1.0.9"
+					}
+				},
+				"update-browserslist-db": {
+					"version": "1.0.10",
+					"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+					"integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+					"dev": true,
+					"requires": {
+						"escalade": "^3.1.1",
+						"picocolors": "^1.0.0"
+					}
+				}
+			}
+		},
+		"@parcel/optimizer-htmlnano": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.8.3.tgz",
+			"integrity": "sha512-L8/fHbEy8Id2a2E0fwR5eKGlv9VYDjrH9PwdJE9Za9v1O/vEsfl/0T/79/x129l5O0yB6EFQkFa20MiK3b+vOg==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3",
+				"htmlnano": "^2.0.0",
+				"nullthrows": "^1.1.1",
+				"posthtml": "^0.16.5",
+				"svgo": "^2.4.0"
+			},
+			"dependencies": {
+				"acorn": {
+					"version": "8.8.2",
+					"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+					"integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+					"dev": true,
+					"optional": true,
+					"peer": true
+				},
+				"browserslist": {
+					"version": "4.21.4",
+					"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+					"integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"caniuse-lite": "^1.0.30001400",
+						"electron-to-chromium": "^1.4.251",
+						"node-releases": "^2.0.6",
+						"update-browserslist-db": "^1.0.9"
+					}
+				},
+				"caniuse-api": {
+					"version": "3.0.0",
+					"resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
+					"integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"browserslist": "^4.0.0",
+						"caniuse-lite": "^1.0.0",
+						"lodash.memoize": "^4.1.2",
+						"lodash.uniq": "^4.5.0"
+					}
+				},
+				"css-declaration-sorter": {
+					"version": "6.3.1",
+					"resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz",
+					"integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {}
+				},
+				"css-select": {
+					"version": "4.3.0",
+					"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
+					"integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+					"dev": true,
+					"requires": {
+						"boolbase": "^1.0.0",
+						"css-what": "^6.0.1",
+						"domhandler": "^4.3.1",
+						"domutils": "^2.8.0",
+						"nth-check": "^2.0.1"
+					}
+				},
+				"css-tree": {
+					"version": "1.1.3",
+					"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
+					"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+					"dev": true,
+					"requires": {
+						"mdn-data": "2.0.14",
+						"source-map": "^0.6.1"
+					}
+				},
+				"css-what": {
+					"version": "6.1.0",
+					"resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+					"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+					"dev": true
+				},
+				"cssnano": {
+					"version": "5.1.14",
+					"resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz",
+					"integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"cssnano-preset-default": "^5.2.13",
+						"lilconfig": "^2.0.3",
+						"yaml": "^1.10.2"
+					}
+				},
+				"cssnano-preset-default": {
+					"version": "5.2.13",
+					"resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz",
+					"integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"css-declaration-sorter": "^6.3.1",
+						"cssnano-utils": "^3.1.0",
+						"postcss-calc": "^8.2.3",
+						"postcss-colormin": "^5.3.0",
+						"postcss-convert-values": "^5.1.3",
+						"postcss-discard-comments": "^5.1.2",
+						"postcss-discard-duplicates": "^5.1.0",
+						"postcss-discard-empty": "^5.1.1",
+						"postcss-discard-overridden": "^5.1.0",
+						"postcss-merge-longhand": "^5.1.7",
+						"postcss-merge-rules": "^5.1.3",
+						"postcss-minify-font-values": "^5.1.0",
+						"postcss-minify-gradients": "^5.1.1",
+						"postcss-minify-params": "^5.1.4",
+						"postcss-minify-selectors": "^5.2.1",
+						"postcss-normalize-charset": "^5.1.0",
+						"postcss-normalize-display-values": "^5.1.0",
+						"postcss-normalize-positions": "^5.1.1",
+						"postcss-normalize-repeat-style": "^5.1.1",
+						"postcss-normalize-string": "^5.1.0",
+						"postcss-normalize-timing-functions": "^5.1.0",
+						"postcss-normalize-unicode": "^5.1.1",
+						"postcss-normalize-url": "^5.1.0",
+						"postcss-normalize-whitespace": "^5.1.1",
+						"postcss-ordered-values": "^5.1.3",
+						"postcss-reduce-initial": "^5.1.1",
+						"postcss-reduce-transforms": "^5.1.0",
+						"postcss-svgo": "^5.1.0",
+						"postcss-unique-selectors": "^5.1.1"
+					}
+				},
+				"cssnano-utils": {
+					"version": "3.1.0",
+					"resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
+					"integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {}
+				},
+				"dom-serializer": {
+					"version": "1.4.1",
+					"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+					"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.0.1",
+						"domhandler": "^4.2.0",
+						"entities": "^2.0.0"
+					},
+					"dependencies": {
+						"entities": {
+							"version": "2.2.0",
+							"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+							"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+							"dev": true
+						}
+					}
+				},
+				"domelementtype": {
+					"version": "2.3.0",
+					"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+					"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+					"dev": true
+				},
+				"domhandler": {
+					"version": "4.3.1",
+					"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+					"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.2.0"
+					}
+				},
+				"domutils": {
+					"version": "2.8.0",
+					"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+					"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+					"dev": true,
+					"requires": {
+						"dom-serializer": "^1.0.1",
+						"domelementtype": "^2.2.0",
+						"domhandler": "^4.2.0"
+					}
+				},
+				"entities": {
+					"version": "3.0.1",
+					"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+					"integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+					"dev": true
+				},
+				"htmlnano": {
+					"version": "2.0.3",
+					"resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.0.3.tgz",
+					"integrity": "sha512-S4PGGj9RbdgW8LhbILNK7W9JhmYP8zmDY7KDV/8eCiJBQJlbmltp5I0gv8c5ntLljfdxxfmJ+UJVSqyH4mb41A==",
+					"dev": true,
+					"requires": {
+						"cosmiconfig": "^7.0.1",
+						"posthtml": "^0.16.5",
+						"timsort": "^0.3.0"
+					}
+				},
+				"htmlparser2": {
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+					"integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.0.1",
+						"domhandler": "^4.2.2",
+						"domutils": "^2.8.0",
+						"entities": "^3.0.1"
+					}
+				},
+				"mdn-data": {
+					"version": "2.0.14",
+					"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+					"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+					"dev": true
+				},
+				"normalize-url": {
+					"version": "6.1.0",
+					"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+					"integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
+					"dev": true,
+					"optional": true,
+					"peer": true
+				},
+				"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,
+					"requires": {
+						"boolbase": "^1.0.0"
+					}
+				},
+				"postcss": {
+					"version": "8.4.21",
+					"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
+					"integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"nanoid": "^3.3.4",
+						"picocolors": "^1.0.0",
+						"source-map-js": "^1.0.2"
+					}
+				},
+				"postcss-calc": {
+					"version": "8.2.4",
+					"resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz",
+					"integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"postcss-selector-parser": "^6.0.9",
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-colormin": {
+					"version": "5.3.0",
+					"resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz",
+					"integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"browserslist": "^4.16.6",
+						"caniuse-api": "^3.0.0",
+						"colord": "^2.9.1",
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-convert-values": {
+					"version": "5.1.3",
+					"resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz",
+					"integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"browserslist": "^4.21.4",
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-discard-comments": {
+					"version": "5.1.2",
+					"resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
+					"integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {}
+				},
+				"postcss-discard-duplicates": {
+					"version": "5.1.0",
+					"resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
+					"integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {}
+				},
+				"postcss-discard-empty": {
+					"version": "5.1.1",
+					"resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
+					"integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {}
+				},
+				"postcss-discard-overridden": {
+					"version": "5.1.0",
+					"resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
+					"integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {}
+				},
+				"postcss-merge-longhand": {
+					"version": "5.1.7",
+					"resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz",
+					"integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"postcss-value-parser": "^4.2.0",
+						"stylehacks": "^5.1.1"
+					}
+				},
+				"postcss-merge-rules": {
+					"version": "5.1.3",
+					"resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz",
+					"integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"browserslist": "^4.21.4",
+						"caniuse-api": "^3.0.0",
+						"cssnano-utils": "^3.1.0",
+						"postcss-selector-parser": "^6.0.5"
+					}
+				},
+				"postcss-minify-font-values": {
+					"version": "5.1.0",
+					"resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz",
+					"integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-minify-gradients": {
+					"version": "5.1.1",
+					"resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz",
+					"integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"colord": "^2.9.1",
+						"cssnano-utils": "^3.1.0",
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-minify-params": {
+					"version": "5.1.4",
+					"resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz",
+					"integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"browserslist": "^4.21.4",
+						"cssnano-utils": "^3.1.0",
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-minify-selectors": {
+					"version": "5.2.1",
+					"resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz",
+					"integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"postcss-selector-parser": "^6.0.5"
+					}
+				},
+				"postcss-normalize-charset": {
+					"version": "5.1.0",
+					"resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
+					"integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {}
+				},
+				"postcss-normalize-display-values": {
+					"version": "5.1.0",
+					"resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz",
+					"integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-normalize-positions": {
+					"version": "5.1.1",
+					"resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz",
+					"integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-normalize-repeat-style": {
+					"version": "5.1.1",
+					"resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz",
+					"integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-normalize-string": {
+					"version": "5.1.0",
+					"resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz",
+					"integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-normalize-timing-functions": {
+					"version": "5.1.0",
+					"resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz",
+					"integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-normalize-unicode": {
+					"version": "5.1.1",
+					"resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz",
+					"integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"browserslist": "^4.21.4",
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-normalize-url": {
+					"version": "5.1.0",
+					"resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz",
+					"integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"normalize-url": "^6.0.1",
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-normalize-whitespace": {
+					"version": "5.1.1",
+					"resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz",
+					"integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-ordered-values": {
+					"version": "5.1.3",
+					"resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz",
+					"integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"cssnano-utils": "^3.1.0",
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-reduce-initial": {
+					"version": "5.1.1",
+					"resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz",
+					"integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"browserslist": "^4.21.4",
+						"caniuse-api": "^3.0.0"
+					}
+				},
+				"postcss-reduce-transforms": {
+					"version": "5.1.0",
+					"resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz",
+					"integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"postcss-value-parser": "^4.2.0"
+					}
+				},
+				"postcss-selector-parser": {
+					"version": "6.0.11",
+					"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
+					"integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"cssesc": "^3.0.0",
+						"util-deprecate": "^1.0.2"
+					}
+				},
+				"postcss-svgo": {
+					"version": "5.1.0",
+					"resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz",
+					"integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"postcss-value-parser": "^4.2.0",
+						"svgo": "^2.7.0"
+					}
+				},
+				"postcss-unique-selectors": {
+					"version": "5.1.1",
+					"resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz",
+					"integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"postcss-selector-parser": "^6.0.5"
+					}
+				},
+				"postcss-value-parser": {
+					"version": "4.2.0",
+					"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+					"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+					"dev": true,
+					"optional": true,
+					"peer": true
+				},
+				"posthtml": {
+					"version": "0.16.6",
+					"resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+					"integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+					"dev": true,
+					"requires": {
+						"posthtml-parser": "^0.11.0",
+						"posthtml-render": "^3.0.0"
+					}
+				},
+				"posthtml-parser": {
+					"version": "0.11.0",
+					"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+					"integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+					"dev": true,
+					"requires": {
+						"htmlparser2": "^7.1.1"
+					}
+				},
+				"posthtml-render": {
+					"version": "3.0.0",
+					"resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+					"integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+					"dev": true,
+					"requires": {
+						"is-json": "^2.0.1"
+					}
+				},
+				"source-map-support": {
+					"version": "0.5.21",
+					"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+					"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"buffer-from": "^1.0.0",
+						"source-map": "^0.6.0"
+					}
+				},
+				"stylehacks": {
+					"version": "5.1.1",
+					"resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
+					"integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"browserslist": "^4.21.4",
+						"postcss-selector-parser": "^6.0.4"
+					}
+				},
+				"svgo": {
+					"version": "2.8.0",
+					"resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz",
+					"integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
+					"dev": true,
+					"requires": {
+						"@trysound/sax": "0.2.0",
+						"commander": "^7.2.0",
+						"css-select": "^4.1.3",
+						"css-tree": "^1.1.3",
+						"csso": "^4.2.0",
+						"picocolors": "^1.0.0",
+						"stable": "^0.1.8"
+					},
+					"dependencies": {
+						"commander": {
+							"version": "7.2.0",
+							"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+							"integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+							"dev": true
+						}
+					}
+				},
+				"terser": {
+					"version": "5.16.1",
+					"resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz",
+					"integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"@jridgewell/source-map": "^0.3.2",
+						"acorn": "^8.5.0",
+						"commander": "^2.20.0",
+						"source-map-support": "~0.5.20"
+					}
+				},
+				"update-browserslist-db": {
+					"version": "1.0.10",
+					"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+					"integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+					"dev": true,
+					"optional": true,
+					"peer": true,
+					"requires": {
+						"escalade": "^3.1.1",
+						"picocolors": "^1.0.0"
+					}
+				}
+			}
+		},
+		"@parcel/optimizer-image": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.8.3.tgz",
+			"integrity": "sha512-SD71sSH27SkCDNUNx9A3jizqB/WIJr3dsfp+JZGZC42tpD/Siim6Rqy9M4To/BpMMQIIiEXa5ofwS+DgTEiEHQ==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"@parcel/workers": "2.8.3",
+				"detect-libc": "^1.0.3"
+			}
+		},
+		"@parcel/optimizer-svgo": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.8.3.tgz",
+			"integrity": "sha512-9KQed99NZnQw3/W4qBYVQ7212rzA9EqrQG019TIWJzkA9tjGBMIm2c/nXpK1tc3hQ3e7KkXkFCQ3C+ibVUnHNA==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"svgo": "^2.4.0"
+			},
+			"dependencies": {
+				"commander": {
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+					"integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+					"dev": true
+				},
+				"css-select": {
+					"version": "4.3.0",
+					"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
+					"integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+					"dev": true,
+					"requires": {
+						"boolbase": "^1.0.0",
+						"css-what": "^6.0.1",
+						"domhandler": "^4.3.1",
+						"domutils": "^2.8.0",
+						"nth-check": "^2.0.1"
+					}
+				},
+				"css-tree": {
+					"version": "1.1.3",
+					"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
+					"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+					"dev": true,
+					"requires": {
+						"mdn-data": "2.0.14",
+						"source-map": "^0.6.1"
+					}
+				},
+				"css-what": {
+					"version": "6.1.0",
+					"resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+					"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+					"dev": true
+				},
+				"dom-serializer": {
+					"version": "1.4.1",
+					"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+					"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.0.1",
+						"domhandler": "^4.2.0",
+						"entities": "^2.0.0"
+					}
+				},
+				"domelementtype": {
+					"version": "2.3.0",
+					"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+					"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+					"dev": true
+				},
+				"domhandler": {
+					"version": "4.3.1",
+					"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+					"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.2.0"
+					}
+				},
+				"domutils": {
+					"version": "2.8.0",
+					"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+					"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+					"dev": true,
+					"requires": {
+						"dom-serializer": "^1.0.1",
+						"domelementtype": "^2.2.0",
+						"domhandler": "^4.2.0"
+					}
+				},
+				"mdn-data": {
+					"version": "2.0.14",
+					"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+					"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+					"dev": true
+				},
+				"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,
+					"requires": {
+						"boolbase": "^1.0.0"
+					}
+				},
+				"svgo": {
+					"version": "2.8.0",
+					"resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz",
+					"integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
+					"dev": true,
+					"requires": {
+						"@trysound/sax": "0.2.0",
+						"commander": "^7.2.0",
+						"css-select": "^4.1.3",
+						"css-tree": "^1.1.3",
+						"csso": "^4.2.0",
+						"picocolors": "^1.0.0",
+						"stable": "^0.1.8"
+					}
+				}
+			}
+		},
+		"@parcel/optimizer-terser": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.8.3.tgz",
+			"integrity": "sha512-9EeQlN6zIeUWwzrzu6Q2pQSaYsYGah8MtiQ/hog9KEPlYTP60hBv/+utDyYEHSQhL7y5ym08tPX5GzBvwAD/dA==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1",
+				"terser": "^5.2.0"
+			},
+			"dependencies": {
+				"acorn": {
+					"version": "8.8.2",
+					"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+					"integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+					"dev": true
+				},
+				"source-map-support": {
+					"version": "0.5.21",
+					"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+					"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+					"dev": true,
+					"requires": {
+						"buffer-from": "^1.0.0",
+						"source-map": "^0.6.0"
+					}
+				},
+				"terser": {
+					"version": "5.16.1",
+					"resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz",
+					"integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==",
+					"dev": true,
+					"requires": {
+						"@jridgewell/source-map": "^0.3.2",
+						"acorn": "^8.5.0",
+						"commander": "^2.20.0",
+						"source-map-support": "~0.5.20"
+					}
+				}
+			}
+		},
+		"@parcel/package-manager": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.8.3.tgz",
+			"integrity": "sha512-tIpY5pD2lH53p9hpi++GsODy6V3khSTX4pLEGuMpeSYbHthnOViobqIlFLsjni+QA1pfc8NNNIQwSNdGjYflVA==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/fs": "2.8.3",
+				"@parcel/logger": "2.8.3",
+				"@parcel/types": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"@parcel/workers": "2.8.3",
+				"semver": "^5.7.1"
+			}
+		},
+		"@parcel/packager-css": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.8.3.tgz",
+			"integrity": "sha512-WyvkMmsurlHG8d8oUVm7S+D+cC/T3qGeqogb7sTI52gB6uiywU7lRCizLNqGFyFGIxcVTVHWnSHqItBcLN76lA==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1"
+			}
+		},
+		"@parcel/packager-html": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.8.3.tgz",
+			"integrity": "sha512-OhPu1Hx1RRKJodpiu86ZqL8el2Aa4uhBHF6RAL1Pcrh2EhRRlPf70Sk0tC22zUpYL7es+iNKZ/n0Rl+OWSHWEw==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/types": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1",
+				"posthtml": "^0.16.5"
+			},
+			"dependencies": {
+				"dom-serializer": {
+					"version": "1.4.1",
+					"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+					"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.0.1",
+						"domhandler": "^4.2.0",
+						"entities": "^2.0.0"
+					},
+					"dependencies": {
+						"entities": {
+							"version": "2.2.0",
+							"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+							"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+							"dev": true
+						}
+					}
+				},
+				"domelementtype": {
+					"version": "2.3.0",
+					"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+					"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+					"dev": true
+				},
+				"domhandler": {
+					"version": "4.3.1",
+					"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+					"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.2.0"
+					}
+				},
+				"domutils": {
+					"version": "2.8.0",
+					"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+					"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+					"dev": true,
+					"requires": {
+						"dom-serializer": "^1.0.1",
+						"domelementtype": "^2.2.0",
+						"domhandler": "^4.2.0"
+					}
+				},
+				"entities": {
+					"version": "3.0.1",
+					"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+					"integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+					"dev": true
+				},
+				"htmlparser2": {
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+					"integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.0.1",
+						"domhandler": "^4.2.2",
+						"domutils": "^2.8.0",
+						"entities": "^3.0.1"
+					}
+				},
+				"posthtml": {
+					"version": "0.16.6",
+					"resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+					"integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+					"dev": true,
+					"requires": {
+						"posthtml-parser": "^0.11.0",
+						"posthtml-render": "^3.0.0"
+					}
+				},
+				"posthtml-parser": {
+					"version": "0.11.0",
+					"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+					"integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+					"dev": true,
+					"requires": {
+						"htmlparser2": "^7.1.1"
+					}
+				},
+				"posthtml-render": {
+					"version": "3.0.0",
+					"resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+					"integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+					"dev": true,
+					"requires": {
+						"is-json": "^2.0.1"
+					}
+				}
+			}
+		},
+		"@parcel/packager-js": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.8.3.tgz",
+			"integrity": "sha512-0pGKC3Ax5vFuxuZCRB+nBucRfFRz4ioie19BbDxYnvBxrd4M3FIu45njf6zbBYsI9eXqaDnL1b3DcZJfYqtIzw==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/hash": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/utils": "2.8.3",
+				"globals": "^13.2.0",
+				"nullthrows": "^1.1.1"
+			},
+			"dependencies": {
+				"globals": {
+					"version": "13.19.0",
+					"resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
+					"integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
+					"dev": true,
+					"requires": {
+						"type-fest": "^0.20.2"
+					}
+				}
+			}
+		},
+		"@parcel/packager-raw": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.8.3.tgz",
+			"integrity": "sha512-BA6enNQo1RCnco9MhkxGrjOk59O71IZ9DPKu3lCtqqYEVd823tXff2clDKHK25i6cChmeHu6oB1Rb73hlPqhUA==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3"
+			}
+		},
+		"@parcel/packager-svg": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.8.3.tgz",
+			"integrity": "sha512-mvIoHpmv5yzl36OjrklTDFShLUfPFTwrmp1eIwiszGdEBuQaX7JVI3Oo2jbVQgcN4W7J6SENzGQ3Q5hPTW3pMw==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/types": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"posthtml": "^0.16.4"
+			},
+			"dependencies": {
+				"dom-serializer": {
+					"version": "1.4.1",
+					"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+					"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.0.1",
+						"domhandler": "^4.2.0",
+						"entities": "^2.0.0"
+					},
+					"dependencies": {
+						"entities": {
+							"version": "2.2.0",
+							"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+							"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+							"dev": true
+						}
+					}
+				},
+				"domelementtype": {
+					"version": "2.3.0",
+					"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+					"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+					"dev": true
+				},
+				"domhandler": {
+					"version": "4.3.1",
+					"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+					"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.2.0"
+					}
+				},
+				"domutils": {
+					"version": "2.8.0",
+					"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+					"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+					"dev": true,
+					"requires": {
+						"dom-serializer": "^1.0.1",
+						"domelementtype": "^2.2.0",
+						"domhandler": "^4.2.0"
+					}
+				},
+				"entities": {
+					"version": "3.0.1",
+					"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+					"integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+					"dev": true
+				},
+				"htmlparser2": {
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+					"integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.0.1",
+						"domhandler": "^4.2.2",
+						"domutils": "^2.8.0",
+						"entities": "^3.0.1"
+					}
+				},
+				"posthtml": {
+					"version": "0.16.6",
+					"resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+					"integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+					"dev": true,
+					"requires": {
+						"posthtml-parser": "^0.11.0",
+						"posthtml-render": "^3.0.0"
+					}
+				},
+				"posthtml-parser": {
+					"version": "0.11.0",
+					"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+					"integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+					"dev": true,
+					"requires": {
+						"htmlparser2": "^7.1.1"
+					}
+				},
+				"posthtml-render": {
+					"version": "3.0.0",
+					"resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+					"integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+					"dev": true,
+					"requires": {
+						"is-json": "^2.0.1"
+					}
+				}
+			}
+		},
+		"@parcel/plugin": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.8.3.tgz",
+			"integrity": "sha512-jZ6mnsS4D9X9GaNnvrixDQwlUQJCohDX2hGyM0U0bY2NWU8Km97SjtoCpWjq+XBCx/gpC4g58+fk9VQeZq2vlw==",
+			"dev": true,
+			"requires": {
+				"@parcel/types": "2.8.3"
+			}
+		},
+		"@parcel/reporter-cli": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.8.3.tgz",
+			"integrity": "sha512-3sJkS6tFFzgIOz3u3IpD/RsmRxvOKKiQHOTkiiqRt1l44mMDGKS7zANRnJYsQzdCsgwc9SOP30XFgJwtoVlMbw==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/types": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"chalk": "^4.1.0",
+				"term-size": "^2.2.1"
+			},
+			"dependencies": {
+				"ansi-styles": {
+					"version": "4.3.0",
+					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+					"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+					"dev": true,
+					"requires": {
+						"color-convert": "^2.0.1"
+					}
+				},
+				"chalk": {
+					"version": "4.1.2",
+					"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+					"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+					"dev": true,
+					"requires": {
+						"ansi-styles": "^4.1.0",
+						"supports-color": "^7.1.0"
+					}
+				},
+				"color-convert": {
+					"version": "2.0.1",
+					"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+					"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+					"dev": true,
+					"requires": {
+						"color-name": "~1.1.4"
+					}
+				},
+				"color-name": {
+					"version": "1.1.4",
+					"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+					"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+					"dev": true
+				},
+				"has-flag": {
+					"version": "4.0.0",
+					"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+					"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+					"dev": true
+				},
+				"supports-color": {
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+					"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+					"dev": true,
+					"requires": {
+						"has-flag": "^4.0.0"
+					}
+				}
+			}
+		},
+		"@parcel/reporter-dev-server": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.8.3.tgz",
+			"integrity": "sha512-Y8C8hzgzTd13IoWTj+COYXEyCkXfmVJs3//GDBsH22pbtSFMuzAZd+8J9qsCo0EWpiDow7V9f1LischvEh3FbQ==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3"
+			}
+		},
+		"@parcel/resolver-default": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.8.3.tgz",
+			"integrity": "sha512-k0B5M/PJ+3rFbNj4xZSBr6d6HVIe6DH/P3dClLcgBYSXAvElNDfXgtIimbjCyItFkW9/BfcgOVKEEIZOeySH/A==",
+			"dev": true,
+			"requires": {
+				"@parcel/node-resolver-core": "2.8.3",
+				"@parcel/plugin": "2.8.3"
+			}
+		},
+		"@parcel/runtime-browser-hmr": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.8.3.tgz",
+			"integrity": "sha512-2O1PYi2j/Q0lTyGNV3JdBYwg4rKo6TEVFlYGdd5wCYU9ZIN9RRuoCnWWH2qCPj3pjIVtBeppYxzfVjPEHINWVg==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3"
+			}
+		},
+		"@parcel/runtime-js": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.8.3.tgz",
+			"integrity": "sha512-IRja0vNKwvMtPgIqkBQh0QtRn0XcxNC8HU1jrgWGRckzu10qJWO+5ULgtOeR4pv9krffmMPqywGXw6l/gvJKYQ==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1"
+			}
+		},
+		"@parcel/runtime-react-refresh": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.8.3.tgz",
+			"integrity": "sha512-2v/qFKp00MfG0234OdOgQNAo6TLENpFYZMbVbAsPMY9ITiqG73MrEsrGXVoGbYiGTMB/Toer/lSWlJxtacOCuA==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"react-error-overlay": "6.0.9",
+				"react-refresh": "^0.9.0"
+			}
+		},
+		"@parcel/runtime-service-worker": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.8.3.tgz",
+			"integrity": "sha512-/Skkw+EeRiwzOJso5fQtK8c9b452uWLNhQH1ISTodbmlcyB4YalAiSsyHCtMYD0c3/t5Sx4ZS7vxBAtQd0RvOw==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1"
+			}
+		},
+		"@parcel/source-map": {
+			"version": "2.1.1",
+			"resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz",
+			"integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==",
+			"dev": true,
+			"requires": {
+				"detect-libc": "^1.0.3"
+			}
+		},
+		"@parcel/transformer-babel": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.8.3.tgz",
+			"integrity": "sha512-L6lExfpvvC7T/g3pxf3CIJRouQl+sgrSzuWQ0fD4PemUDHvHchSP4SNUVnd6gOytF3Y1KpnEZIunQGi5xVqQCQ==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/utils": "2.8.3",
+				"browserslist": "^4.6.6",
+				"json5": "^2.2.0",
+				"nullthrows": "^1.1.1",
+				"semver": "^5.7.0"
+			},
+			"dependencies": {
+				"browserslist": {
+					"version": "4.21.4",
+					"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+					"integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+					"dev": true,
+					"requires": {
+						"caniuse-lite": "^1.0.30001400",
+						"electron-to-chromium": "^1.4.251",
+						"node-releases": "^2.0.6",
+						"update-browserslist-db": "^1.0.9"
+					}
+				},
+				"json5": {
+					"version": "2.2.3",
+					"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+					"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+					"dev": true
+				},
+				"update-browserslist-db": {
+					"version": "1.0.10",
+					"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+					"integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+					"dev": true,
+					"requires": {
+						"escalade": "^3.1.1",
+						"picocolors": "^1.0.0"
+					}
+				}
+			}
+		},
+		"@parcel/transformer-css": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.8.3.tgz",
+			"integrity": "sha512-xTqFwlSXtnaYen9ivAgz+xPW7yRl/u4QxtnDyDpz5dr8gSeOpQYRcjkd4RsYzKsWzZcGtB5EofEk8ayUbWKEUg==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/utils": "2.8.3",
+				"browserslist": "^4.6.6",
+				"lightningcss": "^1.16.1",
+				"nullthrows": "^1.1.1"
+			},
+			"dependencies": {
+				"browserslist": {
+					"version": "4.21.4",
+					"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+					"integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+					"dev": true,
+					"requires": {
+						"caniuse-lite": "^1.0.30001400",
+						"electron-to-chromium": "^1.4.251",
+						"node-releases": "^2.0.6",
+						"update-browserslist-db": "^1.0.9"
+					}
+				},
+				"update-browserslist-db": {
+					"version": "1.0.10",
+					"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+					"integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+					"dev": true,
+					"requires": {
+						"escalade": "^3.1.1",
+						"picocolors": "^1.0.0"
+					}
+				}
+			}
+		},
+		"@parcel/transformer-html": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.8.3.tgz",
+			"integrity": "sha512-kIZO3qsMYTbSnSpl9cnZog+SwL517ffWH54JeB410OSAYF1ouf4n5v9qBnALZbuCCmPwJRGs4jUtE452hxwN4g==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/hash": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"nullthrows": "^1.1.1",
+				"posthtml": "^0.16.5",
+				"posthtml-parser": "^0.10.1",
+				"posthtml-render": "^3.0.0",
+				"semver": "^5.7.1",
+				"srcset": "4"
+			},
+			"dependencies": {
+				"dom-serializer": {
+					"version": "1.4.1",
+					"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+					"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.0.1",
+						"domhandler": "^4.2.0",
+						"entities": "^2.0.0"
+					},
+					"dependencies": {
+						"entities": {
+							"version": "2.2.0",
+							"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+							"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+							"dev": true
+						}
+					}
+				},
+				"domelementtype": {
+					"version": "2.3.0",
+					"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+					"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+					"dev": true
+				},
+				"domhandler": {
+					"version": "4.3.1",
+					"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+					"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.2.0"
+					}
+				},
+				"domutils": {
+					"version": "2.8.0",
+					"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+					"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+					"dev": true,
+					"requires": {
+						"dom-serializer": "^1.0.1",
+						"domelementtype": "^2.2.0",
+						"domhandler": "^4.2.0"
+					}
+				},
+				"entities": {
+					"version": "3.0.1",
+					"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+					"integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+					"dev": true
+				},
+				"htmlparser2": {
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+					"integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.0.1",
+						"domhandler": "^4.2.2",
+						"domutils": "^2.8.0",
+						"entities": "^3.0.1"
+					}
+				},
+				"posthtml": {
+					"version": "0.16.6",
+					"resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+					"integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+					"dev": true,
+					"requires": {
+						"posthtml-parser": "^0.11.0",
+						"posthtml-render": "^3.0.0"
+					},
+					"dependencies": {
+						"posthtml-parser": {
+							"version": "0.11.0",
+							"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+							"integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+							"dev": true,
+							"requires": {
+								"htmlparser2": "^7.1.1"
+							}
+						}
+					}
+				},
+				"posthtml-parser": {
+					"version": "0.10.2",
+					"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz",
+					"integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==",
+					"dev": true,
+					"requires": {
+						"htmlparser2": "^7.1.1"
+					}
+				},
+				"posthtml-render": {
+					"version": "3.0.0",
+					"resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+					"integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+					"dev": true,
+					"requires": {
+						"is-json": "^2.0.1"
+					}
+				}
+			}
+		},
+		"@parcel/transformer-image": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.8.3.tgz",
+			"integrity": "sha512-cO4uptcCGTi5H6bvTrAWEFUsTNhA4kCo8BSvRSCHA2sf/4C5tGQPHt3JhdO0GQLPwZRCh/R41EkJs5HZ8A8DAg==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"@parcel/workers": "2.8.3",
+				"nullthrows": "^1.1.1"
+			}
+		},
+		"@parcel/transformer-js": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.8.3.tgz",
+			"integrity": "sha512-9Qd6bib+sWRcpovvzvxwy/PdFrLUXGfmSW9XcVVG8pvgXsZPFaNjnNT8stzGQj1pQiougCoxMY4aTM5p1lGHEQ==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/utils": "2.8.3",
+				"@parcel/workers": "2.8.3",
+				"@swc/helpers": "^0.4.12",
+				"browserslist": "^4.6.6",
+				"detect-libc": "^1.0.3",
+				"nullthrows": "^1.1.1",
+				"regenerator-runtime": "^0.13.7",
+				"semver": "^5.7.1"
+			},
+			"dependencies": {
+				"browserslist": {
+					"version": "4.21.4",
+					"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+					"integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+					"dev": true,
+					"requires": {
+						"caniuse-lite": "^1.0.30001400",
+						"electron-to-chromium": "^1.4.251",
+						"node-releases": "^2.0.6",
+						"update-browserslist-db": "^1.0.9"
+					}
+				},
+				"update-browserslist-db": {
+					"version": "1.0.10",
+					"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+					"integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+					"dev": true,
+					"requires": {
+						"escalade": "^3.1.1",
+						"picocolors": "^1.0.0"
+					}
+				}
+			}
+		},
+		"@parcel/transformer-json": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.8.3.tgz",
+			"integrity": "sha512-B7LmVq5Q7bZO4ERb6NHtRuUKWGysEeaj9H4zelnyBv+wLgpo4f5FCxSE1/rTNmP9u1qHvQ3scGdK6EdSSokGPg==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3",
+				"json5": "^2.2.0"
+			},
+			"dependencies": {
+				"json5": {
+					"version": "2.2.3",
+					"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+					"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+					"dev": true
+				}
+			}
+		},
+		"@parcel/transformer-postcss": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.8.3.tgz",
+			"integrity": "sha512-e8luB/poIlz6jBsD1Izms+6ElbyzuoFVa4lFVLZnTAChI3UxPdt9p/uTsIO46HyBps/Bk8ocvt3J4YF84jzmvg==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/hash": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"clone": "^2.1.1",
+				"nullthrows": "^1.1.1",
+				"postcss-value-parser": "^4.2.0",
+				"semver": "^5.7.1"
+			},
+			"dependencies": {
+				"clone": {
+					"version": "2.1.2",
+					"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+					"integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+					"dev": true
+				},
+				"postcss-value-parser": {
+					"version": "4.2.0",
+					"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+					"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+					"dev": true
+				}
+			}
+		},
+		"@parcel/transformer-posthtml": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.8.3.tgz",
+			"integrity": "sha512-pkzf9Smyeaw4uaRLsT41RGrPLT5Aip8ZPcntawAfIo+KivBQUV0erY1IvHYjyfFzq1ld/Fo2Ith9He6mxpPifA==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"nullthrows": "^1.1.1",
+				"posthtml": "^0.16.5",
+				"posthtml-parser": "^0.10.1",
+				"posthtml-render": "^3.0.0",
+				"semver": "^5.7.1"
+			},
+			"dependencies": {
+				"dom-serializer": {
+					"version": "1.4.1",
+					"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+					"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.0.1",
+						"domhandler": "^4.2.0",
+						"entities": "^2.0.0"
+					},
+					"dependencies": {
+						"entities": {
+							"version": "2.2.0",
+							"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+							"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+							"dev": true
+						}
+					}
+				},
+				"domelementtype": {
+					"version": "2.3.0",
+					"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+					"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+					"dev": true
+				},
+				"domhandler": {
+					"version": "4.3.1",
+					"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+					"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.2.0"
+					}
+				},
+				"domutils": {
+					"version": "2.8.0",
+					"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+					"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+					"dev": true,
+					"requires": {
+						"dom-serializer": "^1.0.1",
+						"domelementtype": "^2.2.0",
+						"domhandler": "^4.2.0"
+					}
+				},
+				"entities": {
+					"version": "3.0.1",
+					"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+					"integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+					"dev": true
+				},
+				"htmlparser2": {
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+					"integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.0.1",
+						"domhandler": "^4.2.2",
+						"domutils": "^2.8.0",
+						"entities": "^3.0.1"
+					}
+				},
+				"posthtml": {
+					"version": "0.16.6",
+					"resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+					"integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+					"dev": true,
+					"requires": {
+						"posthtml-parser": "^0.11.0",
+						"posthtml-render": "^3.0.0"
+					},
+					"dependencies": {
+						"posthtml-parser": {
+							"version": "0.11.0",
+							"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+							"integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+							"dev": true,
+							"requires": {
+								"htmlparser2": "^7.1.1"
+							}
+						}
+					}
+				},
+				"posthtml-parser": {
+					"version": "0.10.2",
+					"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz",
+					"integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==",
+					"dev": true,
+					"requires": {
+						"htmlparser2": "^7.1.1"
+					}
+				},
+				"posthtml-render": {
+					"version": "3.0.0",
+					"resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+					"integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+					"dev": true,
+					"requires": {
+						"is-json": "^2.0.1"
+					}
+				}
+			}
+		},
+		"@parcel/transformer-raw": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.8.3.tgz",
+			"integrity": "sha512-G+5cXnd2/1O3nV/pgRxVKZY/HcGSseuhAe71gQdSQftb8uJEURyUHoQ9Eh0JUD3MgWh9V+nIKoyFEZdf9T0sUQ==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3"
+			}
+		},
+		"@parcel/transformer-react-refresh-wrap": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.8.3.tgz",
+			"integrity": "sha512-q8AAoEvBnCf/nPvgOwFwKZfEl/thwq7c2duxXkhl+tTLDRN2vGmyz4355IxCkavSX+pLWSQ5MexklSEeMkgthg==",
+			"dev": true,
+			"requires": {
+				"@parcel/plugin": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"react-refresh": "^0.9.0"
+			}
+		},
+		"@parcel/transformer-svg": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.8.3.tgz",
+			"integrity": "sha512-3Zr/gBzxi1ZH1fftH/+KsZU7w5GqkmxlB0ZM8ovS5E/Pl1lq1t0xvGJue9m2VuQqP8Mxfpl5qLFmsKlhaZdMIQ==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/hash": "2.8.3",
+				"@parcel/plugin": "2.8.3",
+				"nullthrows": "^1.1.1",
+				"posthtml": "^0.16.5",
+				"posthtml-parser": "^0.10.1",
+				"posthtml-render": "^3.0.0",
+				"semver": "^5.7.1"
+			},
+			"dependencies": {
+				"dom-serializer": {
+					"version": "1.4.1",
+					"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+					"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.0.1",
+						"domhandler": "^4.2.0",
+						"entities": "^2.0.0"
+					},
+					"dependencies": {
+						"entities": {
+							"version": "2.2.0",
+							"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+							"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+							"dev": true
+						}
+					}
+				},
+				"domelementtype": {
+					"version": "2.3.0",
+					"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+					"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+					"dev": true
+				},
+				"domhandler": {
+					"version": "4.3.1",
+					"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+					"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.2.0"
+					}
+				},
+				"domutils": {
+					"version": "2.8.0",
+					"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+					"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+					"dev": true,
+					"requires": {
+						"dom-serializer": "^1.0.1",
+						"domelementtype": "^2.2.0",
+						"domhandler": "^4.2.0"
+					}
+				},
+				"entities": {
+					"version": "3.0.1",
+					"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+					"integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+					"dev": true
+				},
+				"htmlparser2": {
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+					"integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+					"dev": true,
+					"requires": {
+						"domelementtype": "^2.0.1",
+						"domhandler": "^4.2.2",
+						"domutils": "^2.8.0",
+						"entities": "^3.0.1"
+					}
+				},
+				"posthtml": {
+					"version": "0.16.6",
+					"resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+					"integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+					"dev": true,
+					"requires": {
+						"posthtml-parser": "^0.11.0",
+						"posthtml-render": "^3.0.0"
+					},
+					"dependencies": {
+						"posthtml-parser": {
+							"version": "0.11.0",
+							"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+							"integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+							"dev": true,
+							"requires": {
+								"htmlparser2": "^7.1.1"
+							}
+						}
+					}
+				},
+				"posthtml-parser": {
+					"version": "0.10.2",
+					"resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz",
+					"integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==",
+					"dev": true,
+					"requires": {
+						"htmlparser2": "^7.1.1"
+					}
+				},
+				"posthtml-render": {
+					"version": "3.0.0",
+					"resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+					"integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+					"dev": true,
+					"requires": {
+						"is-json": "^2.0.1"
+					}
+				}
+			}
+		},
+		"@parcel/types": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.8.3.tgz",
+			"integrity": "sha512-FECA1FB7+0UpITKU0D6TgGBpGxYpVSMNEENZbSJxFSajNy3wrko+zwBKQmFOLOiPcEtnGikxNs+jkFWbPlUAtw==",
+			"dev": true,
+			"requires": {
+				"@parcel/cache": "2.8.3",
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/fs": "2.8.3",
+				"@parcel/package-manager": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"@parcel/workers": "2.8.3",
+				"utility-types": "^3.10.0"
+			}
+		},
+		"@parcel/utils": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.8.3.tgz",
+			"integrity": "sha512-IhVrmNiJ+LOKHcCivG5dnuLGjhPYxQ/IzbnF2DKNQXWBTsYlHkJZpmz7THoeLtLliGmSOZ3ZCsbR8/tJJKmxjA==",
+			"dev": true,
+			"requires": {
+				"@parcel/codeframe": "2.8.3",
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/hash": "2.8.3",
+				"@parcel/logger": "2.8.3",
+				"@parcel/markdown-ansi": "2.8.3",
+				"@parcel/source-map": "^2.1.1",
+				"chalk": "^4.1.0"
+			},
+			"dependencies": {
+				"ansi-styles": {
+					"version": "4.3.0",
+					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+					"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+					"dev": true,
+					"requires": {
+						"color-convert": "^2.0.1"
+					}
+				},
+				"chalk": {
+					"version": "4.1.2",
+					"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+					"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+					"dev": true,
+					"requires": {
+						"ansi-styles": "^4.1.0",
+						"supports-color": "^7.1.0"
+					}
+				},
+				"color-convert": {
+					"version": "2.0.1",
+					"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+					"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+					"dev": true,
+					"requires": {
+						"color-name": "~1.1.4"
+					}
+				},
+				"color-name": {
+					"version": "1.1.4",
+					"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+					"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+					"dev": true
+				},
+				"has-flag": {
+					"version": "4.0.0",
+					"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+					"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+					"dev": true
+				},
+				"supports-color": {
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+					"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+					"dev": true,
+					"requires": {
+						"has-flag": "^4.0.0"
+					}
+				}
+			}
+		},
+		"@parcel/watcher": {
+			"version": "2.1.0",
+			"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.1.0.tgz",
+			"integrity": "sha512-8s8yYjd19pDSsBpbkOHnT6Z2+UJSuLQx61pCFM0s5wSRvKCEMDjd/cHY3/GI1szHIWbpXpsJdg3V6ISGGx9xDw==",
+			"dev": true,
+			"requires": {
+				"is-glob": "^4.0.3",
+				"micromatch": "^4.0.5",
+				"node-addon-api": "^3.2.1",
+				"node-gyp-build": "^4.3.0"
+			},
+			"dependencies": {
+				"braces": {
+					"version": "3.0.2",
+					"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+					"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+					"dev": true,
+					"requires": {
+						"fill-range": "^7.0.1"
+					}
+				},
+				"fill-range": {
+					"version": "7.0.1",
+					"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+					"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+					"dev": true,
+					"requires": {
+						"to-regex-range": "^5.0.1"
+					}
+				},
+				"is-number": {
+					"version": "7.0.0",
+					"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+					"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+					"dev": true
+				},
+				"micromatch": {
+					"version": "4.0.5",
+					"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+					"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+					"dev": true,
+					"requires": {
+						"braces": "^3.0.2",
+						"picomatch": "^2.3.1"
+					}
+				},
+				"node-addon-api": {
+					"version": "3.2.1",
+					"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
+					"integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==",
+					"dev": true
+				},
+				"to-regex-range": {
+					"version": "5.0.1",
+					"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+					"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+					"dev": true,
+					"requires": {
+						"is-number": "^7.0.0"
+					}
+				}
+			}
+		},
+		"@parcel/workers": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.8.3.tgz",
+			"integrity": "sha512-+AxBnKgjqVpUHBcHLWIHcjYgKIvHIpZjN33mG5LG9XXvrZiqdWvouEzqEXlVLq5VzzVbKIQQcmsvRy138YErkg==",
+			"dev": true,
+			"requires": {
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/logger": "2.8.3",
+				"@parcel/types": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"chrome-trace-event": "^1.0.2",
+				"nullthrows": "^1.1.1"
+			}
+		},
+		"@swc/helpers": {
+			"version": "0.4.14",
+			"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz",
+			"integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==",
+			"dev": true,
+			"requires": {
+				"tslib": "^2.4.0"
+			}
+		},
+		"@trysound/sax": {
+			"version": "0.2.0",
+			"resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
+			"integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
+			"dev": true
+		},
+		"@types/node": {
+			"version": "18.11.18",
+			"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
+			"integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==",
+			"dev": true,
+			"optional": true
+		},
+		"@types/parse-json": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+			"integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+			"dev": true
+		},
+		"@types/yauzl": {
+			"version": "2.10.0",
+			"resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
+			"integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
+			"dev": true,
+			"optional": true,
+			"requires": {
+				"@types/node": "*"
+			}
+		},
+		"abortcontroller-polyfill": {
+			"version": "1.7.5",
+			"resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz",
+			"integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==",
+			"dev": true
+		},
+		"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,
+			"requires": {
+				"debug": "4"
+			}
+		},
+		"ansi-styles": {
+			"version": "3.2.1",
+			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+			"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+			"dev": true,
+			"requires": {
+				"color-convert": "^1.9.0"
+			}
+		},
+		"argparse": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+			"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+			"dev": true
+		},
+		"balanced-match": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+			"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+			"dev": true
+		},
+		"base-x": {
+			"version": "3.0.9",
+			"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+			"integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+			"dev": true,
+			"requires": {
+				"safe-buffer": "^5.0.1"
+			}
+		},
+		"base64-js": {
+			"version": "1.5.1",
+			"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+			"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+			"dev": true
+		},
+		"bl": {
+			"version": "4.1.0",
+			"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+			"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+			"dev": true,
+			"requires": {
+				"buffer": "^5.5.0",
+				"inherits": "^2.0.4",
+				"readable-stream": "^3.4.0"
+			}
+		},
+		"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
+		},
+		"brace-expansion": {
+			"version": "1.1.11",
+			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+			"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+			"dev": true,
+			"requires": {
+				"balanced-match": "^1.0.0",
+				"concat-map": "0.0.1"
+			}
+		},
+		"buffer": {
+			"version": "5.7.1",
+			"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+			"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+			"dev": true,
+			"requires": {
+				"base64-js": "^1.3.1",
+				"ieee754": "^1.1.13"
+			}
+		},
+		"buffer-crc32": {
+			"version": "0.2.13",
+			"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+			"integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+			"dev": true
+		},
+		"buffer-from": {
+			"version": "1.1.2",
+			"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+			"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+			"dev": true
+		},
+		"callsites": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+			"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+			"dev": true
+		},
+		"caniuse-lite": {
+			"version": "1.0.30001448",
+			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz",
+			"integrity": "sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA==",
+			"dev": true
+		},
+		"chalk": {
+			"version": "2.4.2",
+			"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+			"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+			"dev": true,
+			"requires": {
+				"ansi-styles": "^3.2.1",
+				"escape-string-regexp": "^1.0.5",
+				"supports-color": "^5.3.0"
+			}
+		},
+		"chownr": {
+			"version": "1.1.4",
+			"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+			"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+			"dev": true
+		},
+		"chrome-trace-event": {
+			"version": "1.0.3",
+			"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+			"integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+			"dev": true
+		},
+		"color-convert": {
+			"version": "1.9.3",
+			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+			"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+			"dev": true,
+			"requires": {
+				"color-name": "1.1.3"
+			}
+		},
+		"color-name": {
+			"version": "1.1.3",
+			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+			"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+			"dev": true
+		},
+		"colord": {
+			"version": "2.9.3",
+			"resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
+			"integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
+		"commander": {
+			"version": "2.20.3",
+			"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+			"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+			"dev": true
+		},
+		"concat-map": {
+			"version": "0.0.1",
+			"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+			"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+			"dev": true
+		},
+		"cosmiconfig": {
+			"version": "7.1.0",
+			"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+			"integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+			"dev": true,
+			"requires": {
+				"@types/parse-json": "^4.0.0",
+				"import-fresh": "^3.2.1",
+				"parse-json": "^5.0.0",
+				"path-type": "^4.0.0",
+				"yaml": "^1.10.0"
+			}
+		},
+		"cross-fetch": {
+			"version": "3.1.5",
+			"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
+			"integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
+			"dev": true,
+			"requires": {
+				"node-fetch": "2.6.7"
+			}
+		},
+		"cssesc": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+			"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
+		"csso": {
+			"version": "4.2.0",
+			"resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz",
+			"integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
+			"dev": true,
+			"requires": {
+				"css-tree": "^1.1.2"
+			},
+			"dependencies": {
+				"css-tree": {
+					"version": "1.1.3",
+					"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
+					"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+					"dev": true,
+					"requires": {
+						"mdn-data": "2.0.14",
+						"source-map": "^0.6.1"
+					}
+				},
+				"mdn-data": {
+					"version": "2.0.14",
+					"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+					"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+					"dev": true
+				}
+			}
+		},
+		"debug": {
+			"version": "4.3.4",
+			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+			"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+			"dev": true,
+			"requires": {
+				"ms": "2.1.2"
+			}
+		},
+		"detect-libc": {
+			"version": "1.0.3",
+			"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+			"integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+			"dev": true
+		},
+		"devtools-protocol": {
+			"version": "0.0.1082910",
+			"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1082910.tgz",
+			"integrity": "sha512-RqoZ2GmqaNxyx+99L/RemY5CkwG9D0WEfOKxekwCRXOGrDCep62ngezEJUVMq6rISYQ+085fJnWDQqGHlxVNww==",
+			"dev": true
+		},
+		"dotenv-expand": {
+			"version": "5.1.0",
+			"resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
+			"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
+			"dev": true
+		},
+		"electron-to-chromium": {
+			"version": "1.4.284",
+			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
+			"integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
+			"dev": true
+		},
+		"end-of-stream": {
+			"version": "1.4.4",
+			"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+			"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+			"dev": true,
+			"requires": {
+				"once": "^1.4.0"
+			}
+		},
+		"entities": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+			"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+			"dev": true
+		},
+		"error-ex": {
+			"version": "1.3.2",
+			"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+			"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+			"dev": true,
+			"requires": {
+				"is-arrayish": "^0.2.1"
+			}
+		},
+		"escalade": {
+			"version": "3.1.1",
+			"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+			"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+			"dev": true
+		},
+		"escape-string-regexp": {
+			"version": "1.0.5",
+			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+			"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+			"dev": true
+		},
+		"extract-zip": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+			"integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+			"dev": true,
+			"requires": {
+				"@types/yauzl": "^2.9.1",
+				"debug": "^4.1.1",
+				"get-stream": "^5.1.0",
+				"yauzl": "^2.10.0"
+			}
+		},
+		"fd-slicer": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+			"integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+			"dev": true,
+			"requires": {
+				"pend": "~1.2.0"
+			}
+		},
+		"fs-constants": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+			"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+			"dev": true
+		},
+		"fs.realpath": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+			"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+			"dev": true
+		},
+		"get-stream": {
+			"version": "5.2.0",
+			"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+			"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+			"dev": true,
+			"requires": {
+				"pump": "^3.0.0"
+			}
+		},
+		"glob": {
+			"version": "7.2.3",
+			"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+			"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+			"dev": true,
+			"requires": {
+				"fs.realpath": "^1.0.0",
+				"inflight": "^1.0.4",
+				"inherits": "2",
+				"minimatch": "^3.1.1",
+				"once": "^1.3.0",
+				"path-is-absolute": "^1.0.0"
+			}
+		},
+		"has-flag": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+			"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+			"dev": true
+		},
+		"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,
+			"requires": {
+				"agent-base": "6",
+				"debug": "4"
+			}
+		},
+		"ieee754": {
+			"version": "1.2.1",
+			"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+			"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+			"dev": true
+		},
+		"import-fresh": {
+			"version": "3.3.0",
+			"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+			"integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+			"dev": true,
+			"requires": {
+				"parent-module": "^1.0.0",
+				"resolve-from": "^4.0.0"
+			}
+		},
+		"inflight": {
+			"version": "1.0.6",
+			"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+			"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+			"dev": true,
+			"requires": {
+				"once": "^1.3.0",
+				"wrappy": "1"
+			}
+		},
+		"inherits": {
+			"version": "2.0.4",
+			"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+			"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+			"dev": true
+		},
+		"is-arrayish": {
+			"version": "0.2.1",
+			"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+			"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+			"dev": true
+		},
+		"is-extglob": {
+			"version": "2.1.1",
+			"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+			"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+			"dev": true
+		},
+		"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,
+			"requires": {
+				"is-extglob": "^2.1.1"
+			}
+		},
+		"is-json": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz",
+			"integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==",
+			"dev": true
+		},
+		"js-yaml": {
+			"version": "4.1.0",
+			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+			"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+			"dev": true,
+			"requires": {
+				"argparse": "^2.0.1"
+			}
+		},
+		"json-parse-even-better-errors": {
+			"version": "2.3.1",
+			"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+			"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+			"dev": true
+		},
+		"lightningcss": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.18.0.tgz",
+			"integrity": "sha512-uk10tNxi5fhZqU93vtYiQgx/8a9f0Kvtj5AXIm+VlOXY+t/DWDmCZWJEkZJmmALgvbS6aAW8or+Kq85eJ6TDTw==",
+			"dev": true,
+			"requires": {
+				"detect-libc": "^1.0.3",
+				"lightningcss-darwin-arm64": "1.18.0",
+				"lightningcss-darwin-x64": "1.18.0",
+				"lightningcss-linux-arm-gnueabihf": "1.18.0",
+				"lightningcss-linux-arm64-gnu": "1.18.0",
+				"lightningcss-linux-arm64-musl": "1.18.0",
+				"lightningcss-linux-x64-gnu": "1.18.0",
+				"lightningcss-linux-x64-musl": "1.18.0",
+				"lightningcss-win32-x64-msvc": "1.18.0"
+			}
+		},
+		"lightningcss-darwin-arm64": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.18.0.tgz",
+			"integrity": "sha512-OqjydwtiNPgdH1ByIjA1YzqvDG/OMR6L3LPN6wRl1729LB0y4Mik7L06kmZaTb+pvUHr+NmDd2KCwnlrQ4zO3w==",
+			"dev": true,
+			"optional": true
+		},
+		"lightningcss-darwin-x64": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.18.0.tgz",
+			"integrity": "sha512-mNiuPHj89/JHZmJMp+5H8EZSt6EL5DZRWJ31O6k3DrLLnRIQjXuXdDdN8kP7LoIkeWI5xvyD60CsReJm+YWYAw==",
+			"dev": true,
+			"optional": true
+		},
+		"lightningcss-linux-arm-gnueabihf": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.18.0.tgz",
+			"integrity": "sha512-S+25JjI6601HiAVoTDXW6SqH+E94a+FHA7WQqseyNHunOgVWKcAkNEc2LJvVxgwTq6z41sDIb9/M3Z9wa9lk4A==",
+			"dev": true,
+			"optional": true
+		},
+		"lightningcss-linux-arm64-gnu": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.18.0.tgz",
+			"integrity": "sha512-JSqh4+21dCgBecIQUet35dtE4PhhSEMyqe3y0ZNQrAJQ5kyUPSQHiw81WXnPJcOSTTpG0TyMLiC8K//+BsFGQA==",
+			"dev": true,
+			"optional": true
+		},
+		"lightningcss-linux-arm64-musl": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.18.0.tgz",
+			"integrity": "sha512-2FWHa8iUhShnZnqhn2wfIcK5adJat9hAAaX7etNsoXJymlliDIOFuBQEsba2KBAZSM4QqfQtvRdR7m8i0I7ybQ==",
+			"dev": true,
+			"optional": true
+		},
+		"lightningcss-linux-x64-gnu": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.18.0.tgz",
+			"integrity": "sha512-plCPGQJtDZHcLVKVRLnQVF2XRsIC32WvuJhQ7fJ7F6BV98b/VZX0OlX05qUaOESD9dCDHjYSfxsgcvOKgCWh7A==",
+			"dev": true,
+			"optional": true
+		},
+		"lightningcss-linux-x64-musl": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.18.0.tgz",
+			"integrity": "sha512-na+BGtVU6fpZvOHKhnlA0XHeibkT3/46nj6vLluG3kzdJYoBKU6dIl7DSOk++8jv4ybZyFJ0aOFMMSc8g2h58A==",
+			"dev": true,
+			"optional": true
+		},
+		"lightningcss-win32-x64-msvc": {
+			"version": "1.18.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.18.0.tgz",
+			"integrity": "sha512-5qeAH4RMNy2yMNEl7e5TI6upt/7xD2ZpHWH4RkT8iJ7/6POS5mjHbXWUO9Q1hhDhqkdzGa76uAdMzEouIeCyNw==",
+			"dev": true,
+			"optional": true
+		},
+		"lilconfig": {
+			"version": "2.0.6",
+			"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz",
+			"integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
+		"lines-and-columns": {
+			"version": "1.2.4",
+			"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+			"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+			"dev": true
+		},
+		"lmdb": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.2.tgz",
+			"integrity": "sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA==",
+			"dev": true,
+			"requires": {
+				"@lmdb/lmdb-darwin-arm64": "2.5.2",
+				"@lmdb/lmdb-darwin-x64": "2.5.2",
+				"@lmdb/lmdb-linux-arm": "2.5.2",
+				"@lmdb/lmdb-linux-arm64": "2.5.2",
+				"@lmdb/lmdb-linux-x64": "2.5.2",
+				"@lmdb/lmdb-win32-x64": "2.5.2",
+				"msgpackr": "^1.5.4",
+				"node-addon-api": "^4.3.0",
+				"node-gyp-build-optional-packages": "5.0.3",
+				"ordered-binary": "^1.2.4",
+				"weak-lru-cache": "^1.2.2"
+			},
+			"dependencies": {
+				"node-addon-api": {
+					"version": "4.3.0",
+					"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz",
+					"integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==",
+					"dev": true
+				}
+			}
+		},
+		"lodash.memoize": {
+			"version": "4.1.2",
+			"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+			"integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
+		"lodash.uniq": {
+			"version": "4.5.0",
+			"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+			"integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
+		"minimatch": {
+			"version": "3.1.2",
+			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+			"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+			"dev": true,
+			"requires": {
+				"brace-expansion": "^1.1.7"
+			}
+		},
+		"mkdirp-classic": {
+			"version": "0.5.3",
+			"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+			"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+			"dev": true
+		},
+		"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
+		},
+		"msgpackr": {
+			"version": "1.8.2",
+			"resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.8.2.tgz",
+			"integrity": "sha512-eLuPeok0DMwsGN23AvuVg32mYpx55tsQnxI87d8V1yZsdT8U5jrWhmCa1INO/joGAFQFfo/eTlM/BxVwLKbBOQ==",
+			"dev": true,
+			"requires": {
+				"msgpackr-extract": "^2.2.0"
+			}
+		},
+		"msgpackr-extract": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-2.2.0.tgz",
+			"integrity": "sha512-0YcvWSv7ZOGl9Od6Y5iJ3XnPww8O7WLcpYMDwX+PAA/uXLDtyw94PJv9GLQV/nnp3cWlDhMoyKZIQLrx33sWog==",
+			"dev": true,
+			"optional": true,
+			"requires": {
+				"@msgpackr-extract/msgpackr-extract-darwin-arm64": "2.2.0",
+				"@msgpackr-extract/msgpackr-extract-darwin-x64": "2.2.0",
+				"@msgpackr-extract/msgpackr-extract-linux-arm": "2.2.0",
+				"@msgpackr-extract/msgpackr-extract-linux-arm64": "2.2.0",
+				"@msgpackr-extract/msgpackr-extract-linux-x64": "2.2.0",
+				"@msgpackr-extract/msgpackr-extract-win32-x64": "2.2.0",
+				"node-gyp-build-optional-packages": "5.0.3"
+			}
+		},
+		"nanoid": {
+			"version": "3.3.4",
+			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+			"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+			"dev": true,
+			"optional": true,
+			"peer": true
+		},
+		"node-fetch": {
+			"version": "2.6.7",
+			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+			"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+			"dev": true,
+			"requires": {
+				"whatwg-url": "^5.0.0"
+			}
+		},
+		"node-gyp-build": {
+			"version": "4.6.0",
+			"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
+			"integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==",
+			"dev": true
+		},
+		"node-gyp-build-optional-packages": {
+			"version": "5.0.3",
+			"resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz",
+			"integrity": "sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==",
+			"dev": true
+		},
+		"node-releases": {
+			"version": "2.0.8",
+			"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
+			"integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==",
+			"dev": true
+		},
+		"nullthrows": {
+			"version": "1.1.1",
+			"resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
+			"integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==",
+			"dev": true
+		},
+		"once": {
+			"version": "1.4.0",
+			"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+			"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+			"dev": true,
+			"requires": {
+				"wrappy": "1"
+			}
+		},
+		"ordered-binary": {
+			"version": "1.4.0",
+			"resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.4.0.tgz",
+			"integrity": "sha512-EHQ/jk4/a9hLupIKxTfUsQRej1Yd/0QLQs3vGvIqg5ZtCYSzNhkzHoZc7Zf4e4kUlDaC3Uw8Q/1opOLNN2OKRQ==",
+			"dev": true
+		},
+		"parcel": {
+			"version": "2.8.3",
+			"resolved": "https://registry.npmjs.org/parcel/-/parcel-2.8.3.tgz",
+			"integrity": "sha512-5rMBpbNE72g6jZvkdR5gS2nyhwIXaJy8i65osOqs/+5b7zgf3eMKgjSsDrv6bhz3gzifsba6MBJiZdBckl+vnA==",
+			"dev": true,
+			"requires": {
+				"@parcel/config-default": "2.8.3",
+				"@parcel/core": "2.8.3",
+				"@parcel/diagnostic": "2.8.3",
+				"@parcel/events": "2.8.3",
+				"@parcel/fs": "2.8.3",
+				"@parcel/logger": "2.8.3",
+				"@parcel/package-manager": "2.8.3",
+				"@parcel/reporter-cli": "2.8.3",
+				"@parcel/reporter-dev-server": "2.8.3",
+				"@parcel/utils": "2.8.3",
+				"chalk": "^4.1.0",
+				"commander": "^7.0.0",
+				"get-port": "^4.2.0",
+				"v8-compile-cache": "^2.0.0"
+			},
+			"dependencies": {
+				"ansi-styles": {
+					"version": "4.3.0",
+					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+					"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+					"dev": true,
+					"requires": {
+						"color-convert": "^2.0.1"
+					}
+				},
+				"chalk": {
+					"version": "4.1.2",
+					"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+					"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+					"dev": true,
+					"requires": {
+						"ansi-styles": "^4.1.0",
+						"supports-color": "^7.1.0"
+					}
+				},
+				"color-convert": {
+					"version": "2.0.1",
+					"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+					"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+					"dev": true,
+					"requires": {
+						"color-name": "~1.1.4"
+					}
+				},
+				"color-name": {
+					"version": "1.1.4",
+					"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+					"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+					"dev": true
+				},
+				"commander": {
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+					"integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+					"dev": true
+				},
+				"get-port": {
+					"version": "4.2.0",
+					"resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz",
+					"integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==",
+					"dev": true
+				},
+				"has-flag": {
+					"version": "4.0.0",
+					"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+					"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+					"dev": true
+				},
+				"supports-color": {
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+					"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+					"dev": true,
+					"requires": {
+						"has-flag": "^4.0.0"
+					}
+				}
+			}
+		},
+		"parent-module": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+			"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+			"dev": true,
+			"requires": {
+				"callsites": "^3.0.0"
+			}
+		},
+		"parse-json": {
+			"version": "5.2.0",
+			"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+			"integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+			"dev": true,
+			"requires": {
+				"@babel/code-frame": "^7.0.0",
+				"error-ex": "^1.3.1",
+				"json-parse-even-better-errors": "^2.3.0",
+				"lines-and-columns": "^1.1.6"
+			}
+		},
+		"path-is-absolute": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+			"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+			"dev": true
+		},
+		"path-type": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+			"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+			"dev": true
+		},
+		"pend": {
+			"version": "1.2.0",
+			"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+			"integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+			"dev": true
+		},
+		"picocolors": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+			"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+			"dev": true
+		},
+		"picomatch": {
+			"version": "2.3.1",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+			"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+			"dev": true
+		},
+		"progress": {
+			"version": "2.0.3",
+			"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+			"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+			"dev": true
+		},
+		"proxy-from-env": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+			"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+			"dev": true
+		},
+		"pump": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+			"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+			"dev": true,
+			"requires": {
+				"end-of-stream": "^1.1.0",
+				"once": "^1.3.1"
+			}
+		},
+		"puppeteer": {
+			"version": "19.6.2",
+			"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.6.2.tgz",
+			"integrity": "sha512-Y5OAXXwXLfJYbl0dEFg8JKIhvCGxn+UYaBW9yra9ErmIhkVroDnYusM6oYxJCt/YIfC2pQWhvhxoZyf/E5fV6w==",
+			"dev": true,
+			"requires": {
+				"cosmiconfig": "8.0.0",
+				"https-proxy-agent": "5.0.1",
+				"progress": "2.0.3",
+				"proxy-from-env": "1.1.0",
+				"puppeteer-core": "19.6.2"
+			},
+			"dependencies": {
+				"cosmiconfig": {
+					"version": "8.0.0",
+					"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz",
+					"integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==",
+					"dev": true,
+					"requires": {
+						"import-fresh": "^3.2.1",
+						"js-yaml": "^4.1.0",
+						"parse-json": "^5.0.0",
+						"path-type": "^4.0.0"
+					}
+				}
+			}
+		},
+		"puppeteer-core": {
+			"version": "19.6.2",
+			"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.6.2.tgz",
+			"integrity": "sha512-il7uK658MNC1FlxPABvcnv1RdpDa9CaBFHzvtEsl+9Y4tbAJKZurkegpcvWeIWcRYGiuBIVo+t+ZSh3G82CCjw==",
+			"dev": true,
+			"requires": {
+				"cross-fetch": "3.1.5",
+				"debug": "4.3.4",
+				"devtools-protocol": "0.0.1082910",
+				"extract-zip": "2.0.1",
+				"https-proxy-agent": "5.0.1",
+				"proxy-from-env": "1.1.0",
+				"rimraf": "3.0.2",
+				"tar-fs": "2.1.1",
+				"unbzip2-stream": "1.4.3",
+				"ws": "8.11.0"
+			}
+		},
+		"react-error-overlay": {
+			"version": "6.0.9",
+			"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz",
+			"integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==",
+			"dev": true
+		},
+		"react-refresh": {
+			"version": "0.9.0",
+			"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz",
+			"integrity": "sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==",
+			"dev": true
+		},
+		"readable-stream": {
+			"version": "3.6.0",
+			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+			"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+			"dev": true,
+			"requires": {
+				"inherits": "^2.0.3",
+				"string_decoder": "^1.1.1",
+				"util-deprecate": "^1.0.1"
+			}
+		},
+		"regenerator-runtime": {
+			"version": "0.13.11",
+			"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+			"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
+			"dev": true
+		},
+		"resolve-from": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+			"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+			"dev": true
+		},
+		"rimraf": {
+			"version": "3.0.2",
+			"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+			"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+			"dev": true,
+			"requires": {
+				"glob": "^7.1.3"
+			}
+		},
+		"safe-buffer": {
+			"version": "5.2.1",
+			"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+			"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+			"dev": true
+		},
+		"semver": {
+			"version": "5.7.1",
+			"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+			"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+			"dev": true
+		},
+		"source-map": {
+			"version": "0.6.1",
+			"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+			"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+			"dev": true
+		},
+		"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,
+			"optional": true,
+			"peer": true
+		},
+		"srcset": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz",
+			"integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==",
+			"dev": true
+		},
+		"stable": {
+			"version": "0.1.8",
+			"resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
+			"integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
+			"dev": true
+		},
+		"string_decoder": {
+			"version": "1.3.0",
+			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+			"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+			"dev": true,
+			"requires": {
+				"safe-buffer": "~5.2.0"
+			}
+		},
+		"supports-color": {
+			"version": "5.5.0",
+			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+			"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+			"dev": true,
+			"requires": {
+				"has-flag": "^3.0.0"
+			}
+		},
+		"tar-fs": {
+			"version": "2.1.1",
+			"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+			"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+			"dev": true,
+			"requires": {
+				"chownr": "^1.1.1",
+				"mkdirp-classic": "^0.5.2",
+				"pump": "^3.0.0",
+				"tar-stream": "^2.1.4"
+			}
+		},
+		"tar-stream": {
+			"version": "2.2.0",
+			"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+			"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+			"dev": true,
+			"requires": {
+				"bl": "^4.0.3",
+				"end-of-stream": "^1.4.1",
+				"fs-constants": "^1.0.0",
+				"inherits": "^2.0.3",
+				"readable-stream": "^3.1.1"
+			}
+		},
+		"term-size": {
+			"version": "2.2.1",
+			"resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
+			"integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==",
+			"dev": true
+		},
+		"through": {
+			"version": "2.3.8",
+			"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+			"integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+			"dev": true
+		},
+		"timsort": {
+			"version": "0.3.0",
+			"resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
+			"integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==",
+			"dev": true
+		},
+		"tr46": {
+			"version": "0.0.3",
+			"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+			"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+			"dev": true
+		},
+		"tslib": {
+			"version": "2.4.1",
+			"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+			"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==",
+			"dev": true
+		},
+		"type-fest": {
+			"version": "0.20.2",
+			"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+			"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+			"dev": true
+		},
+		"unbzip2-stream": {
+			"version": "1.4.3",
+			"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
+			"integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
+			"dev": true,
+			"requires": {
+				"buffer": "^5.2.1",
+				"through": "^2.3.8"
+			}
+		},
+		"util-deprecate": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+			"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+			"dev": true
+		},
+		"utility-types": {
+			"version": "3.10.0",
+			"resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz",
+			"integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==",
+			"dev": true
+		},
+		"v8-compile-cache": {
+			"version": "2.3.0",
+			"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+			"integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+			"dev": true
+		},
+		"weak-lru-cache": {
+			"version": "1.2.2",
+			"resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz",
+			"integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==",
+			"dev": true
+		},
+		"webidl-conversions": {
+			"version": "3.0.1",
+			"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+			"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+			"dev": true
+		},
+		"whatwg-url": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+			"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+			"dev": true,
+			"requires": {
+				"tr46": "~0.0.3",
+				"webidl-conversions": "^3.0.0"
+			}
+		},
+		"wrappy": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+			"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+			"dev": true
+		},
+		"ws": {
+			"version": "8.11.0",
+			"resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
+			"integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
+			"dev": true,
+			"requires": {}
+		},
+		"xxhash-wasm": {
+			"version": "0.4.2",
+			"resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz",
+			"integrity": "sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA==",
+			"dev": true
+		},
+		"yaml": {
+			"version": "1.10.2",
+			"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+			"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+			"dev": true
+		},
+		"yauzl": {
+			"version": "2.10.0",
+			"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+			"integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+			"dev": true,
+			"requires": {
+				"buffer-crc32": "~0.2.3",
+				"fd-slicer": "~1.1.0"
+			}
+		}
+	}
+}
diff --git a/site/earlgrey-diagram/package.json b/site/earlgrey-diagram/package.json
new file mode 100644
index 0000000..e3b2f76
--- /dev/null
+++ b/site/earlgrey-diagram/package.json
@@ -0,0 +1,12 @@
+{
+	"type": "module",
+	"scripts": {
+		"start": "parcel ./src/earlgrey.html --host 0.0.0.0",
+		"build": "mkdir -p ./build && node ssr.js > ./build/earlgrey.html && parcel build ./build/earlgrey.html",
+		"deploy": "cp dist/earlgrey.html ../landing/layouts/shortcodes/earlgrey-diagram.html"
+	},
+	"devDependencies": {
+		"parcel": "^2.8.3",
+		"puppeteer": "^19.6.2"
+	}
+}
diff --git a/site/earlgrey-diagram/src/diagram-classic.css b/site/earlgrey-diagram/src/diagram-classic.css
new file mode 100644
index 0000000..e326ba0
--- /dev/null
+++ b/site/earlgrey-diagram/src/diagram-classic.css
@@ -0,0 +1,73 @@
+/* Copyright lowRISC contributors. */
+/* Licensed under the Apache License, Version 2.0, see LICENSE for details. */
+/* SPDX-License-Identifier: Apache-2.0 */
+
+.diagram.classic {
+    background: white;
+}
+
+.diagram.classic #opentitan-logo {
+    fill: #000;
+    border-radius: 0.4em;
+}
+
+.diagram.classic #chip {
+    background-color: #fff;
+}
+
+.diagram.classic #chip > .title,
+.diagram.classic #top > .title {
+    align-items: flex-start;
+    justify-content: left;
+}
+
+.diagram.classic #top {
+    background-color: #eee;
+}
+
+.diagram.classic #high-speed,
+.diagram.classic #peripheral {
+    background-color: #ccc;
+}
+
+.diagram.classic #ibex > span {
+    font-size: 1.2em;
+}
+
+.diagram.classic #ibex-shadow {
+    background-color: #a4b8db;
+}
+
+.diagram.classic #ibex-shadow-label > span {
+    text-transform: uppercase;
+    font-size: 0.85em;
+}
+
+.diagram.classic #always-on > .title {
+    color: crimson;
+    text-align: right;
+}
+
+.diagram.classic #always-on > .outline {
+    --outline-border: 1px dashed crimson;
+}
+
+.diagram.classic #high-speed > .title,
+.diagram.classic #peripheral > .title {
+    text-align: left;
+}
+
+.diagram.classic .block {
+    border-radius: 0.5em;
+}
+
+.diagram.classic #clock-speeds > .lowrisc-block {
+    border-radius: 0.5em;
+}
+
+.diagram.classic .b100mhz { background-color: #c9daf8; }
+.diagram.classic .b96mhz { background-color: #6d9eeb; }
+.diagram.classic .b48mhz { background-color: #f4cccc; }
+.diagram.classic .b24mhz { background-color: #d9ead3; }
+.diagram.classic .b200khz { background-color: #fff2cc; }
+.diagram.classic .blogic { background-color: #b7b7b7; }
diff --git a/site/earlgrey-diagram/src/diagram-modern.css b/site/earlgrey-diagram/src/diagram-modern.css
new file mode 100644
index 0000000..bd1c9e5
--- /dev/null
+++ b/site/earlgrey-diagram/src/diagram-modern.css
@@ -0,0 +1,94 @@
+/* Copyright lowRISC contributors. */
+/* Licensed under the Apache License, Version 2.0, see LICENSE for details. */
+/* SPDX-License-Identifier: Apache-2.0 */
+
+.diagram.modern {
+    background: white;
+}
+
+.diagram.modern .lowrisc-crossbar {
+    stroke: rgba(0,0,0,0.1);
+    stroke-width: 2px;
+    stroke-linecap: round;
+}
+
+.diagram.modern .lowrisc-arrow {
+    fill: #7b7979;
+    stroke: none;
+}
+
+.diagram.modern .lowrisc-arrow.thin {
+    --thin-arrow-width: 2px;
+}
+
+.diagram.modern #chip {
+    border-color: transparent;
+    color: #1c1230;
+}
+
+.diagram.modern #opentitan-logo {
+    fill: #402d68;
+    border-radius: 0.4em;
+}
+
+.diagram.modern #top {
+    background-color: #f8f8f8;
+}
+
+.diagram.modern .title {
+    text-transform: uppercase;
+}
+
+.diagram.modern .domain {
+    border-color: transparent;
+}
+
+.diagram.modern #high-speed,
+.diagram.modern #peripheral {
+    background-color: #e9e9e9;
+}
+
+.diagram.modern #ibex > span {
+    font-size: 1.2em;
+}
+
+.diagram.modern #ibex-shadow {
+    background-color: #35b2c0
+}
+
+.diagram.modern #ibex-shadow-label > span {
+    text-transform: uppercase;
+    color: white;
+    font-size: 0.85em;
+}
+
+.diagram.modern #always-on > .title {
+    color: crimson;
+    text-align: right;
+}
+
+.diagram.modern #always-on > .outline {
+    --outline-border: 2px dashed crimson;
+    --outline-border-radius: 0.5em;
+}
+
+.diagram.modern .block {
+    border-color: transparent;
+    border-radius: 0.5em;
+}
+
+.diagram.modern .subdomain-badge {
+    border-color: transparent;
+    border-radius: 0.25em;
+}
+
+.diagram.modern #clock-speeds > .lowrisc-block {
+    border-radius: 0.5em;
+}
+
+.diagram.modern .b100mhz { background-color: #8bd6df; }
+.diagram.modern .b96mhz { background-color: #6395ae; color: #eee; }
+.diagram.modern .b48mhz { background-color: #cfbde4; }
+.diagram.modern .b24mhz { background-color: #967ebf; color: #eee; }
+.diagram.modern .b200khz { background-color: #f9ad38; }
+.diagram.modern .blogic { background-color: #d4d4d2; }
diff --git a/site/earlgrey-diagram/src/diagram-tiny.css b/site/earlgrey-diagram/src/diagram-tiny.css
new file mode 100644
index 0000000..639745b
--- /dev/null
+++ b/site/earlgrey-diagram/src/diagram-tiny.css
@@ -0,0 +1,39 @@
+/* Copyright lowRISC contributors. */
+/* Licensed under the Apache License, Version 2.0, see LICENSE for details. */
+/* SPDX-License-Identifier: Apache-2.0 */
+
+.diagram.tiny {
+    background: white;
+    font-size: 0.15em;
+}
+
+.diagram.tiny * {
+    color: transparent !important;
+    pointer-events: none !important;
+    user-select: none;
+}
+
+.diagram.tiny #opentitan-logo {
+    background: #aaa;
+}
+
+.diagram.tiny #opentitan-logo > svg {
+    display: none;
+}
+
+.diagram.tiny .lowrisc-arrow.thin {
+    display: none;
+}
+
+.diagram.tiny .title {
+    background: #aaa;
+    height: 1em !important;
+}
+
+.diagram.tiny #always-on > .outline {
+    --outline-border: 1px dashed crimson;
+}
+
+.diagram.tiny .block .subdomain-badge {
+    display: none;
+}
diff --git a/site/earlgrey-diagram/src/diagram.css b/site/earlgrey-diagram/src/diagram.css
new file mode 100644
index 0000000..fe7fa9b
--- /dev/null
+++ b/site/earlgrey-diagram/src/diagram.css
@@ -0,0 +1,174 @@
+/* Copyright lowRISC contributors. */
+/* Licensed under the Apache License, Version 2.0, see LICENSE for details. */
+/* SPDX-License-Identifier: Apache-2.0 */
+
+:where(.diagram) {
+    position: relative !important;
+    top: 0 !important;
+    left: 0 !important;
+    font-size: 0.75em;
+    font-family: sans-serif;
+    line-height: normal;
+    --scale: 1.1;
+}
+
+:where(.diagram *) {
+    color: inherit;
+}
+
+:where(.lowrisc-block) {
+    position: absolute;
+    overflow: visible;
+    box-sizing: border-box;
+    z-index: auto;
+    --block-top: 0;
+    --block-left: 0;
+    --block-width: initial;
+    --block-height: initial;
+    --offset-top: 0;
+    --offset-left: 0;
+    top: calc(1em * ( var(--block-top) + var(--offset-top) ) * var(--scale, 1) - 1px);
+    left: calc(1em * ( var(--block-left) + var(--offset-left) ) * var(--scale, 1) - 1px);
+    width: calc(1em * var(--block-width, "auto") * var(--scale, 1));
+    height: calc(1em * var(--block-height, "auto") * var(--scale, 1));
+    display: grid;
+    grid-template-columns: 1fr;
+    grid-template-rows: 1fr;
+}
+
+:where(.block) {
+    background: white;
+}
+
+:where(.lowrisc-block:not(.lowrisc-arrow)) {
+    display: grid;
+    justify-content: center;
+    align-items: center;
+    text-align: center;
+    border: 1px solid transparent;
+}
+
+:where(.lowrisc-crossbar) {
+    stroke: black;
+    stroke-width: 1px;
+}
+
+:where(.crossbar-background) {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+}
+
+:where(.crossbar-background > svg) {
+    width: 100%;
+    height: 100%;
+}
+
+:where(.lowrisc-arrow) {
+    text-align: left;
+    fill: white;
+    stroke: black;
+    stroke-width: 1px;
+    border: none;
+}
+
+:where(.lowrisc-arrow > svg) {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+}
+
+:where(.lowrisc-arrow.thin) {
+    fill: black;
+    stroke: none;
+    --thin-arrow-width: 1px;
+}
+
+:where(.lowrisc-arrow.thin:not([horizontal])) {
+    width: var(--thin-arrow-width) !important
+}
+
+:where(.lowrisc-arrow.thin[horizontal]) {
+    height: var(--thin-arrow-width) !important
+}
+
+:where(.domain) {
+    border: 1px solid black;
+}
+
+:where(.outline) {
+    pointer-events: none;
+    background: transparent;
+    --outline-border: 1px dashed black;
+    --outline-border-radius: 0;
+    border: none;
+}
+
+:where(.outline.top) {
+    border-top: var(--outline-border);
+}
+
+:where(.outline.bottom) {
+    border-bottom: var(--outline-border);
+}
+
+:where(.outline.left) {
+    border-left: var(--outline-border);
+}
+
+:where(.outline.right) {
+    border-right: var(--outline-border);
+}
+
+:where(.outline.top.left) {
+    border-top-left-radius: var(--outline-border-radius);
+}
+
+:where(.outline.top.right) {
+    border-top-right-radius: var(--outline-border-radius);
+}
+
+:where(.outline.bottom.left) {
+    border-bottom-left-radius: var(--outline-border-radius);
+}
+
+:where(.outline.bottom.right) {
+    border-bottom-right-radius: var(--outline-border-radius);
+}
+
+:where(.outline > *:not(.outline)) {
+    pointer-events: auto;
+}
+
+:where(.block) {
+    border: 1px solid black;
+    --block-width: 6;
+    --block-height: 3;
+}
+
+:where(.lane) {
+    --block-width: 6;
+}
+
+:where(.subdomain-badge) {
+    border: 1px solid black;
+    --block-width: 0.75;
+    --block-height: 0.75;
+}
+
+:where(.title) {
+    font-weight: bold;
+}
+
+:where(.clickable) {
+    cursor: pointer;
+}
+
+:where(.clickable:hover),
+:where(.clickable:active) {
+    background-image: linear-gradient(rgba(0,0,0,0.15), rgba(0,0,0,0.15));
+}
diff --git a/site/earlgrey-diagram/src/earlgrey.html b/site/earlgrey-diagram/src/earlgrey.html
new file mode 100644
index 0000000..bd3d5bb
--- /dev/null
+++ b/site/earlgrey-diagram/src/earlgrey.html
@@ -0,0 +1,285 @@
+<style>
+  @import "../src/diagram.css";
+  /* @import "../src/diagram-classic.css"; */
+  @import "../src/diagram-modern.css";
+  /* @import "../src/diagram-tiny.css"; */
+  @import "../src/tooltips.css";
+  /* @import "../src/tooltips-classic.css"; */
+  @import "../src/tooltips-modern.css";
+</style>
+<script type="module" id="custom-elements">
+  import "../src/earlgrey.js";
+</script>
+
+<lowrisc-block id="opentitan-block-diagram" class="diagram modern" pos="0 0 63 43">
+  <lowrisc-block id="chip" class="domain" pos="0 0 63 43">
+    <lowrisc-block class="title" pos="1 1">chip_earlgrey_asic</lowrisc-block>
+
+    <lowrisc-block id="opentitan-logo" pos="60 0.5 2 2">
+      <svg width="100%" height="100%" viewBox="-61.201072 21.594324 52.519791 52.519791" xmlns="http://www.w3.org/2000/svg">
+        <path stoke="none" d="m -9.6337811,51.624532 h -6.5616669 v -1.852083 h -6.561666 c -0.529167,0 -0.926042,0.396875 -0.926042,0.926041 v 8.41375 h -8.466666 c -0.502709,0 -0.926042,0.423334 -0.926042,0.9525 v 6.561667 h 1.878542 v 6.561667 c 0,0.529166 0.423333,0.926041 0.952499,0.926041 h 5.609167 c 0.529167,0 0.9525,-0.396875 0.9525,-0.926041 v -6.561667 h 7.487708 V 59.11224 h 6.5616669 c 0.5291667,0 0.9525,-0.396875 0.9525,-0.926041 v -5.635625 c 0,-0.529167 -0.4233333,-0.926042 -0.9525,-0.926042 z M -37.758989,59.11224 h -8.440208 v -8.41375 c 0,-0.529166 -0.423334,-0.952499 -0.926042,-0.952499 h -6.561667 v 1.878541 h -6.561666 c -0.529167,0 -0.9525,0.423333 -0.9525,0.926042 v 5.635625 c 0,0.529166 0.423333,0.926041 0.9525,0.926041 h 6.561666 v 7.514167 h 7.46125 v 6.561667 c 0,0.529166 0.423334,0.926041 0.9525,0.926041 h 5.609167 c 0.529167,0 0.9525,-0.396875 0.9525,-0.926041 v -6.561667 h 1.852083 V 60.06474 c 0,-0.529166 -0.396875,-0.9525 -0.926041,-0.9525 z M -60.248572,44.136824 h 6.561666 v 1.852083 h 6.561667 c 0.529167,0 0.926042,-0.396875 0.926042,-0.926041 v -8.440209 h 8.466666 c 0.502709,0 0.926042,-0.423333 0.926042,-0.926041 v -6.561667 h -1.878542 v -6.588125 c 0,-0.529166 -0.423333,-0.9525 -0.9525,-0.9525 h -5.609166 c -0.529167,0 -0.9525,0.423334 -0.9525,0.9525 v 6.561667 h -7.487709 v 7.487708 h -6.561666 c -0.529167,0 -0.9525,0.423333 -0.9525,0.926042 v 5.662083 c 0,0.529167 0.423333,0.9525 0.9525,0.9525 z m 28.125208,-7.514167 h 8.440208 v 8.440209 c 0,0.529166 0.423333,0.926041 0.926042,0.926041 h 6.561666 v -1.852083 h 6.5616669 c 0.5291667,0 0.9525,-0.423333 0.9525,-0.9525 v -5.635625 c 0,-0.529167 -0.4233333,-0.926042 -0.9525,-0.926042 h -6.5616669 v -7.487708 h -7.487708 v -6.588125 c 0,-0.529166 -0.423333,-0.9525 -0.9525,-0.9525 h -5.609167 c -0.529166,0 -0.952499,0.423334 -0.952499,0.9525 v 6.561667 h -1.852084 v 6.561666 c 0,0.529167 0.396875,0.926042 0.926042,0.926042 z m -10.31875,18.758958 h 15.001875 V 40.379741 h -15.001875 v 14.975416 z" />
+      </svg>
+
+    </lowrisc-block>
+
+    <lowrisc-block id="top" class="domain" pos="1 3 61 30">
+      <lowrisc-block class="title" pos="1 0.5">top_earlgrey</lowrisc-block>
+
+      <lowrisc-block id="high-speed" class="domain" pos="1 2 29 27">
+        <lowrisc-block class="title" pos="1 0.5">High Speed Domain</lowrisc-block>
+
+        <lowrisc-block class="lane" pos="1 2">
+          <lowrisc-arrow pos="6.5 7 0.5 1" center="x"></lowrisc-arrow>
+          <lowrisc-block id="ibex" class="block b100mhz" pos="0 0 12 5.5">
+            <span><b>Ibex Core</b><br>(RV32IMCB)<br></span>
+          </lowrisc-block>
+          <lowrisc-block id="ibex-shadow" class="block" pos="1 1.5 12 5.5">
+            <lowrisc-block id="ibex-shadow-label" pos="0 4 12 1.5">
+              <span>Dual Lockstep</span>
+            </lowrisc-block>
+          </lowrisc-block>
+        </lowrisc-block>
+
+        <lowrisc-block class="lane" pos="15 2">
+          <lowrisc-arrow pos="3 3 0.5 5" center="x"></lowrisc-arrow>
+          <lowrisc-block id="interrupt-controller" class="block b100mhz" pos="0 0">
+            Interrupt<br>Controller
+          </lowrisc-block>
+          <lowrisc-block id="debug-module" class="block b100mhz" pos="0 4">
+            Debug<br>Module
+          </lowrisc-block>
+        </lowrisc-block>
+
+        <lowrisc-block class="lane" pos="22 2">
+          <lowrisc-arrow pos="3 3 0.5 5" center="x"></lowrisc-arrow>
+          <lowrisc-block id="rom" class="block b100mhz" pos="0 0">
+            ROM
+          </lowrisc-block>
+          <lowrisc-block id="main-sram" class="block b100mhz" pos="0 4">
+            Main<br>SRAM
+          </lowrisc-block>
+        </lowrisc-block>
+
+        <lowrisc-crossbar id="high-speed-crossbar" class="block b100mhz" pos="1 10 27 4">
+          TL-UL<br>Crossbar
+        </lowrisc-crossbar>
+
+        <lowrisc-block class="lane" pos="1 15">
+          <lowrisc-arrow pos="3 -1 0.5 9" center="x"></lowrisc-arrow>
+          <lowrisc-block id="key-manager" class="block b100mhz" pos="0 0">
+            Key<br>Manager
+          </lowrisc-block>
+          <lowrisc-block id="otbn" class="block b100mhz" pos="0 4">
+            OTBN
+          </lowrisc-block>
+          <lowrisc-block id="aes" class="block b100mhz" pos="0 8">
+            AES
+          </lowrisc-block>
+        </lowrisc-block>
+
+        <lowrisc-block class="lane" pos="8 15">
+          <lowrisc-arrow pos="3 -1 0.5 9" center="x"></lowrisc-arrow>
+          <lowrisc-block id="kmac" class="block b100mhz" pos="0 0">
+            KMAC
+          </lowrisc-block>
+          <lowrisc-block id="hmac" class="block b100mhz" pos="0 4">
+            HMAC
+          </lowrisc-block>
+          <lowrisc-block id="flash" class="block b100mhz" pos="0 8">
+            FLASH
+          </lowrisc-block>
+        </lowrisc-block>
+
+        <lowrisc-block class="lane" pos="15 15">
+          <lowrisc-arrow pos="3 -1 0.5 9" center="x"></lowrisc-arrow>
+          <lowrisc-block id="edn" class="block b100mhz" pos="0 0">
+            EDN
+          </lowrisc-block>
+          <lowrisc-block id="csrng" class="block b100mhz" pos="0 4">
+            CSRNG
+          </lowrisc-block>
+          <lowrisc-block id="entropy-source" class="block b100mhz" pos="0 8">
+            Entropy<br>Source
+          </lowrisc-block>
+        </lowrisc-block>
+
+        <lowrisc-block class="lane" pos="22 15">
+          <lowrisc-arrow pos="3 -1 0.5 9" center="x"></lowrisc-arrow>
+          <lowrisc-block id="spi-host-0" class="block b96mhz" pos="0 0">
+            SPI<br>Host 0
+          </lowrisc-block>
+          <lowrisc-block id="spi-host-1" class="block b48mhz" pos="0 4">
+            SPI<br>Host 1
+          </lowrisc-block>
+          <lowrisc-block id="usb" class="block b48mhz" pos="0 8">
+            <lowrisc-block class="subdomain-badge b200khz" pos="0.5 0.5"></lowrisc-block>
+            USB
+          </lowrisc-block>
+        </lowrisc-block>
+
+      </lowrisc-block>
+
+      <lowrisc-block id="peripheral" class="domain" pos="31 2 29 27">
+        <lowrisc-block class="title" pos="1 0.5" >Peripheral Domain</lowrisc-block>
+
+        <lowrisc-crossbar id="peripheral-crossbar" class="block b24mhz" pos="1 2 5 24">
+          TL-UL<br>Crossbar
+        </lowrisc-crossbar>
+
+        <lowrisc-block class="lane" pos="7.5 2">
+          <lowrisc-arrow pos="-1.5 1.5 15.5 0.5" horizontal center="y"></lowrisc-arrow>
+          <lowrisc-block id="otp-fuse-controller" class="block b24mhz" pos="0 0 6 3">
+            OTP (Fuse)<br>Controller
+          </lowrisc-block>
+          <lowrisc-block id="life-cycle" class="block b24mhz" pos="7 0 6 3">
+            Life<br>Cycle
+          </lowrisc-block>
+          <lowrisc-block id="alert-handler" class="block b24mhz" pos="14 0 6 3">
+            Alert<br>Handler
+          </lowrisc-block>
+        </lowrisc-block>
+
+        <lowrisc-block class="lane" pos="7.5 6">
+          <lowrisc-arrow pos="-1.5 1.5 15.5 0.5" horizontal center="y"></lowrisc-arrow>
+          <lowrisc-block id="uart" class="block b24mhz" pos="0 0 6 3">
+            4 &times; UART
+          </lowrisc-block>
+          <lowrisc-block id="timers" class="block b24mhz" pos="7 0 6 3">
+            Timers
+          </lowrisc-block>
+          <lowrisc-block id="gpio" class="block b24mhz" pos="14 0 6 3">
+            GPIO
+          </lowrisc-block>
+        </lowrisc-block>
+
+        <lowrisc-block class="lane" pos="7.5 10">
+          <lowrisc-arrow pos="-1.5 1.5 15.5 0.5" horizontal center="y"></lowrisc-arrow>
+          <lowrisc-block id="i2c" class="block b24mhz" pos="0 0 6 3">
+            3 &times; I²C
+          </lowrisc-block>
+          <lowrisc-block id="spi-device" class="block b24mhz" pos="7 0 6 3">
+            <lowrisc-block class="subdomain-badge b100mhz" pos="0.5 0.5"></lowrisc-block>
+            SPI<br>Device
+          </lowrisc-block>
+          <lowrisc-block id="pattern-generators" class="block b24mhz" pos="14 0 6 3">
+            Pattern<br>Generators
+          </lowrisc-block>
+        </lowrisc-block>
+
+        <lowrisc-block id="always-on" pos="-31 13">
+          <lowrisc-block class="title" pos="38.5 0.5 20">
+            Always-on Domain
+          </lowrisc-block>
+
+          <lowrisc-block class="outline top left bottom" pos="0 16 37.75 5">
+          </lowrisc-block>
+
+          <lowrisc-block class="outline bottom" pos="37.75 16 21.5 5">
+          </lowrisc-block>
+
+          <lowrisc-block class="outline top right bottom" pos="59.25 16 1.75 5">
+          </lowrisc-block>
+
+          <lowrisc-block class="outline top left right" pos="37.75 0.3 21.5 15.8">
+          </lowrisc-block>
+        </lowrisc-block>
+
+        <lowrisc-block class="lane" pos="7.5 15">
+          <lowrisc-arrow pos="-1.5 1.5 15.5 0.5" horizontal center="y"></lowrisc-arrow>
+          <lowrisc-block id="pwm" class="block b24mhz" pos="0 0 6 3">
+            <lowrisc-block class="subdomain-badge b200khz" pos="0.5 0.5"></lowrisc-block>
+            PWM
+          </lowrisc-block>
+          <lowrisc-block id="retention-sram" class="block b24mhz" pos="7 0 6 3">
+            Retention<br>SRAM
+          </lowrisc-block>
+          <lowrisc-block id="power-manager" class="block b24mhz" pos="14 0 6 3">
+            <lowrisc-block class="subdomain-badge b200khz" pos="0.5 0.5"></lowrisc-block>
+            Power<br>Manager
+          </lowrisc-block>
+          <lowrisc-arrow class="thin" pos="18 3 0 12" head="4 4" center="x"></lowrisc-arrow>
+        </lowrisc-block>
+
+        <lowrisc-block class="lane" pos="7.5 19">
+          <lowrisc-arrow pos="-1.5 1.5 15.5 0.5" horizontal center="y"></lowrisc-arrow>
+          <lowrisc-block id="sysrst-controller" class="block b24mhz" pos="0 0 6 3">
+            <lowrisc-block class="subdomain-badge b200khz" pos="0.5 0.5"></lowrisc-block>
+            Sysrst<br>Controller
+          </lowrisc-block>
+          <lowrisc-block id="aon-timers" class="block b24mhz" pos="7 0 6 3">
+            <lowrisc-block class="subdomain-badge b200khz" pos="0.5 0.5"></lowrisc-block>
+            AON<br>Timers
+          </lowrisc-block>
+          <lowrisc-block id="clkrst-managers" class="block b24mhz" pos="14 0 6 3">
+            <lowrisc-block class="subdomain-badge b200khz" pos="0.5 0.5"></lowrisc-block>
+            Clk/Rst<br>Managers
+          </lowrisc-block>
+          <lowrisc-arrow class="thin" pos="17 3 0 8" head="4 4" center="x"></lowrisc-arrow>
+        </lowrisc-block>
+
+        <lowrisc-block class="lane" pos="7.5 23">
+          <lowrisc-arrow pos="-1.5 1.5 15.5 0.5" horizontal center="y"></lowrisc-arrow>
+          <lowrisc-block id="pinmux-padctrl" class="block b24mhz" pos="0 0 6 3">
+            Pinmux /<br>Padctrl
+          </lowrisc-block>
+          <lowrisc-block id="adc-controller" class="block b24mhz" pos="7 0 6 3">
+            <lowrisc-block class="subdomain-badge b200khz" pos="0.5 0.5"></lowrisc-block>
+            ADC<br>Controller
+          </lowrisc-block>
+          <lowrisc-block id="sensor-control" class="block b24mhz" pos="14 0 6 3">
+            <lowrisc-block class="subdomain-badge b200khz" pos="0.5 0.5"></lowrisc-block>
+            Sensor<br>Control
+          </lowrisc-block>
+          <lowrisc-arrow class="thin" pos="16 3 0 4" head="4 4" center="x"></lowrisc-arrow>
+          <lowrisc-arrow class="thin" pos="10 3 0 4" head="4 4" center="x"></lowrisc-arrow>
+          <lowrisc-arrow class="thin" pos="3 3 0 4" head="4 4" center="x"></lowrisc-arrow>
+        </lowrisc-block>
+
+      </lowrisc-block>
+
+      <lowrisc-arrow pos="29 14 3 0.5" horizontal center="y"></lowrisc-arrow>
+    </lowrisc-block>
+
+    <lowrisc-block id="padding" class="block blogic" pos="2 35 43">
+      Padding (only wire and pad instances)
+    </lowrisc-block>
+
+    <lowrisc-arrow class="thin" pos="45 36.5 2" head="4 4" horizontal center="y"></lowrisc-arrow>
+
+    <lowrisc-block id="analog-sensor-top" class="block b24mhz" pos="47 35 14">
+      <lowrisc-block class="subdomain-badge b48mhz" pos="0.5 0.5"></lowrisc-block>
+      <lowrisc-block class="subdomain-badge b200khz" pos="0.5 1.75"></lowrisc-block>
+      Analog Sensor Top
+    </lowrisc-block>
+
+    <lowrisc-block id="clock-speeds" pos="1 40">
+      <lowrisc-block class="subdomain-badge b100mhz" pos="0 0 6 2">
+        ~100 MHz
+      </lowrisc-block>
+
+      <lowrisc-block class="subdomain-badge b96mhz" pos="7 0 6 2">
+        96 MHz
+      </lowrisc-block>
+
+      <lowrisc-block class="subdomain-badge b48mhz" pos="14 0 6 2">
+        48 MHz
+      </lowrisc-block>
+
+      <lowrisc-block class="subdomain-badge b24mhz" pos="21 0 6 2">
+        24 MHz
+      </lowrisc-block>
+
+      <lowrisc-block class="subdomain-badge b200khz" pos="28 0 6 2">
+        200 kHz
+      </lowrisc-block>
+
+      <lowrisc-block class="subdomain-badge blogic" pos="35 0 6 2">
+        Logic Only
+      </lowrisc-block>
+    </lowrisc-block>
+  </lowrisc-block>
+</lowrisc-block>
+
+<script type="module" id="hydrate">
+  import "../src/hydrate.js";
+</script>
diff --git a/site/earlgrey-diagram/src/earlgrey.js b/site/earlgrey-diagram/src/earlgrey.js
new file mode 100644
index 0000000..58c5c36
--- /dev/null
+++ b/site/earlgrey-diagram/src/earlgrey.js
@@ -0,0 +1,149 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+
+class LowriscBlock extends HTMLElement {
+  static observedAttributes = ["pos", "center"];
+
+  #observer = null;
+
+  constructor() {
+    super();
+    this.#observer = new ResizeObserver(() => this.update());
+  }
+
+  attributeChangedCallback() {
+    this.update();
+  }
+
+  connectedCallback() {
+    this.update();
+    this.#observer.observe(this);
+  }
+
+  disconnectedCallback() {
+    this.#observer.disconnect();
+  }
+
+  setCssVariable(name, value) {
+    this.style[value ? "setProperty" : "removeProperty"](name, value);
+  }
+
+  update() {
+    this.classList.add("lowrisc-block");
+
+    const [x, y, w, h] = (this.getAttribute("pos") || "0").split(/\s+/);
+
+    this.setCssVariable("--block-top", y);
+    this.setCssVariable("--block-left", x);
+    this.setCssVariable("--block-width", w);
+    this.setCssVariable("--block-height", h);
+
+    const center = this.getAttribute("center") || "";
+    this.setCssVariable("--offset-top", center.includes("y") && h ? - h / 2 : 0);
+    this.setCssVariable("--offset-left", center.includes("x") && w ? - w / 2 : 0);
+  }
+}
+
+customElements.define('lowrisc-block', LowriscBlock);
+
+class LowriscCrossbar extends LowriscBlock {
+  static observedAttributes = [...super.observedAttributes, "length"];
+
+  #container = null;
+
+  connectedCallback() {
+    this.#container = this.#container || document.createElement("div");
+    this.#container.classList.add("crossbar-background");
+    this.appendChild(this.#container);
+
+    super.connectedCallback();
+  }
+
+  update() {
+    super.update();
+    this.classList.add("lowrisc-crossbar");
+
+    if (!this.#container) return;
+
+    const [s, e] = (this.getAttribute("length") || "").split(/\s+/);
+    const width = this.offsetWidth;
+    const height = this.offsetHeight;
+
+    const start = s ? parseFloat(s) : 0.05;
+    const end = e ? parseFloat(e) : 0.35;
+
+    this.#container.innerHTML = `
+      <svg xmlns="http://www.w3.org/2000/svg"
+        overflow="visible"
+        shape-rendering="geometricPrecision"
+        preserveAspectRatio="none"
+        viewBox="0 0 ${width} ${height}"
+      >
+        <path vector-effect="non-scaling-stroke" d="
+          M${width * start} ${height * start}
+          L${width * end} ${height * end}
+        " />
+        <path vector-effect="non-scaling-stroke" d="
+          M${width * (1 - start)} ${height * start}
+          L${width * (1 - end)} ${height * end}
+        " />
+        <path vector-effect="non-scaling-stroke" d="
+          M${width * (1 - start)} ${height * (1 - start)}
+          L${width * (1 - end)} ${height * (1 - end)}
+        " />
+        <path vector-effect="non-scaling-stroke" d="
+          M${width * start} ${height * (1 - start)}
+          L${width * end} ${height * (1 - end)}
+        " />
+      </svg>
+    `;
+  };
+}
+
+customElements.define('lowrisc-crossbar', LowriscCrossbar);
+
+class LowriscArrow extends LowriscBlock {
+  static observedAttributes = [...super.observedAttributes, "horizontal", "head"];
+
+  update() {
+    super.update();
+    this.classList.add("lowrisc-arrow");
+
+    const horizontal = this.hasAttribute("horizontal");
+    const [overhang_ratio = 1, height_ratio = 0.8] = (this.getAttribute("head") || "1 0.6").split(/\s+/);
+
+    const width = horizontal ? this.offsetHeight : this.offsetWidth;
+    const length = horizontal ? this.offsetWidth : this.offsetHeight;
+    const overhang = width * overhang_ratio / 2;
+    const height = width * height_ratio;
+
+    const L = horizontal ? (x, y) => `${y} ${x}` : (x, y) => `${x} ${y}`;
+
+    this.innerHTML = `
+      <svg xmlns="http://www.w3.org/2000/svg"
+        overflow="visible"
+        shape-rendering="geometricPrecision"
+        preserveAspectRatio="none"
+        viewBox="0 0 ${L(width, length)}"
+      >
+        <path vector-effect="non-scaling-stroke" d="
+          M${L(0, height)}
+          l${L(-overhang, 0)}
+          l${L(overhang + width / 2, -height)}
+          l${L(overhang + width / 2, height)}
+          l${L(-overhang, 0)}
+          l${L(0, length - 2 * height)}
+          l${L(overhang, 0)}
+          l${L(-overhang - width / 2, height)}
+          l${L(-overhang - width / 2, -height)}
+          l${L(overhang, 0)}
+          Z
+        "
+        />
+      </svg>
+    `;
+  };
+}
+
+customElements.define('lowrisc-arrow', LowriscArrow);
diff --git a/site/earlgrey-diagram/src/hydrate.js b/site/earlgrey-diagram/src/hydrate.js
new file mode 100644
index 0000000..e833836
--- /dev/null
+++ b/site/earlgrey-diagram/src/hydrate.js
@@ -0,0 +1,153 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+
+import metadata from "./metadata.js";
+import metrics from "./metrics.js";
+
+const hostname = "<<<HOSTNAME>>>";
+
+const BADGE_MAP = {
+    "D0": "alert",
+    "D1": "warn",
+    "D2": "prettygood",
+    "D2S": "prettygood",
+    "D3": "good",
+    "V0": "alert",
+    "V1": "warn",
+    "V2": "prettygood",
+    "V2S": "prettygood",
+    "V3": "good",
+}
+
+async function parseMetrics(id) {
+    if (!metrics[id]) return null;
+    return metrics[id].revisions.slice(-1)[0];
+}
+
+async function parseReport(path) {
+    if (!path || path === "TODO") return null;
+
+    try {
+        const response = await fetch(`https://reports.opentitan.org${path}/latest/report.json`, {
+            mode: "no-cors"
+        });
+        if (response.status < 200 || response.status >= 300) return null;
+        const report = await response.json();
+
+        console.log(report);
+
+        const total = report.results.testpoints
+            .flatMap(t => t.tests)
+            .concat(report.results.unmapped_tests)
+            .filter((t, i, a) => a.findIndex(o => o.name === t.name) === i)
+            .map(t => t.total_runs)
+            .reduce((acc, x) => acc + x, 0);
+
+        const passing = report.results.testpoints
+            .flatMap(t => t.tests)
+            .concat(report.results.unmapped_tests)
+            .filter((t, i, a) => a.findIndex(o => o.name === t.name) === i)
+            .map(t => t.passing_runs)
+            .reduce((acc, x) => acc + x, 0);
+
+        return {
+            tests: { passing, total }
+        };
+    } catch (e) {
+        console.error(`no report for ${path}`, e);
+        return null;
+    }
+}
+
+async function hydrate() {
+    await Promise.all(Object.entries(metadata).map(async ([key, data], tabIndex) => {
+        const element = document.getElementById(key);
+
+        const focusable = document.createElement("div");
+        element.appendChild(focusable);
+        focusable.classList.add("block-focus");
+
+        let status = await parseMetrics(data.metrics);
+        let report = await parseReport(data.report);
+
+        if (data.report && data.report != "TODO" && !report) {
+            console.warn(`No report for ${key} (${data.report})`, data);
+        }
+
+        const tooltip = document.createElement("div");
+        tooltip.classList.add("diagram-tooltip");
+
+        const tooltip_box = document.createElement("div");
+        tooltip_box.classList.add("tooltip-box");
+        tooltip_box.innerHTML = `
+            <span class="tooltip-title">
+                ${data.title.toUpperCase()}${status ? ` v${status.version}` : ""}
+            </span>
+        `;
+
+        tooltip.appendChild(tooltip_box);
+
+        element.appendChild(tooltip);
+        element.classList.add("has-tooltip");
+        focusable.tabIndex = tabIndex + 1;
+
+        if (status) {
+            tooltip_box.innerHTML += `
+                <span class="tooltip-value tooltip-badge tooltip-badge-${BADGE_MAP[status.design_stage] || "none"}">
+                    ${status.design_stage}
+                </span>
+                <span class="tooltip-label">
+                    design
+                </span>
+                <span class="tooltip-value tooltip-badge tooltip-badge-${BADGE_MAP[status.verification_stage] || "none"}">
+                    ${status.verification_stage}
+                </span>
+                <span class="tooltip-label">
+                    verification
+                </span>
+            `;
+        }
+
+        if (report && status) {
+            tooltip_box.innerHTML += `
+                <span class="tooltip-divider"></span>
+            `;
+        }
+
+        if (report) {
+            const rate = Math.floor(20 * report.tests.passing / report.tests.total) * 5;
+            tooltip_box.classList.add("has-report");
+            tooltip_box.innerHTML += `
+                <span class="tooltip-value">
+                    ${report.tests.total}
+                </span>
+                <span class="tooltip-label">
+                    tests
+                </span>
+                <span class="tooltip-value tooltip-report-tests rate-${rate}">
+                    ${Math.floor(100 * report.tests.passing / report.tests.total)}%
+                </span>
+                <span class="tooltip-label">
+                    passing
+                </span>
+            `;
+        }
+
+        if (data.href) {
+            const link = document.createElement("a");
+            link.href = hostname + data.href;
+
+            link.style.display = "contents";
+            element.parentElement.appendChild(link);
+            link.appendChild(element);
+        }
+    }));
+
+    document.getElementById("hydrate").remove();
+    document.getElementById("custom-elements").remove();
+
+    return true;
+}
+
+window.hydrated = hydrate();
diff --git a/site/earlgrey-diagram/src/metadata.js b/site/earlgrey-diagram/src/metadata.js
new file mode 100644
index 0000000..b3039bf
--- /dev/null
+++ b/site/earlgrey-diagram/src/metadata.js
@@ -0,0 +1,243 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+
+export default {
+    "opentitan-logo": {
+        title: "opentitan",
+        href: "/",
+    },
+    "high-speed-crossbar": {
+        title: "high-speed-crossbar",
+        metrics: "tlul",
+        href: "/hw/ip/tlul#top",
+        report: "/hw/top_earlgrey/ip/xbar_main/dv/autogen",
+    },
+    "ibex": {
+        title: "ibex",
+        metrics: "rv_core_ibex",
+        href: "/hw/ip/rv_core_ibex#top",
+        report: null,
+    },
+    "interrupt-controller": {
+        title: "interrupt-controller",
+        metrics: "rv_plic",
+        href: "/hw/top_earlgrey/ip_autogen/rv_plic#top",
+        report: null,
+    },
+    "debug-module": {
+        title: "debug-module",
+        metrics: "rv_dm",
+        href: "/hw/ip/rv_dm#top",
+        report: "/hw/ip/rv_dm/dv",
+    },
+    "rom": {
+        title: "rom",
+        metrics: "rom_ctrl",
+        href: "/hw/ip/rom_ctrl#top",
+        report: "/hw/ip/rom_ctrl/dv",
+    },
+    "main-sram": {
+        title: "main-sram",
+        metrics: "sram_ctrl",
+        href: "/hw/ip/sram_ctrl#top",
+        report: "/hw/ip/sram_ctrl_main/dv",
+    },
+    "key-manager": {
+        title: "key-manager",
+        metrics: "keymgr",
+        href: "/hw/ip/keymgr#top",
+        report: "/hw/ip/keymgr/dv",
+    },
+    "otbn": {
+        title: "otbn",
+        metrics: "otbn",
+        href: "/hw/ip/otbn#top",
+        report: "/hw/ip/otbn/dv/uvm",
+    },
+    "aes": {
+        title: "aes",
+        metrics: "aes",
+        href: "/hw/ip/aes#top",
+        report: "/hw/ip/aes_unmasked/dv",
+    },
+    "kmac": {
+        title: "kmac",
+        metrics: "kmac",
+        href: "/hw/ip/kmac#top",
+        report: "/hw/ip/kmac_unmasked/dv",
+    },
+    "hmac": {
+        title: "hmac",
+        metrics: "hmac",
+        href: "/hw/ip/hmac#top",
+        report: "/hw/ip/hmac/dv",
+    },
+    "flash": {
+        title: "flash",
+        metrics: "flash_ctrl",
+        href: "/hw/ip/flash_ctrl#top",
+        report: "/hw/ip/flash_ctrl/dv",
+    },
+    "edn": {
+        title: "edn",
+        metrics: "edn",
+        href: "/hw/ip/edn#top",
+        report: "/hw/ip/edn/dv",
+    },
+    "csrng": {
+        title: "csrng",
+        metrics: "csrng",
+        href: "/hw/ip/csrng#top",
+        report: "/hw/ip/csrng/dv",
+    },
+    "entropy-source": {
+        title: "entropy-source",
+        metrics: "entropy_src",
+        href: "/hw/ip/entropy_src#top",
+        report: "/hw/ip/entropy_src/dv",
+    },
+    "spi-host-0": {
+        title: "spi-host",
+        metrics: "spi_host",
+        href: "/hw/ip/spi_host#top",
+        report: "/hw/ip/spi_host/dv",
+    },
+    "spi-host-1": {
+        title: "spi-host",
+        metrics: "spi_host",
+        href: "/hw/ip/spi_host#top",
+        report: "/hw/ip/spi_host/dv",
+    },
+    "usb": {
+        title: "usb",
+        metrics: "usbdev",
+        href: "/hw/ip/usbdev#top",
+        report: "/hw/ip/usbdev/dv",
+    },
+    "peripheral-crossbar": {
+        title: "peripheral-crossbar",
+        metrics: "tlul",
+        href: "/hw/ip/tlul#top",
+        report: "/hw/top_earlgrey/ip/xbar_peri/dv/autogen",
+    },
+    "otp-fuse-controller": {
+        title: "otp-fuse-controller",
+        metrics: "otp_ctrl",
+        href: "/hw/ip/otp_ctrl#top",
+        report: "/hw/ip/otp_ctrl/dv",
+    },
+    "life-cycle": {
+        title: "life-cycle",
+        metrics: "lc_ctrl",
+        href: "/hw/ip/lc_ctrl#top",
+        report: "/hw/ip/lc_ctrl/dv",
+    },
+    "alert-handler": {
+        title: "alert-handler",
+        metrics: "alert_handler",
+        href: "/hw/top_earlgrey/ip_autogen/alert_handler#top",
+        report: "/hw/top_earlgrey/ip_autogen/alert_handler/dv",
+    },
+    "uart": {
+        title: "uart",
+        metrics: "uart",
+        href: "/hw/ip/uart#top",
+        report: "/hw/ip/uart/dv",
+    },
+    "timers": {
+        title: "timers",
+        metrics: "rv_timer",
+        href: "/hw/ip/rv_timer#top",
+        report: "/hw/ip/rv_timer/dv",
+    },
+    "gpio": {
+        title: "gpio",
+        metrics: "gpio",
+        href: "/hw/ip/gpio#top",
+        report: "/hw/ip/gpio/dv",
+    },
+    "i2c": {
+        title: "i2c",
+        metrics: "i2c",
+        href: "/hw/ip/i2c#top",
+        report: "/hw/ip/i2c/dv",
+    },
+    "spi-device": {
+        title: "spi-device",
+        metrics: "spi_device",
+        href: "/hw/ip/spi_device#top",
+        report: "/hw/ip/spi_device/dv",
+    },
+    "pattern-generators": {
+        title: "pattern-generators",
+        metrics: "pattgen",
+        href: "/hw/ip/pattgen#top",
+        report: "/hw/ip/pattgen/dv",
+    },
+    "pwm": {
+        title: "pwm",
+        metrics: "pwm",
+        href: "/hw/ip/pwm#top",
+        report: "/hw/ip/pwm/dv",
+    },
+    "retention-sram": {
+        title: "retention-sram",
+        metrics: "sram_ctrl",
+        href: "/hw/ip/sram_ctrl#top",
+        report: "/hw/ip/sram_ctrl_ret/dv",
+    },
+    "power-manager": {
+        title: "power-manager",
+        metrics: "pwrmgr",
+        href: "/hw/ip/pwrmgr#top",
+        report: "/hw/ip/pwrmgr/dv",
+    },
+    "sysrst-controller": {
+        title: "sysrst-controller",
+        metrics: "sysrst_ctrl",
+        href: "/hw/ip/sysrst_ctrl#top",
+        report: "/hw/ip/sysrst_ctrl/dv",
+    },
+    "aon-timers": {
+        title: "aon-timers",
+        metrics: "aon_timer",
+        href: "/hw/ip/aon_timer#top",
+        report: "/hw/ip/aon_timer/dv",
+    },
+    "clkrst-managers": {
+        title: "clkrst-managers",
+        metrics: "clkmgr",
+        href: "/hw/ip/clkmgr#top",
+        report: "/hw/ip/clkmgr/dv",
+    },
+    "pinmux-padctrl": {
+        title: "pinmux-padctrl",
+        metrics: "pinmux",
+        href: "/hw/ip/pinmux#top",
+        report: null,
+    },
+    "adc-controller": {
+        title: "adc-controller",
+        metrics: "adc_ctrl",
+        href: "/hw/ip/adc_ctrl#top",
+        report: "/hw/ip/adc_ctrl/dv",
+    },
+    "sensor-control": {
+        title: "sensor-control",
+        metrics: "sensor_ctrl",
+        href: "/hw/top_earlgrey/ip/sensor_ctrl#top",
+        report: null,
+    },
+    "analog-sensor-top": {
+        title: "analog-sensor-top",
+        metrics: "ast",
+        href: "/hw/top_earlgrey/ip/ast#top",
+        report: null,
+    },
+    "padding": {
+        title: "padding",
+        href: "/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_asic/",
+        report: null,
+    }
+};
diff --git a/site/earlgrey-diagram/src/metrics.js b/site/earlgrey-diagram/src/metrics.js
new file mode 100644
index 0000000..c9822fe
--- /dev/null
+++ b/site/earlgrey-diagram/src/metrics.js
@@ -0,0 +1,719 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+
+// Manually-populated file containing the current metrics for HWIP development stages.
+// In the future, this will be replaced with autogenerated data.
+// For now, ensure this stays in-sync with the HJSON.
+
+export default {
+    "adc_ctrl": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "adc_ctrl",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D3",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_adc_ctrl"
+    },
+    "aes": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "aes",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_aes"
+    },
+    "alert_handler": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "alert_handler",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D3",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_alert_handler"
+    },
+    "aon_timer": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "aon_timer",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D3",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_aon_timer"
+    },
+    "ast": {
+      "design_spec": "../doc",
+      "dv_doc": "",
+      "hw_checklist": "",
+      "name": "ast",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D2",
+          "dif_stage": "",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": ""
+    },
+    "clkmgr": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "clkmgr",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D1",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V1",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_clkmgr"
+    },
+    "csrng": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "csrng",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_csrng"
+    },
+    "edn": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "edn",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_edn"
+    },
+    "entropy_src": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "entropy_src",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_entropy_src"
+    },
+    "flash_ctrl": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "flash_ctrl",
+      "revisions": [
+        {
+          "commit_id": "7049fd0d5d48e20772f8ebf32b240faa0dad5528",
+          "design_stage": "D1",
+          "dif_stage": null,
+          "life_stage": "L1",
+          "verification_stage": "V1",
+          "version": "0.1"
+        },
+        {
+          "commit_id": null,
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_flash_ctrl"
+    },
+    "gpio": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "gpio",
+      "revisions": [
+        {
+          "commit_id": "c1be7eb2b7265cd5ba6ceb026c28acf8e371151a",
+          "design_stage": "D3",
+          "dif_stage": null,
+          "life_stage": "L2",
+          "verification_stage": "V3",
+          "version": "1.0"
+        },
+        {
+          "commit_id": "9a2fd04f5e1f36128c858d6a1a7b06c34681337c",
+          "design_stage": "D3",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2",
+          "version": "1.1"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_gpio"
+    },
+    "hmac": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "hmac",
+      "revisions": [
+        {
+          "commit_id": "635afdb8dedbb50c235bd772b36002925c499884",
+          "design_stage": "D3",
+          "dif_stage": null,
+          "life_stage": "L2",
+          "verification_stage": "V3",
+          "version": "0.5"
+        },
+        {
+          "commit_id": null,
+          "design_stage": "D3",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_hmac"
+    },
+    "i2c": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "i2c",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V1",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_i2c"
+    },
+    "keymgr": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "keymgr",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_keymgr"
+    },
+    "kmac": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "kmac",
+      "revisions": [
+        {
+          "commit_id": "c2a8c64ccbca39707be7883dfd2f8c1100813730",
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_kmac"
+    },
+    "lc_ctrl": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "lc_ctrl",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D3",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_lc_ctrl"
+    },
+    "otbn": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "otbn",
+      "revisions": [
+        {
+          "commit_id": "a46be154ebbcb7b0d5e310b5510a4ac700adc9df",
+          "design_stage": "D1",
+          "dif_stage": "S1",
+          "life_stage": "L1",
+          "verification_stage": "V1",
+          "version": "0.1"
+        },
+        {
+          "commit_id": "a6b908283fccba3f8b6b44052c6ad87276dc21e8",
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_otbn"
+    },
+    "otp_ctrl": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "otp_ctrl",
+      "revisions": [
+        {
+          "commit_id": "127b109e2fab9336e830158abe449a3922544ded",
+          "design_stage": "D2",
+          "dif_stage": "S1",
+          "life_stage": "L1",
+          "verification_stage": "V2",
+          "version": "0.1"
+        },
+        {
+          "commit_id": null,
+          "design_stage": "D3",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_otp_ctrl"
+    },
+    "pattgen": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "pattgen",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_pattgen"
+    },
+    "pinmux": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "pinmux",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D1",
+          "dif_stage": "S1",
+          "life_stage": "L1",
+          "verification_stage": "V1",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_pinmux"
+    },
+    "pwm": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "pwm",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_pwm"
+    },
+    "pwrmgr": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "pwrmgr",
+      "revisions": [
+        {
+          "commit_id": "b2abc989498f072d9a5530f8aab9b58c1f92c9fb",
+          "design_stage": "D1",
+          "dif_stage": "S0",
+          "life_stage": "L1",
+          "verification_stage": "V0",
+          "version": "0.1"
+        },
+        {
+          "commit_id": null,
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_pwrmgr"
+    },
+    "rom_ctrl": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "rom_ctrl",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D3",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_rom_ctrl"
+    },
+    "rstmgr": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "rstmgr",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D1",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V1",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_rstmgr"
+    },
+    "rv_core_ibex": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "rv_core_ibex",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_rv_core_ibex"
+    },
+    "rv_dm": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "rv_dm",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D2S",
+          "dif_stage": null,
+          "life_stage": "L1",
+          "verification_stage": "V1",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": ""
+    },
+    "rv_plic": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "rv_plic",
+      "revisions": [
+        {
+          "commit_id": "",
+          "design_stage": "D3",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_rv_plic"
+    },
+    "rv_timer": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "rv_timer",
+      "revisions": [
+        {
+          "commit_id": "a4638684103da48c793301243759e9d1eb2cb9dc",
+          "design_stage": "D3",
+          "dif_stage": null,
+          "life_stage": "L2",
+          "verification_stage": "V3",
+          "version": "0.5"
+        },
+        {
+          "commit_id": "a25e162b8f91bd0ca32258c83d1d480f93327204",
+          "design_stage": "D3",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "sw/device/lib/dif/dif_rv_timer"
+    },
+    "sensor_ctrl": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "sensor_ctrl",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D3",
+          "dif_stage": null,
+          "life_stage": "L1",
+          "verification_stage": "N/A",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_sensor_ctrl"
+    },
+    "spi_device": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "spi_device",
+      "revisions": [
+        {
+          "commit_id": "553ca956e0204e5b67b3bbea47f2e067f60b5510",
+          "design_stage": "D1",
+          "dif_stage": "S0",
+          "life_stage": "L1",
+          "verification_stage": "V1",
+          "version": "0.5"
+        },
+        {
+          "commit_id": "",
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_spi_device"
+    },
+    "spi_host": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "spi_host",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_spi_host"
+    },
+    "sram_ctrl": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "sram_ctrl",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D3",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_sram_ctrl"
+    },
+    "sysrst_ctrl": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "sysrst_ctrl",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D3",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2S",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_sysrst_ctrl"
+    },
+    "tlul": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "/hw/top_earlgrey/ip/xbar/doc/checklist",
+      "name": "tlul",
+      "revisions": [
+        {
+          "commit_id": "0078a3228c0d311cd40996a730ed8453640a6944",
+          "design_stage": "D3",
+          "dif_stage": null,
+          "life_stage": "L2",
+          "verification_stage": "V3",
+          "version": "0.5"
+        },
+        {
+          "commit_id": "dae702d55b89a18621607b34f7ab8161be3706eb",
+          "design_stage": "D2",
+          "dif_stage": null,
+          "life_stage": "L1",
+          "verification_stage": "V2",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": null
+    },
+    "trial1": {
+      "design_spec": "",
+      "dv_doc": "",
+      "hw_checklist": "",
+      "name": "trial1",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D1",
+          "dif_stage": "S1",
+          "life_stage": "L1",
+          "verification_stage": "V1",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": ""
+    },
+    "uart": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "uart",
+      "revisions": [
+        {
+          "commit_id": "4166794b902cc72b4cfdfacca0869ffc56e6b42a",
+          "design_stage": "D3",
+          "dif_stage": null,
+          "life_stage": "L2",
+          "verification_stage": "V3",
+          "version": "1.0"
+        },
+        {
+          "commit_id": "558942bb7869d9a5d8abd4bd0eb46dab820d3564",
+          "design_stage": "D3",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V2",
+          "version": "1.1"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_uart"
+    },
+    "usbdev": {
+      "design_spec": "../doc",
+      "dv_doc": "../doc/dv",
+      "hw_checklist": "../doc/checklist",
+      "name": "usbdev",
+      "revisions": [
+        {
+          "commit_id": null,
+          "design_stage": "D2S",
+          "dif_stage": "S2",
+          "life_stage": "L1",
+          "verification_stage": "V0",
+          "version": "1.0"
+        }
+      ],
+      "sw_checklist": "/sw/device/lib/dif/dif_usbdev"
+    }
+  };
diff --git a/site/earlgrey-diagram/src/tooltips-classic.css b/site/earlgrey-diagram/src/tooltips-classic.css
new file mode 100644
index 0000000..2e6fbc7
--- /dev/null
+++ b/site/earlgrey-diagram/src/tooltips-classic.css
@@ -0,0 +1,125 @@
+/* Copyright lowRISC contributors. */
+/* Licensed under the Apache License, Version 2.0, see LICENSE for details. */
+/* SPDX-License-Identifier: Apache-2.0 */
+
+.diagram.classic {
+    --tooltip-background: white;
+    --tooltip-border: #000;
+    --tooltip-arrow-size: 0.7em;
+}
+
+.diagram.classic .tooltip-box {
+    display: grid;
+    grid-auto-flow: row;
+    border-radius: 5px;
+    gap: 0.5em;
+    color: #000;
+    text-align: center;
+    font-size: 0.9em;
+    grid-template-columns: 4.5em 1fr;
+}
+
+.diagram.classic .tooltip-box.has-report {
+    padding-bottom: 0.7em;
+}
+
+.diagram.classic .tooltip-box .tooltip-title {
+    font-weight: bold;
+    background: #ccc;
+    margin: 0 -0.5em;
+    padding: 0.5ex 1em;
+    border-radius: 0.5em;
+    grid-column: 1/-1;
+    border: 1px solid black;
+}
+
+.diagram.classic .tooltip-box .tooltip-divider {
+    font-weight: bold;
+    background: #666;
+    margin: 0 -0.5em;
+    border-radius: 0.5em;
+    grid-column: 1/-1;
+    height: 1px;
+}
+
+.diagram.classic .tooltip-box .tooltip-label {
+    text-align: left;
+    position: relative;
+}
+
+.diagram.classic .tooltip-box .tooltip-value {
+    font-weight: bold;
+    position: relative;
+}
+
+.diagram.classic .tooltip-report-tests {
+    padding: 0.2em 0.5em;
+    border-radius: 0.25em;
+    margin: -0.2em 0;
+    border: 1px solid #000;
+}
+
+.diagram.classic .tooltip-report-tests:where(
+    .rate-0,
+    .rate-5,
+    .rate-10,
+    .rate-15,
+    .rate-20,
+    .rate-25,
+    .rate-30,
+    .rate-35,
+    .rate-40,
+    .rate-45
+) {
+    background-color: #f4cccc;
+}
+
+.diagram.classic .tooltip-report-tests:where(
+    .rate-50,
+    .rate-55,
+    .rate-60,
+    .rate-65,
+    .rate-70,
+    .rate-75,
+    .rate-80,
+    .rate-85,
+    .rate-90
+) {
+    background-color: #fff2cc;
+}
+
+.diagram.classic .tooltip-report-tests:where(
+    .rate-95,
+    .rate-100
+) {
+    background-color: #d9ead3;
+}
+
+.diagram.classic .tooltip-badge:before {
+    content: "";
+    display: block;
+    position: absolute;
+    width: 0.7em;
+    height: 0.7em;
+    top: 50%;
+    transform: translateY(-50%);
+    border-radius: 100%;
+    left: 0;
+    right: 0;
+    background-color: transparent;
+    pointer-events: none;
+    border: 1px solid black;
+}
+
+.diagram.classic .tooltip-badge-good:before,
+.diagram.classic .tooltip-badge-prettygood:before {
+    background-color: hsl(104, 35%, 63%);
+}
+
+.diagram.classic .tooltip-badge-warn:before {
+    background-color: hsl(45, 100%, 70%);
+}
+
+.diagram.classic .tooltip-badge-alert:before {
+    background-color: hsl(0, 65%, 70%);
+}
diff --git a/site/earlgrey-diagram/src/tooltips-modern.css b/site/earlgrey-diagram/src/tooltips-modern.css
new file mode 100644
index 0000000..f8d978d
--- /dev/null
+++ b/site/earlgrey-diagram/src/tooltips-modern.css
@@ -0,0 +1,134 @@
+/* Copyright lowRISC contributors. */
+/* Licensed under the Apache License, Version 2.0, see LICENSE for details. */
+/* SPDX-License-Identifier: Apache-2.0 */
+
+.diagram.modern {
+    --tooltip-background: #333;
+    --tooltip-border: #222;
+    --tooltip-arrow-size: 0.7em;
+}
+
+.diagram.modern .tooltip-box {
+    display: grid;
+    grid-auto-flow: row;
+    border-radius: 5px;
+    gap: 0.5em;
+    color: #eee;
+    text-align: center;
+    font-size: 0.9em;
+    grid-template-columns: 4.5em 1fr;
+}
+
+.diagram.modern .tooltip-box.has-report {
+    padding-bottom: 0.7em;
+}
+
+.diagram.modern .tooltip-box .tooltip-title {
+    font-weight: bold;
+    background: #666;
+    margin: 0 -0.5em;
+    padding: 0.5ex 1em;
+    border-radius: 0.5em;
+    grid-column: 1/-1;
+}
+
+.diagram.modern .tooltip-box .tooltip-divider {
+    font-weight: bold;
+    background: #666;
+    margin: 0 -0.5em;
+    border-radius: 0.5em;
+    grid-column: 1/-1;
+    height: 1px;
+}
+
+.diagram.modern .tooltip-box .tooltip-label {
+    text-align: left;
+    position: relative;
+}
+
+.diagram.modern .tooltip-box .tooltip-value {
+    font-weight: bold;
+    position: relative;
+}
+
+.diagram.modern .tooltip-report-tests {
+    padding: 0.2em 0.5em;
+    border-radius: 0.25em;
+    margin: -0.2em 0;
+}
+
+.diagram.modern .tooltip-report-tests:where(
+    .rate-0,
+    .rate-5,
+    .rate-10,
+    .rate-15,
+    .rate-20,
+    .rate-25,
+    .rate-30,
+    .rate-35,
+    .rate-40,
+    .rate-45
+) {
+    background-color: rgb(184, 29, 19);
+    color: #eee;
+}
+
+.diagram.modern .tooltip-report-tests:where(
+    .rate-50,
+    .rate-55,
+    .rate-60,
+    .rate-65,
+    .rate-70,
+    .rate-75,
+    .rate-80,
+    .rate-85
+) {
+    background-color: rgb(239, 183, 0);
+    color: #333;
+}
+
+.diagram.modern .tooltip-report-tests:where(
+    .rate-90,
+    .rate-95
+) {
+    background-color: rgb(130, 190, 0);
+    color: #333;
+}
+
+.diagram.modern .tooltip-report-tests:where(
+    .rate-100
+) {
+    background-color: rgb(0, 132, 80);
+    color: #eee;
+}
+
+.diagram.modern .tooltip-badge:before {
+    content: "";
+    display: block;
+    position: absolute;
+    width: 0.7em;
+    height: 0.7em;
+    top: 50%;
+    transform: translateY(-50%);
+    border-radius: 100%;
+    left: 0;
+    right: 0;
+    background-color: transparent;
+    pointer-events: none;
+}
+
+.diagram.modern .tooltip-badge-good:before {
+    background-color: rgb(0, 132, 80);
+}
+
+.diagram.modern .tooltip-badge-prettygood:before {
+    background-color: rgb(130, 190, 0);
+}
+
+.diagram.modern .tooltip-badge-warn:before {
+    background-color: rgb(239, 183, 0);
+}
+
+.diagram.modern .tooltip-badge-alert:before {
+    background-color: rgb(184, 29, 19);
+}
diff --git a/site/earlgrey-diagram/src/tooltips.css b/site/earlgrey-diagram/src/tooltips.css
new file mode 100644
index 0000000..e5dba21
--- /dev/null
+++ b/site/earlgrey-diagram/src/tooltips.css
@@ -0,0 +1,86 @@
+/* Copyright lowRISC contributors. */
+/* Licensed under the Apache License, Version 2.0, see LICENSE for details. */
+/* SPDX-License-Identifier: Apache-2.0 */
+
+:where(.diagram) {
+    --tooltip-background: white;
+    --tooltip-border: black;
+    --tooltip-arrow-size: 0.7em;
+}
+
+:where(.block-focus) {
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    z-index: 9999;
+    pointer-events: "none";
+}
+
+:where(.diagram-tooltip) {
+    position: absolute;
+    display: grid;
+    width: max-content;
+    top: calc(100% - 0.5 * var(--tooltip-arrow-size));
+    height: 0;
+    width: 100%;
+    justify-content: center;
+    z-index: 9999;
+}
+
+:where(.tooltip-box) {
+    position: relative;
+    top: calc(100% - 1.5 * var(--tooltip-arrow-size));
+    top: var(--tooltip-arrow-size);
+    border: 1px solid var(--tooltip-border);
+    background: var(--tooltip-background);
+    width: max-content;
+    height: max-content;
+    text-align: left;
+    color: #333;
+    padding: 0.5em 1em;
+}
+
+:where(.diagram-tooltip) {
+    display: none;
+}
+
+:where(.has-tooltip:hover),
+:where(.has-tooltip:active),
+:where(.has-tooltip:focus-visible),
+:where(.has-tooltip:focus-within) {
+    z-index: 999;
+}
+
+:where(.has-tooltip:hover > .diagram-tooltip),
+:where(.has-tooltip:active > .diagram-tooltip),
+:where(.has-tooltip:focus-visible > .diagram-tooltip),
+:where(.block-focus:focus-visible + .diagram-tooltip) {
+    display: grid;
+    height: calc(1px + var(--tooltip-arrow-size));
+}
+
+:where(.tooltip-box):before,
+:where(.tooltip-box):after {
+    content: "";
+    display: block;
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: calc(-1 * var(--tooltip-arrow-size) + 1px);
+    left: calc(50% - 1.2 * var(--tooltip-arrow-size));
+    border-width: 0 calc(1.2 * var(--tooltip-arrow-size)) var(--tooltip-arrow-size) calc(1.2 * var(--tooltip-arrow-size));
+    border-style: solid;
+    border-color: transparent;
+}
+
+:where(.tooltip-box):after {
+    top: calc(-1 * var(--tooltip-arrow-size) + 1px);
+    border-bottom-color: var(--tooltip-background);
+}
+
+:where(.tooltip-box):before {
+    top: calc(-1 * var(--tooltip-arrow-size) + 1px - 1px);
+    border-bottom-color: var(--tooltip-border);
+}
diff --git a/site/earlgrey-diagram/ssr.js b/site/earlgrey-diagram/ssr.js
new file mode 100644
index 0000000..4ab7bc0
--- /dev/null
+++ b/site/earlgrey-diagram/ssr.js
@@ -0,0 +1,45 @@
+import puppeteer from 'puppeteer';
+
+export async function ssr(url) {
+    const browserOptions = process.argv[2] !== "--debug" ? {
+        headless: true,
+    } : {
+        headless: false,
+        devtools: true,
+        defaultViewport: { width: 900, height: 600 },
+    };
+
+    try {
+        const browser = await puppeteer.launch({
+            ...browserOptions,
+            args: [
+                "--no-sandbox",
+                "--disable-setuid-sandbox",
+                "--disable-web-security",
+            ],
+        });
+        const page = await browser.newPage();
+        await page.goto(url, { waitUntil: "networkidle0" });
+
+        await page.evaluate("window.hydrated");
+
+        const head = await page.$eval("head", (e) => e.innerHTML);
+        let body = await page.$eval("body", (e) => e.innerHTML);
+
+        body = body.replace(/<(\/)?lowrisc-\w+/g, "<$1div");
+        body = body.replace(/<<<HOSTNAME>>>/g, process.env.URL_ROOT || "https://docs.opentitan.org");
+
+        if (browserOptions.headless) {
+            await browser.close();
+        }
+
+        return `${head}${body}`;
+    } catch (error) {
+        console.error('SSR Error', error);
+        return 'Error while hydrating the page.';
+    }
+}
+
+const url = new URL("./src/earlgrey.html", import.meta.url);
+
+console.log(await ssr(url.href));
diff --git a/site/landing/layouts/shortcodes/earlgrey-diagram.html b/site/landing/layouts/shortcodes/earlgrey-diagram.html
new file mode 100644
index 0000000..9b1f4b5
--- /dev/null
+++ b/site/landing/layouts/shortcodes/earlgrey-diagram.html
@@ -0,0 +1 @@
+<style>:where(.diagram){--scale:1.1;font-family:sans-serif;font-size:.75em;line-height:normal;position:relative!important;top:0!important;left:0!important}:where(.diagram *){color:inherit}:where(.lowrisc-block){box-sizing:border-box;z-index:auto;--block-top:0;--block-left:0;--block-width:initial;--block-height:initial;--offset-top:0;--offset-left:0;top:calc(1em*( var(--block-top) + var(--offset-top))*var(--scale,1) - 1px);left:calc(1em*( var(--block-left) + var(--offset-left))*var(--scale,1) - 1px);width:calc(1em*var(--block-width,"auto")*var(--scale,1));height:calc(1em*var(--block-height,"auto")*var(--scale,1));grid-template-rows:1fr;grid-template-columns:1fr;display:grid;position:absolute;overflow:visible}:where(.block){background:#fff}:where(.lowrisc-block:not(.lowrisc-arrow)){text-align:center;border:1px solid #0000;justify-content:center;align-items:center;display:grid}:where(.lowrisc-crossbar){stroke:#000;stroke-width:1px}:where(.crossbar-background){width:100%;height:100%;position:absolute;top:0;left:0}:where(.crossbar-background>svg){width:100%;height:100%}:where(.lowrisc-arrow){text-align:left;fill:#fff;stroke:#000;stroke-width:1px;border:none}:where(.lowrisc-arrow>svg){width:100%;height:100%;position:absolute;top:0;left:0}:where(.lowrisc-arrow.thin){fill:#000;stroke:none;--thin-arrow-width:1px}:where(.lowrisc-arrow.thin:not([horizontal])){width:var(--thin-arrow-width)!important}:where(.lowrisc-arrow.thin[horizontal]){height:var(--thin-arrow-width)!important}:where(.domain){border:1px solid #000}:where(.outline){pointer-events:none;--outline-border:1px dashed black;--outline-border-radius:0;background:0 0;border:none}:where(.outline.top){border-top:var(--outline-border)}:where(.outline.bottom){border-bottom:var(--outline-border)}:where(.outline.left){border-left:var(--outline-border)}:where(.outline.right){border-right:var(--outline-border)}:where(.outline.top.left){border-top-left-radius:var(--outline-border-radius)}:where(.outline.top.right){border-top-right-radius:var(--outline-border-radius)}:where(.outline.bottom.left){border-bottom-left-radius:var(--outline-border-radius)}:where(.outline.bottom.right){border-bottom-right-radius:var(--outline-border-radius)}:where(.outline>:not(.outline)){pointer-events:auto}:where(.block){--block-width:6;--block-height:3;border:1px solid #000}:where(.lane){--block-width:6}:where(.subdomain-badge){--block-width:.75;--block-height:.75;border:1px solid #000}:where(.title){font-weight:700}:where(.clickable){cursor:pointer}:where(.clickable:hover),:where(.clickable:active){background-image:linear-gradient(#00000026,#00000026)}.diagram.modern{background:#fff}.diagram.modern .lowrisc-crossbar{stroke:#0000001a;stroke-width:2px;stroke-linecap:round}.diagram.modern .lowrisc-arrow{fill:#7b7979;stroke:none}.diagram.modern .lowrisc-arrow.thin{--thin-arrow-width:2px}.diagram.modern #chip{color:#1c1230;border-color:#0000}.diagram.modern #opentitan-logo{fill:#402d68;border-radius:.4em}.diagram.modern #top{background-color:#f8f8f8}.diagram.modern .title{text-transform:uppercase}.diagram.modern .domain{border-color:#0000}.diagram.modern #high-speed,.diagram.modern #peripheral{background-color:#e9e9e9}.diagram.modern #ibex>span{font-size:1.2em}.diagram.modern #ibex-shadow{background-color:#35b2c0}.diagram.modern #ibex-shadow-label>span{text-transform:uppercase;color:#fff;font-size:.85em}.diagram.modern #always-on>.title{color:#dc143c;text-align:right}.diagram.modern #always-on>.outline{--outline-border:2px dashed crimson;--outline-border-radius:.5em}.diagram.modern .block{border-color:#0000;border-radius:.5em}.diagram.modern .subdomain-badge{border-color:#0000;border-radius:.25em}.diagram.modern #clock-speeds>.lowrisc-block{border-radius:.5em}.diagram.modern .b100mhz{background-color:#8bd6df}.diagram.modern .b96mhz{color:#eee;background-color:#6395ae}.diagram.modern .b48mhz{background-color:#cfbde4}.diagram.modern .b24mhz{color:#eee;background-color:#967ebf}.diagram.modern .b200khz{background-color:#f9ad38}.diagram.modern .blogic{background-color:#d4d4d2}:where(.diagram){--tooltip-background:white;--tooltip-border:black;--tooltip-arrow-size:.7em}:where(.block-focus){z-index:9999;pointer-events:"none";position:absolute;top:0;bottom:0;left:0;right:0}:where(.diagram-tooltip){width:max-content;top:calc(100% - .5*var(--tooltip-arrow-size));height:0;width:100%;z-index:9999;justify-content:center;display:grid;position:absolute}:where(.tooltip-box){top:calc(100% - 1.5*var(--tooltip-arrow-size));top:var(--tooltip-arrow-size);border:1px solid var(--tooltip-border);background:var(--tooltip-background);width:max-content;height:max-content;text-align:left;color:#333;padding:.5em 1em;position:relative}:where(.diagram-tooltip){display:none}:where(.has-tooltip:hover),:where(.has-tooltip:active),:where(.has-tooltip:focus-visible),:where(.has-tooltip:focus-within){z-index:999}:where(.has-tooltip:hover>.diagram-tooltip),:where(.has-tooltip:active>.diagram-tooltip),:where(.has-tooltip:focus-visible>.diagram-tooltip),:where(.block-focus:focus-visible+.diagram-tooltip){height:calc(1px + var(--tooltip-arrow-size));display:grid}:where(.tooltip-box):before,:where(.tooltip-box):after{content:"";width:0;height:0;top:calc(-1*var(--tooltip-arrow-size) + 1px);left:calc(50% - 1.2*var(--tooltip-arrow-size));border-width:0 calc(1.2*var(--tooltip-arrow-size))var(--tooltip-arrow-size)calc(1.2*var(--tooltip-arrow-size));border-style:solid;border-color:#0000;display:block;position:absolute}:where(.tooltip-box):after{top:calc(-1*var(--tooltip-arrow-size) + 1px);border-bottom-color:var(--tooltip-background)}:where(.tooltip-box):before{top:calc(-1*var(--tooltip-arrow-size) + 1px - 1px);border-bottom-color:var(--tooltip-border)}.diagram.modern{--tooltip-background:#333;--tooltip-border:#222;--tooltip-arrow-size:.7em}.diagram.modern .tooltip-box{color:#eee;text-align:center;border-radius:5px;grid-template-columns:4.5em 1fr;grid-auto-flow:row;gap:.5em;font-size:.9em;display:grid}.diagram.modern .tooltip-box.has-report{padding-bottom:.7em}.diagram.modern .tooltip-box .tooltip-title{background:#666;border-radius:.5em;grid-column:1/-1;margin:0 -.5em;padding:.5ex 1em;font-weight:700}.diagram.modern .tooltip-box .tooltip-divider{height:1px;background:#666;border-radius:.5em;grid-column:1/-1;margin:0 -.5em;font-weight:700}.diagram.modern .tooltip-box .tooltip-label{text-align:left;position:relative}.diagram.modern .tooltip-box .tooltip-value{font-weight:700;position:relative}.diagram.modern .tooltip-report-tests{border-radius:.25em;margin:-.2em 0;padding:.2em .5em}.diagram.modern .tooltip-report-tests:where(.rate-0,.rate-5,.rate-10,.rate-15,.rate-20,.rate-25,.rate-30,.rate-35,.rate-40,.rate-45){color:#eee;background-color:#b81d13}.diagram.modern .tooltip-report-tests:where(.rate-50,.rate-55,.rate-60,.rate-65,.rate-70,.rate-75,.rate-80,.rate-85){color:#333;background-color:#efb700}.diagram.modern .tooltip-report-tests:where(.rate-90,.rate-95){color:#333;background-color:#82be00}.diagram.modern .tooltip-report-tests:where(.rate-100){color:#eee;background-color:#008450}.diagram.modern .tooltip-badge:before{content:"";width:.7em;height:.7em;pointer-events:none;background-color:#0000;border-radius:100%;display:block;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.diagram.modern .tooltip-badge-good:before{background-color:#008450}.diagram.modern .tooltip-badge-prettygood:before{background-color:#82be00}.diagram.modern .tooltip-badge-warn:before{background-color:#efb700}.diagram.modern .tooltip-badge-alert:before{background-color:#b81d13}</style><div id="opentitan-block-diagram" class="diagram lowrisc-block modern" pos="0 0 63 43" style="--block-top:0;--block-left:0;--block-width:63;--block-height:43"> <div id="chip" class="domain lowrisc-block" pos="0 0 63 43" style="--block-top:0;--block-left:0;--block-width:63;--block-height:43"> <div class="lowrisc-block title" pos="1 1" style="--block-top:1;--block-left:1">chip_earlgrey_asic</div> <div id="top" class="domain lowrisc-block" pos="1 3 61 30" style="--block-top:3;--block-left:1;--block-width:61;--block-height:30"> <div class="lowrisc-block title" pos="1 0.5" style="--block-top:.5;--block-left:1">top_earlgrey</div> <div id="high-speed" class="domain lowrisc-block" pos="1 2 29 27" style="--block-top:2;--block-left:1;--block-width:29;--block-height:27"> <div class="lowrisc-block title" pos="1 0.5" style="--block-top:.5;--block-left:1">High Speed Domain</div> <div class="lane lowrisc-block" pos="1 2" style="--block-top:2;--block-left:1"> <div pos="6.5 7 0.5 1" center="x" class="lowrisc-arrow lowrisc-block" style="--block-top:7;--block-left:6.5;--block-width:.5;--block-height:1;--offset-left:-.25"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 7 13"><path vector-effect="non-scaling-stroke" d="M0 4.2h-3.5l7-4.2 7 4.2H7v4.6h3.5l-7 4.2-7-4.2H0Z"/></svg> </div> <div id="ibex-shadow" class="block lowrisc-block" pos="1 1.5 12 5.5" style="--block-top:1.5;--block-left:1;--block-width:12;--block-height:5.5"> <div id="ibex-shadow-label" pos="0 4 12 1.5" class="lowrisc-block" style="--block-top:4;--block-left:0;--block-width:12;--block-height:1.5"> <span>Dual Lockstep</span> </div> </div> <a href="https://opentitan.org/book/hw/ip/rv_core_ibex#top" style="display:contents"><div id="ibex" class="b100mhz block has-tooltip lowrisc-block" pos="0 0 12 5.5" style="--block-top:0;--block-left:0;--block-width:12;--block-height:5.5"> <span><b>Ibex Core</b><br>(RV32IMCB)<br></span> <div class="block-focus" tabindex="3"></div><div class="diagram-tooltip"><div class="tooltip-box"> <span class="tooltip-title"> IBEX v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> </div></div></div></a></div> <div class="lane lowrisc-block" pos="15 2" style="--block-top:2;--block-left:15"> <div pos="3 3 0.5 5" center="x" class="lowrisc-arrow lowrisc-block" style="--block-top:3;--block-left:3;--block-width:.5;--block-height:5;--offset-left:-.25"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 7 66"><path vector-effect="non-scaling-stroke" d="M0 4.2h-3.5l7-4.2 7 4.2H7v57.6h3.5l-7 4.2-7-4.2H0Z"/></svg> </div> <a href="https://opentitan.org/book/hw/top_earlgrey/ip_autogen/rv_plic#top" style="display:contents"><div id="interrupt-controller" class="b100mhz block has-tooltip lowrisc-block" pos="0 0" style="--block-top:0;--block-left:0"> Interrupt<br>Controller <div class="block-focus" tabindex="4"></div><div class="diagram-tooltip"><div class="tooltip-box"> <span class="tooltip-title"> INTERRUPT-CONTROLLER v1.0 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2 </span> <span class="tooltip-label"> verification </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/rv_dm#top" style="display:contents"><div id="debug-module" class="b100mhz block has-tooltip lowrisc-block" pos="0 4" style="--block-top:4;--block-left:0"> Debug<br>Module <div class="block-focus" tabindex="5"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> DEBUG-MODULE v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-warn tooltip-value"> V1 </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 432 </span> <span class="tooltip-label"> tests </span> <span class="rate-75 tooltip-report-tests tooltip-value"> 75% </span> <span class="tooltip-label"> passing </span> </div></div></div></a></div> <div class="lane lowrisc-block" pos="22 2" style="--block-top:2;--block-left:22"> <div pos="3 3 0.5 5" center="x" class="lowrisc-arrow lowrisc-block" style="--block-top:3;--block-left:3;--block-width:.5;--block-height:5;--offset-left:-.25"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 7 66"><path vector-effect="non-scaling-stroke" d="M0 4.2h-3.5l7-4.2 7 4.2H7v57.6h3.5l-7 4.2-7-4.2H0Z"/></svg> </div> <a href="https://opentitan.org/book/hw/ip/sram_ctrl#top" style="display:contents"><div id="main-sram" class="b100mhz block has-tooltip lowrisc-block" pos="0 4" style="--block-top:4;--block-left:0"> Main<br>SRAM <div class="block-focus" tabindex="7"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> MAIN-SRAM v1.0 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 1040 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 99% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/rom_ctrl#top" style="display:contents"><div id="rom" class="b100mhz block has-tooltip lowrisc-block" pos="0 0" style="--block-top:0;--block-left:0"> ROM <div class="block-focus" tabindex="6"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> ROM v1.0 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 500 </span> <span class="tooltip-label"> tests </span> <span class="rate-90 tooltip-report-tests tooltip-value"> 94% </span> <span class="tooltip-label"> passing </span> </div></div></div></a></div> <div class="lane lowrisc-block" pos="1 15" style="--block-top:15;--block-left:1"> <div pos="3 -1 0.5 9" center="x" class="lowrisc-arrow lowrisc-block" style="--block-top:-1;--block-left:3;--block-width:.5;--block-height:9;--offset-left:-.25"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 7 119"><path vector-effect="non-scaling-stroke" d="M0 4.2h-3.5l7-4.2 7 4.2H7v110.6h3.5l-7 4.2-7-4.2H0Z"/></svg> </div> <a href="https://opentitan.org/book/hw/ip/keymgr#top" style="display:contents"><div id="key-manager" class="b100mhz block has-tooltip lowrisc-block" pos="0 0" style="--block-top:0;--block-left:0"> Key<br>Manager <div class="block-focus" tabindex="8"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> KEY-MANAGER v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 1110 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 98% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/aes#top" style="display:contents"><div id="aes" class="b100mhz block has-tooltip lowrisc-block" pos="0 8" style="--block-top:8;--block-left:0"> AES <div class="block-focus" tabindex="10"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> AES v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 1582 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 96% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/otbn#top" style="display:contents"><div id="otbn" class="b100mhz block has-tooltip lowrisc-block" pos="0 4" style="--block-top:4;--block-left:0"> OTBN <div class="block-focus" tabindex="9"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> OTBN v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 575 </span> <span class="tooltip-label"> tests </span> <span class="rate-90 tooltip-report-tests tooltip-value"> 92% </span> <span class="tooltip-label"> passing </span> </div></div></div></a></div> <div class="lane lowrisc-block" pos="8 15" style="--block-top:15;--block-left:8"> <div pos="3 -1 0.5 9" center="x" class="lowrisc-arrow lowrisc-block" style="--block-top:-1;--block-left:3;--block-width:.5;--block-height:9;--offset-left:-.25"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 7 119"><path vector-effect="non-scaling-stroke" d="M0 4.2h-3.5l7-4.2 7 4.2H7v110.6h3.5l-7 4.2-7-4.2H0Z"/></svg> </div> <a href="https://opentitan.org/book/hw/ip/kmac#top" style="display:contents"><div id="kmac" class="b100mhz block has-tooltip lowrisc-block" pos="0 0" style="--block-top:0;--block-left:0"> KMAC <div class="block-focus" tabindex="11"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> KMAC v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 1290 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 98% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/hmac#top" style="display:contents"><div id="hmac" class="b100mhz block has-tooltip lowrisc-block" pos="0 4" style="--block-top:4;--block-left:0"> HMAC <div class="block-focus" tabindex="12"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> HMAC v1.0 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2 </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 920 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 99% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/flash_ctrl#top" style="display:contents"><div id="flash" class="b100mhz block has-tooltip lowrisc-block" pos="0 8" style="--block-top:8;--block-left:0"> FLASH <div class="block-focus" tabindex="13"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> FLASH v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 1278 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 96% </span> <span class="tooltip-label"> passing </span> </div></div></div></a></div> <div class="lane lowrisc-block" pos="15 15" style="--block-top:15;--block-left:15"> <div pos="3 -1 0.5 9" center="x" class="lowrisc-arrow lowrisc-block" style="--block-top:-1;--block-left:3;--block-width:.5;--block-height:9;--offset-left:-.25"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 7 119"><path vector-effect="non-scaling-stroke" d="M0 4.2h-3.5l7-4.2 7 4.2H7v110.6h3.5l-7 4.2-7-4.2H0Z"/></svg> </div> <a href="https://opentitan.org/book/hw/ip/edn#top" style="display:contents"><div id="edn" class="b100mhz block has-tooltip lowrisc-block" pos="0 0" style="--block-top:0;--block-left:0"> EDN <div class="block-focus" tabindex="14"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> EDN v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 680 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 99% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/entropy_src#top" style="display:contents"><div id="entropy-source" class="b100mhz block has-tooltip lowrisc-block" pos="0 8" style="--block-top:8;--block-left:0"> Entropy<br>Source <div class="block-focus" tabindex="16"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> ENTROPY-SOURCE v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 2020 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 96% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/csrng#top" style="display:contents"><div id="csrng" class="b100mhz block has-tooltip lowrisc-block" pos="0 4" style="--block-top:4;--block-left:0"> CSRNG <div class="block-focus" tabindex="15"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> CSRNG v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 1670 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 96% </span> <span class="tooltip-label"> passing </span> </div></div></div></a></div> <div class="lane lowrisc-block" pos="22 15" style="--block-top:15;--block-left:22"> <div pos="3 -1 0.5 9" center="x" class="lowrisc-arrow lowrisc-block" style="--block-top:-1;--block-left:3;--block-width:.5;--block-height:9;--offset-left:-.25"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 7 119"><path vector-effect="non-scaling-stroke" d="M0 4.2h-3.5l7-4.2 7 4.2H7v110.6h3.5l-7 4.2-7-4.2H0Z"/></svg> </div> <a href="https://opentitan.org/book/hw/ip/spi_host#top" style="display:contents"><div id="spi-host-0" class="b96mhz block has-tooltip lowrisc-block" pos="0 0" style="--block-top:0;--block-left:0"> SPI<br>Host 0 <div class="block-focus" tabindex="17"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> SPI-HOST v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 830 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 97% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/spi_host#top" style="display:contents"><div id="spi-host-1" class="b48mhz block has-tooltip lowrisc-block" pos="0 4" style="--block-top:4;--block-left:0"> SPI<br>Host 1 <div class="block-focus" tabindex="18"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> SPI-HOST v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 830 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 97% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/usbdev#top" style="display:contents"><div id="usb" class="b48mhz block has-tooltip lowrisc-block" pos="0 8" style="--block-top:8;--block-left:0"> <div class="b200khz lowrisc-block subdomain-badge" pos="0.5 0.5" style="--block-top:.5;--block-left:.5"></div> USB <div class="block-focus" tabindex="19"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> USB v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-alert tooltip-value"> V0 </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 330 </span> <span class="tooltip-label"> tests </span> <span class="rate-45 tooltip-report-tests tooltip-value"> 47% </span> <span class="tooltip-label"> passing </span> </div></div></div></a></div> <a href="https://opentitan.org/book/hw/ip/tlul#top" style="display:contents"><div id="high-speed-crossbar" class="b100mhz block has-tooltip lowrisc-block lowrisc-crossbar" pos="1 10 27 4" style="--block-top:10;--block-left:1;--block-width:27;--block-height:4"> TL-UL<br>Crossbar <div class="block-focus" tabindex="2"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> HIGH-SPEED-CROSSBAR v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2 </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 900 </span> <span class="tooltip-label"> tests </span> <span class="rate-100 tooltip-report-tests tooltip-value"> 100% </span> <span class="tooltip-label"> passing </span> </div></div><div class="crossbar-background"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 356 53"><path vector-effect="non-scaling-stroke" d="m17.8 2.65 106.8 15.9M338.2 2.65l-106.8 15.9M338.2 50.35l-106.8-15.9M17.8 50.35l106.8-15.9"/></svg> </div></div></a></div> <div id="peripheral" class="domain lowrisc-block" pos="31 2 29 27" style="--block-top:2;--block-left:31;--block-width:29;--block-height:27"> <div class="lowrisc-block title" pos="1 0.5" style="--block-top:.5;--block-left:1">Peripheral Domain</div> <div class="lane lowrisc-block" pos="7.5 2" style="--block-top:2;--block-left:7.5"> <div pos="-1.5 1.5 15.5 0.5" horizontal center="y" class="lowrisc-arrow lowrisc-block" style="--block-top:1.5;--block-left:-1.5;--block-width:15.5;--block-height:.5;--offset-top:-.25"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 205 7"><path vector-effect="non-scaling-stroke" d="M4.2 0v-3.5L0 3.5l4.2 7V7h196.6v3.5l4.2-7-4.2-7V0Z"/></svg> </div> <a href="https://opentitan.org/book/hw/top_earlgrey/ip_autogen/alert_handler#top" style="display:contents"><div id="alert-handler" class="b24mhz block has-tooltip lowrisc-block" pos="14 0 6 3" style="--block-top:0;--block-left:14;--block-width:6;--block-height:3"> Alert<br>Handler <div class="block-focus" tabindex="23"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> ALERT-HANDLER v1.0 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 850 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 99% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/lc_ctrl#top" style="display:contents"><div id="life-cycle" class="b24mhz block has-tooltip lowrisc-block" pos="7 0 6 3" style="--block-top:0;--block-left:7;--block-width:6;--block-height:3"> Life<br>Cycle <div class="block-focus" tabindex="22"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> LIFE-CYCLE v1.0 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 970 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 95% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/otp_ctrl#top" style="display:contents"><div id="otp-fuse-controller" class="b24mhz block has-tooltip lowrisc-block" pos="0 0 6 3" style="--block-top:0;--block-left:0;--block-width:6;--block-height:3"> OTP (Fuse)<br>Controller <div class="block-focus" tabindex="21"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> OTP-FUSE-CONTROLLER v1.0 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 1193 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 99% </span> <span class="tooltip-label"> passing </span> </div></div></div></a></div> <div class="lane lowrisc-block" pos="7.5 6" style="--block-top:6;--block-left:7.5"> <div pos="-1.5 1.5 15.5 0.5" horizontal center="y" class="lowrisc-arrow lowrisc-block" style="--block-top:1.5;--block-left:-1.5;--block-width:15.5;--block-height:.5;--offset-top:-.25"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 205 7"><path vector-effect="non-scaling-stroke" d="M4.2 0v-3.5L0 3.5l4.2 7V7h196.6v3.5l4.2-7-4.2-7V0Z"/></svg> </div> <a href="https://opentitan.org/book/hw/ip/rv_timer#top" style="display:contents"><div id="timers" class="b24mhz block has-tooltip lowrisc-block" pos="7 0 6 3" style="--block-top:0;--block-left:7;--block-width:6;--block-height:3"> Timers <div class="block-focus" tabindex="25"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> TIMERS v1.0 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2 </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 620 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 98% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/uart#top" style="display:contents"><div id="uart" class="b24mhz block has-tooltip lowrisc-block" pos="0 0 6 3" style="--block-top:0;--block-left:0;--block-width:6;--block-height:3"> 4 × UART <div class="block-focus" tabindex="24"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> UART v1.1 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2 </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 1320 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 99% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/gpio#top" style="display:contents"><div id="gpio" class="b24mhz block has-tooltip lowrisc-block" pos="14 0 6 3" style="--block-top:0;--block-left:14;--block-width:6;--block-height:3"> GPIO <div class="block-focus" tabindex="26"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> GPIO v1.1 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2 </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 870 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 96% </span> <span class="tooltip-label"> passing </span> </div></div></div></a></div> <div class="lane lowrisc-block" pos="7.5 10" style="--block-top:10;--block-left:7.5"> <div pos="-1.5 1.5 15.5 0.5" horizontal center="y" class="lowrisc-arrow lowrisc-block" style="--block-top:1.5;--block-left:-1.5;--block-width:15.5;--block-height:.5;--offset-top:-.25"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 205 7"><path vector-effect="non-scaling-stroke" d="M4.2 0v-3.5L0 3.5l4.2 7V7h196.6v3.5l4.2-7-4.2-7V0Z"/></svg> </div> <a href="https://opentitan.org/book/hw/ip/pattgen#top" style="display:contents"><div id="pattern-generators" class="b24mhz block has-tooltip lowrisc-block" pos="14 0 6 3" style="--block-top:0;--block-left:14;--block-width:6;--block-height:3"> Pattern<br>Generators <div class="block-focus" tabindex="29"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> PATTERN-GENERATORS v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 520 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 98% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/spi_device#top" style="display:contents"><div id="spi-device" class="b24mhz block has-tooltip lowrisc-block" pos="7 0 6 3" style="--block-top:0;--block-left:7;--block-width:6;--block-height:3"> <div class="b100mhz lowrisc-block subdomain-badge" pos="0.5 0.5" style="--block-top:.5;--block-left:.5"></div> SPI<br>Device <div class="block-focus" tabindex="28"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> SPI-DEVICE v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 1820 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 97% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/i2c#top" style="display:contents"><div id="i2c" class="b24mhz block has-tooltip lowrisc-block" pos="0 0 6 3" style="--block-top:0;--block-left:0;--block-width:6;--block-height:3"> 3 × I²C <div class="block-focus" tabindex="27"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> I2C v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-warn tooltip-value"> V1 </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 1620 </span> <span class="tooltip-label"> tests </span> <span class="rate-80 tooltip-report-tests tooltip-value"> 84% </span> <span class="tooltip-label"> passing </span> </div></div></div></a></div> <div id="always-on" pos="-31 13" class="lowrisc-block" style="--block-top:13;--block-left:-31"> <div class="lowrisc-block title" pos="38.5 0.5 20" style="--block-top:.5;--block-left:38.5;--block-width:20"> Always-on Domain </div> <div class="bottom left lowrisc-block outline top" pos="0 16 37.75 5" style="--block-top:16;--block-left:0;--block-width:37.75;--block-height:5"> </div> <div class="bottom lowrisc-block outline" pos="37.75 16 21.5 5" style="--block-top:16;--block-left:37.75;--block-width:21.5;--block-height:5"> </div> <div class="bottom lowrisc-block outline right top" pos="59.25 16 1.75 5" style="--block-top:16;--block-left:59.25;--block-width:1.75;--block-height:5"> </div> <div class="left lowrisc-block outline right top" pos="37.75 0.3 21.5 15.8" style="--block-top:.3;--block-left:37.75;--block-width:21.5;--block-height:15.8"> </div> </div> <div class="lane lowrisc-block" pos="7.5 15" style="--block-top:15;--block-left:7.5"> <div pos="-1.5 1.5 15.5 0.5" horizontal center="y" class="lowrisc-arrow lowrisc-block" style="--block-top:1.5;--block-left:-1.5;--block-width:15.5;--block-height:.5;--offset-top:-.25"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 205 7"><path vector-effect="non-scaling-stroke" d="M4.2 0v-3.5L0 3.5l4.2 7V7h196.6v3.5l4.2-7-4.2-7V0Z"/></svg> </div> <div class="lowrisc-arrow lowrisc-block thin" pos="18 3 0 12" head="4 4" center="x" style="--block-top:3;--block-left:18;--block-width:0;--block-height:12"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 2 158"><path vector-effect="non-scaling-stroke" d="M0 8h-4l5-8 5 8H2v142h4l-5 8-5-8h4Z"/></svg> </div> <a href="https://opentitan.org/book/hw/ip/sram_ctrl#top" style="display:contents"><div id="retention-sram" class="b24mhz block has-tooltip lowrisc-block" pos="7 0 6 3" style="--block-top:0;--block-left:7;--block-width:6;--block-height:3"> Retention<br>SRAM <div class="block-focus" tabindex="31"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> RETENTION-SRAM v1.0 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 1040 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 99% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/pwrmgr#top" style="display:contents"><div id="power-manager" class="b24mhz block has-tooltip lowrisc-block" pos="14 0 6 3" style="--block-top:0;--block-left:14;--block-width:6;--block-height:3"> <div class="b200khz lowrisc-block subdomain-badge" pos="0.5 0.5" style="--block-top:.5;--block-left:.5"></div> Power<br>Manager <div class="block-focus" tabindex="32"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> POWER-MANAGER v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 1070 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 98% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/pwm#top" style="display:contents"><div id="pwm" class="b24mhz block has-tooltip lowrisc-block" pos="0 0 6 3" style="--block-top:0;--block-left:0;--block-width:6;--block-height:3"> <div class="b200khz lowrisc-block subdomain-badge" pos="0.5 0.5" style="--block-top:.5;--block-left:.5"></div> PWM <div class="block-focus" tabindex="30"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> PWM v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2S </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 420 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 98% </span> <span class="tooltip-label"> passing </span> </div></div></div></a></div> <div class="lane lowrisc-block" pos="7.5 19" style="--block-top:19;--block-left:7.5"> <div pos="-1.5 1.5 15.5 0.5" horizontal center="y" class="lowrisc-arrow lowrisc-block" style="--block-top:1.5;--block-left:-1.5;--block-width:15.5;--block-height:.5;--offset-top:-.25"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 205 7"><path vector-effect="non-scaling-stroke" d="M4.2 0v-3.5L0 3.5l4.2 7V7h196.6v3.5l4.2-7-4.2-7V0Z"/></svg> </div> <div class="lowrisc-arrow lowrisc-block thin" pos="17 3 0 8" head="4 4" center="x" style="--block-top:3;--block-left:17;--block-width:0;--block-height:8"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 2 106"><path vector-effect="non-scaling-stroke" d="M0 8h-4l5-8 5 8H2v90h4l-5 8-5-8h4Z"/></svg> </div> <a href="https://opentitan.org/book/hw/ip/clkmgr#top" style="display:contents"><div id="clkrst-managers" class="b24mhz block has-tooltip lowrisc-block" pos="14 0 6 3" style="--block-top:0;--block-left:14;--block-width:6;--block-height:3"> <div class="b200khz lowrisc-block subdomain-badge" pos="0.5 0.5" style="--block-top:.5;--block-left:.5"></div> Clk/Rst<br>Managers <div class="block-focus" tabindex="35"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> CLKRST-MANAGERS v1.0 </span> <span class="tooltip-badge tooltip-badge-warn tooltip-value"> D1 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-warn tooltip-value"> V1 </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 960 </span> <span class="tooltip-label"> tests </span> <span class="rate-100 tooltip-report-tests tooltip-value"> 100% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/sysrst_ctrl#top" style="display:contents"><div id="sysrst-controller" class="b24mhz block has-tooltip lowrisc-block" pos="0 0 6 3" style="--block-top:0;--block-left:0;--block-width:6;--block-height:3"> <div class="b200khz lowrisc-block subdomain-badge" pos="0.5 0.5" style="--block-top:.5;--block-left:.5"></div> Sysrst<br>Controller <div class="block-focus" tabindex="33"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> SYSRST-CONTROLLER v1.0 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 830 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 99% </span> <span class="tooltip-label"> passing </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/aon_timer#top" style="display:contents"><div id="aon-timers" class="b24mhz block has-tooltip lowrisc-block" pos="7 0 6 3" style="--block-top:0;--block-left:7;--block-width:6;--block-height:3"> <div class="b200khz lowrisc-block subdomain-badge" pos="0.5 0.5" style="--block-top:.5;--block-left:.5"></div> AON<br>Timers <div class="block-focus" tabindex="34"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> AON-TIMERS v1.0 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2 </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 430 </span> <span class="tooltip-label"> tests </span> <span class="rate-100 tooltip-report-tests tooltip-value"> 100% </span> <span class="tooltip-label"> passing </span> </div></div></div></a></div> <div class="lane lowrisc-block" pos="7.5 23" style="--block-top:23;--block-left:7.5"> <div pos="-1.5 1.5 15.5 0.5" horizontal center="y" class="lowrisc-arrow lowrisc-block" style="--block-top:1.5;--block-left:-1.5;--block-width:15.5;--block-height:.5;--offset-top:-.25"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 205 7"><path vector-effect="non-scaling-stroke" d="M4.2 0v-3.5L0 3.5l4.2 7V7h196.6v3.5l4.2-7-4.2-7V0Z"/></svg> </div> <div class="lowrisc-arrow lowrisc-block thin" pos="16 3 0 4" head="4 4" center="x" style="--block-top:3;--block-left:16;--block-width:0;--block-height:4"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 2 53"><path vector-effect="non-scaling-stroke" d="M0 8h-4l5-8 5 8H2v37h4l-5 8-5-8h4Z"/></svg> </div> <div class="lowrisc-arrow lowrisc-block thin" pos="10 3 0 4" head="4 4" center="x" style="--block-top:3;--block-left:10;--block-width:0;--block-height:4"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 2 53"><path vector-effect="non-scaling-stroke" d="M0 8h-4l5-8 5 8H2v37h4l-5 8-5-8h4Z"/></svg> </div> <div class="lowrisc-arrow lowrisc-block thin" pos="3 3 0 4" head="4 4" center="x" style="--block-top:3;--block-left:3;--block-width:0;--block-height:4"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 2 53"><path vector-effect="non-scaling-stroke" d="M0 8h-4l5-8 5 8H2v37h4l-5 8-5-8h4Z"/></svg> </div> <a href="https://opentitan.org/book/hw/ip/pinmux#top" style="display:contents"><div id="pinmux-padctrl" class="b24mhz block has-tooltip lowrisc-block" pos="0 0 6 3" style="--block-top:0;--block-left:0;--block-width:6;--block-height:3"> Pinmux /<br>Padctrl <div class="block-focus" tabindex="36"></div><div class="diagram-tooltip"><div class="tooltip-box"> <span class="tooltip-title"> PINMUX-PADCTRL v1.0 </span> <span class="tooltip-badge tooltip-badge-warn tooltip-value"> D1 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-warn tooltip-value"> V1 </span> <span class="tooltip-label"> verification </span> </div></div></div></a><a href="https://opentitan.org/book/hw/top_earlgrey/ip/sensor_ctrl#top" style="display:contents"><div id="sensor-control" class="b24mhz block has-tooltip lowrisc-block" pos="14 0 6 3" style="--block-top:0;--block-left:14;--block-width:6;--block-height:3"> <div class="b200khz lowrisc-block subdomain-badge" pos="0.5 0.5" style="--block-top:.5;--block-left:.5"></div> Sensor<br>Control <div class="block-focus" tabindex="38"></div><div class="diagram-tooltip"><div class="tooltip-box"> <span class="tooltip-title"> SENSOR-CONTROL v1.0 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-none tooltip-value"> N/A </span> <span class="tooltip-label"> verification </span> </div></div></div></a><a href="https://opentitan.org/book/hw/ip/adc_ctrl#top" style="display:contents"><div id="adc-controller" class="b24mhz block has-tooltip lowrisc-block" pos="7 0 6 3" style="--block-top:0;--block-left:7;--block-width:6;--block-height:3"> <div class="b200khz lowrisc-block subdomain-badge" pos="0.5 0.5" style="--block-top:.5;--block-left:.5"></div> ADC<br>Controller <div class="block-focus" tabindex="37"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> ADC-CONTROLLER v1.0 </span> <span class="tooltip-badge tooltip-badge-good tooltip-value"> D3 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 920 </span> <span class="tooltip-label"> tests </span> <span class="rate-95 tooltip-report-tests tooltip-value"> 96% </span> <span class="tooltip-label"> passing </span> </div></div></div></a></div> <a href="https://opentitan.org/book/hw/ip/tlul#top" style="display:contents"><div id="peripheral-crossbar" class="b24mhz block has-tooltip lowrisc-block lowrisc-crossbar" pos="1 2 5 24" style="--block-top:2;--block-left:1;--block-width:5;--block-height:24"> TL-UL<br>Crossbar <div class="block-focus" tabindex="20"></div><div class="diagram-tooltip"><div class="has-report tooltip-box"> <span class="tooltip-title"> PERIPHERAL-CROSSBAR v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2 </span> <span class="tooltip-label"> verification </span> <span class="tooltip-divider"></span> <span class="tooltip-value"> 900 </span> <span class="tooltip-label"> tests </span> <span class="rate-100 tooltip-report-tests tooltip-value"> 100% </span> <span class="tooltip-label"> passing </span> </div></div><div class="crossbar-background"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 66 317"><path vector-effect="non-scaling-stroke" d="m3.3 15.85 19.8 95.1M62.7 15.85l-19.8 95.1M62.7 301.15l-19.8-95.1M3.3 301.15l19.8-95.1"/></svg> </div></div></a></div> <div pos="29 14 3 0.5" horizontal center="y" class="lowrisc-arrow lowrisc-block" style="--block-top:14;--block-left:29;--block-width:3;--block-height:.5;--offset-top:-.25"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 40 7"><path vector-effect="non-scaling-stroke" d="M4.2 0v-3.5L0 3.5l4.2 7V7h31.6v3.5l4.2-7-4.2-7V0Z"/></svg> </div> </div> <div class="lowrisc-arrow lowrisc-block thin" pos="45 36.5 2" head="4 4" horizontal center="y" style="--block-top:36.5;--block-left:45;--block-width:2"> <svg overflow="visible" shape-rendering="geometricPrecision" preserveAspectRatio="none" viewBox="0 0 26 2"><path vector-effect="non-scaling-stroke" d="M8 0v-4L0 1l8 5V2h10v4l8-5-8-5v4Z"/></svg> </div> <div id="clock-speeds" pos="1 40" class="lowrisc-block" style="--block-top:40;--block-left:1"> <div class="b100mhz lowrisc-block subdomain-badge" pos="0 0 6 2" style="--block-top:0;--block-left:0;--block-width:6;--block-height:2"> ~100 MHz </div> <div class="b96mhz lowrisc-block subdomain-badge" pos="7 0 6 2" style="--block-top:0;--block-left:7;--block-width:6;--block-height:2"> 96 MHz </div> <div class="b48mhz lowrisc-block subdomain-badge" pos="14 0 6 2" style="--block-top:0;--block-left:14;--block-width:6;--block-height:2"> 48 MHz </div> <div class="b24mhz lowrisc-block subdomain-badge" pos="21 0 6 2" style="--block-top:0;--block-left:21;--block-width:6;--block-height:2"> 24 MHz </div> <div class="b200khz lowrisc-block subdomain-badge" pos="28 0 6 2" style="--block-top:0;--block-left:28;--block-width:6;--block-height:2"> 200 kHz </div> <div class="blogic lowrisc-block subdomain-badge" pos="35 0 6 2" style="--block-top:0;--block-left:35;--block-width:6;--block-height:2"> Logic Only </div> </div> <a href="https://opentitan.org/book/" style="display:contents"><div id="opentitan-logo" pos="60 0.5 2 2" class="has-tooltip lowrisc-block" style="--block-top:.5;--block-left:60;--block-width:2;--block-height:2"> <svg viewBox="-61.201 21.594 52.52 52.52"><path d="M-9.634 51.625h-6.561v-1.853h-6.562a.904.904 0 0 0-.926.926v8.414h-8.467a.943.943 0 0 0-.926.953v6.561h1.879v6.562c0 .53.423.926.952.926h5.61c.529 0 .952-.397.952-.926v-6.562h7.488v-7.514h6.561c.53 0 .953-.397.953-.926v-5.635c0-.53-.424-.926-.953-.926zm-28.125 7.487h-8.44v-8.414a.943.943 0 0 0-.926-.952h-6.562v1.879h-6.562a.943.943 0 0 0-.952.926v5.635c0 .53.423.926.952.926h6.562v7.514h7.461v6.562c0 .53.424.926.953.926h5.609c.53 0 .953-.397.953-.926v-6.562h1.852v-6.561c0-.53-.397-.953-.926-.953zm-22.49-14.975h6.562v1.852h6.562c.529 0 .926-.397.926-.926v-8.44h8.466a.937.937 0 0 0 .927-.926v-6.562h-1.879v-6.588a.949.949 0 0 0-.953-.953h-5.609a.949.949 0 0 0-.952.953v6.561h-7.488v7.488h-6.562a.943.943 0 0 0-.952.926v5.662c0 .53.423.953.952.953zm28.126-7.514h8.44v8.44c0 .529.423.926.926.926h6.562v-1.852h6.561c.53 0 .953-.424.953-.953V37.55c0-.53-.424-.926-.953-.926h-6.561v-7.488h-7.488v-6.588a.949.949 0 0 0-.953-.953h-5.609a.949.949 0 0 0-.952.953v6.561h-1.852v6.562c0 .53.396.926.926.926zm-10.32 18.759h15.003V40.38h-15.002v14.975z"/></svg> <div class="block-focus" tabindex="1"></div><div class="diagram-tooltip"><div class="tooltip-box"> <span class="tooltip-title"> OPENTITAN </span> </div></div></div></a><a href="https://opentitan.org/book/hw/top_earlgrey/ip/ast#top" style="display:contents"><div id="analog-sensor-top" class="b24mhz block has-tooltip lowrisc-block" pos="47 35 14" style="--block-top:35;--block-left:47;--block-width:14"> <div class="b48mhz lowrisc-block subdomain-badge" pos="0.5 0.5" style="--block-top:.5;--block-left:.5"></div> <div class="b200khz lowrisc-block subdomain-badge" pos="0.5 1.75" style="--block-top:1.75;--block-left:.5"></div> Analog Sensor Top <div class="block-focus" tabindex="39"></div><div class="diagram-tooltip"><div class="tooltip-box"> <span class="tooltip-title"> ANALOG-SENSOR-TOP v1.0 </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> D2 </span> <span class="tooltip-label"> design </span> <span class="tooltip-badge tooltip-badge-prettygood tooltip-value"> V2S </span> <span class="tooltip-label"> verification </span> </div></div></div></a><a href="https://opentitan.org/book/hw/top_earlgrey/ip/pinmux/doc/autogen/pinout_asic/" style="display:contents"><div id="padding" class="block blogic has-tooltip lowrisc-block" pos="2 35 43" style="--block-top:35;--block-left:2;--block-width:43"> Padding (only wire and pad instances) <div class="block-focus" tabindex="40"></div><div class="diagram-tooltip"><div class="tooltip-box"> <span class="tooltip-title"> PADDING </span> </div></div></div></a></div> </div>
diff --git a/util/site/build-docs.sh b/util/site/build-docs.sh
index 8522dd4..30b9041 100755
--- a/util/site/build-docs.sh
+++ b/util/site/build-docs.sh
@@ -45,6 +45,18 @@
 ################
 
 checkDeps () {
+    # Check for node dep
+    if command -v npm >/dev/null && node --version 2>&1 | grep -E '^v(1[4-9]|2[0-9])\.' > /dev/null 2>&1; then
+        HAS_NODE=1
+    else
+        HAS_NODE=0
+        echo "W: npm or node^14.0 not found - block diagram will not be built" >&2
+        echo "W: You can install with nvm:" >&2
+        echo "w:    $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash" >&2
+        echo "w:    $ source ~/.bashrc" >&2
+        echo "w:    $ nvm install -lts" >&2
+    fi
+
     # Check for mdbook dep
     if ! command -v mdbook >/dev/null; then
         echo "E: mdbook not found, please install from your package manager or with:" >&2
@@ -148,6 +160,14 @@
     mkdir -p "${build_dir}"
     mkdir -p "${build_dir}/gen/doxy"
 
+    if [ "$HAS_NODE" == "1" ]; then
+        echo "Building earlgrey diagram..."
+        npm --prefix "${proj_root}/site/earlgrey-diagram" install
+        npm --prefix "${proj_root}/site/earlgrey-diagram" run build
+        npm --prefix "${proj_root}/site/earlgrey-diagram" run deploy
+        echo "Earlgrey diagram build complete."
+    fi
+
     echo "Building doxygen..."
     pushd "${this_dir}" >/dev/null
     # shellcheck disable=SC2086
diff --git a/util/site/site-builder/builder.Dockerfile b/util/site/site-builder/builder.Dockerfile
index eb5e413..17e2aa5 100644
--- a/util/site/site-builder/builder.Dockerfile
+++ b/util/site/site-builder/builder.Dockerfile
@@ -18,7 +18,27 @@
 
 RUN mkdir -p /tools
 
+##############
+### nodejs ###
+##############
 
+# Install nodejs
+ENV NVM_DIR "/tools/.nvm"
+ENV PATH "/tools/.nvm/versions/node/v18.7.0/bin:${PATH}"
+RUN mkdir /tools/.nvm \
+    && curl -so- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash \
+    && . "/tools/.nvm/nvm.sh" \
+    && nvm install v18.7.0
+
+# Install chrome-unstable for puppeteer
+RUN curl -so/tmp/chrome.deb https://dl.google.com/linux/direct/google-chrome-unstable_current_amd64.deb \
+    && apt-get install -y --no-install-recommends /tmp/chrome.deb
+
+# Create and prepopulate npm and puppeteer caches
+ENV PUPPETEER_CACHE_DIR "/tools/.puppeteer"
+ENV npm_config_cache "/tools/.npm"
+COPY site/earlgrey-diagram/package*.json /tmp/site/earlgrey-diagram/
+RUN npm --prefix /tmp/site/earlgrey-diagram/ install
 
 ############
 ### rust ###
@@ -41,6 +61,7 @@
 # Python version. If that information is not read, pip installs the latest
 # version, which then fails to run.
 COPY python-requirements.txt ./
+ENV PATH "/root/.local/bin:${PATH}"
 RUN python3 -m pip install -U pip "setuptools<66.0.0" \
   && pip3 install -r python-requirements.txt