From 23e037fb147268299704473991d2eac1e5696ef2 Mon Sep 17 00:00:00 2001
From: snyk-bot <snyk-bot@snyk.io>
Date: Fri, 23 Aug 2024 05:46:25 +0000
Subject: [PATCH] feat: upgrade firebase-admin from 11.3.0 to 12.3.0

Snyk has created this PR to upgrade firebase-admin from 11.3.0 to 12.3.0.

See this package in npm:
firebase-admin

See this project in Snyk:
https://app.snyk.io/org/aravindvnair99-github-marketplace/project/3e229b24-b2de-4c21-9d58-eebf425f44fc?utm_source=github&utm_medium=referral&page=upgrade-pr
---
 functions/package-lock.json | 2513 +++++++++++++++--------------------
 functions/package.json      |    2 +-
 2 files changed, 1096 insertions(+), 1419 deletions(-)

diff --git a/functions/package-lock.json b/functions/package-lock.json
index 1c1d8ad2..b06c777c 100644
--- a/functions/package-lock.json
+++ b/functions/package-lock.json
@@ -17,7 +17,7 @@
 				"busboy": "^0.3.1",
 				"cookie-parser": "^1.4.6",
 				"ejs": "^3.1.7",
-				"firebase-admin": "^11.3.0",
+				"firebase-admin": "^12.3.0",
 				"firebase-functions": "^4.2.1",
 				"vader-sentiment": "^1.1.3"
 			},
@@ -431,7 +431,8 @@
 			"version": "7.20.5",
 			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz",
 			"integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==",
-			"devOptional": true,
+			"dev": true,
+			"peer": true,
 			"bin": {
 				"parser": "bin/babel-parser.js"
 			},
@@ -756,203 +757,208 @@
 			}
 		},
 		"node_modules/@fastify/busboy": {
-			"version": "1.1.0",
-			"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-1.1.0.tgz",
-			"integrity": "sha512-Fv854f94v0CzIDllbY3i/0NJPNBRNLDawf3BTYVGCe9VrIIs3Wi7AFx24F9NzCxdf0wyx/x0Q9kEVnvDOPnlxA==",
-			"dependencies": {
-				"text-decoding": "^1.0.0"
-			},
-			"engines": {
-				"node": ">=10.17.0"
-			}
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.0.0.tgz",
+			"integrity": "sha512-83rnH2nCvclWaPQQKvkJ2pdOjG4TZyEVuFDnlOF6KP08lDaaceVyw/W63mDuafQT+MKHCvXIPpE5uYWeM0rT4w==",
+			"license": "MIT"
+		},
+		"node_modules/@firebase/app-check-interop-types": {
+			"version": "0.3.2",
+			"resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz",
+			"integrity": "sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ==",
+			"license": "Apache-2.0"
 		},
 		"node_modules/@firebase/app-types": {
-			"version": "0.9.0",
-			"resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.0.tgz",
-			"integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q==",
-			"peer": true
+			"version": "0.9.2",
+			"resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.2.tgz",
+			"integrity": "sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ==",
+			"license": "Apache-2.0"
 		},
 		"node_modules/@firebase/auth-interop-types": {
-			"version": "0.1.7",
-			"resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.7.tgz",
-			"integrity": "sha512-yA/dTveGGPcc85JP8ZE/KZqfGQyQTBCV10THdI8HTlP1GDvNrhr//J5jAt58MlsCOaO3XmC4DqScPBbtIsR/EA==",
-			"peerDependencies": {
-				"@firebase/app-types": "0.x",
-				"@firebase/util": "1.x"
-			}
+			"version": "0.2.3",
+			"resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz",
+			"integrity": "sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ==",
+			"license": "Apache-2.0"
 		},
 		"node_modules/@firebase/component": {
-			"version": "0.5.21",
-			"resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.5.21.tgz",
-			"integrity": "sha512-12MMQ/ulfygKpEJpseYMR0HunJdlsLrwx2XcEs40M18jocy2+spyzHHEwegN3x/2/BLFBjR5247Etmz0G97Qpg==",
+			"version": "0.6.8",
+			"resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.8.tgz",
+			"integrity": "sha512-LcNvxGLLGjBwB0dJUsBGCej2fqAepWyBubs4jt1Tiuns7QLbXHuyObZ4aMeBjZjWx4m8g1LoVI9QFpSaq/k4/g==",
+			"license": "Apache-2.0",
 			"dependencies": {
-				"@firebase/util": "1.7.3",
+				"@firebase/util": "1.9.7",
 				"tslib": "^2.1.0"
 			}
 		},
 		"node_modules/@firebase/database": {
-			"version": "0.13.10",
-			"resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.13.10.tgz",
-			"integrity": "sha512-KRucuzZ7ZHQsRdGEmhxId5jyM2yKsjsQWF9yv0dIhlxYg0D8rCVDZc/waoPKA5oV3/SEIoptF8F7R1Vfe7BCQA==",
-			"dependencies": {
-				"@firebase/auth-interop-types": "0.1.7",
-				"@firebase/component": "0.5.21",
-				"@firebase/logger": "0.3.4",
-				"@firebase/util": "1.7.3",
+			"version": "1.0.7",
+			"resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.7.tgz",
+			"integrity": "sha512-wjXr5AO8RPxVVg7rRCYffT7FMtBjHRfJ9KMwi19MbOf0vBf0H9YqW3WCgcnLpXI6ehiUcU3z3qgPnnU0nK6SnA==",
+			"license": "Apache-2.0",
+			"dependencies": {
+				"@firebase/app-check-interop-types": "0.3.2",
+				"@firebase/auth-interop-types": "0.2.3",
+				"@firebase/component": "0.6.8",
+				"@firebase/logger": "0.4.2",
+				"@firebase/util": "1.9.7",
 				"faye-websocket": "0.11.4",
 				"tslib": "^2.1.0"
 			}
 		},
 		"node_modules/@firebase/database-compat": {
-			"version": "0.2.10",
-			"resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.2.10.tgz",
-			"integrity": "sha512-fK+IgUUqVKcWK/gltzDU+B1xauCOfY6vulO8lxoNTkcCGlSxuTtwsdqjGkFmgFRMYjXFWWJ6iFcJ/vXahzwCtA==",
-			"dependencies": {
-				"@firebase/component": "0.5.21",
-				"@firebase/database": "0.13.10",
-				"@firebase/database-types": "0.9.17",
-				"@firebase/logger": "0.3.4",
-				"@firebase/util": "1.7.3",
+			"version": "1.0.7",
+			"resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.7.tgz",
+			"integrity": "sha512-R/3B+VVzEFN5YcHmfWns3eitA8fHLTL03io+FIoMcTYkajFnrBdS3A+g/KceN9omP7FYYYGTQWF9lvbEx6eMEg==",
+			"license": "Apache-2.0",
+			"dependencies": {
+				"@firebase/component": "0.6.8",
+				"@firebase/database": "1.0.7",
+				"@firebase/database-types": "1.0.4",
+				"@firebase/logger": "0.4.2",
+				"@firebase/util": "1.9.7",
 				"tslib": "^2.1.0"
 			}
 		},
 		"node_modules/@firebase/database-types": {
-			"version": "0.9.17",
-			"resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.9.17.tgz",
-			"integrity": "sha512-YQm2tCZyxNtEnlS5qo5gd2PAYgKCy69tUKwioGhApCFThW+mIgZs7IeYeJo2M51i4LCixYUl+CvnOyAnb/c3XA==",
+			"version": "1.0.4",
+			"resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.4.tgz",
+			"integrity": "sha512-mz9ZzbH6euFXbcBo+enuJ36I5dR5w+enJHHjy9Y5ThCdKUseqfDjW3vCp1YxE9zygFCSjJJ/z1cQ+zodvUcwPQ==",
+			"license": "Apache-2.0",
 			"dependencies": {
-				"@firebase/app-types": "0.8.1",
-				"@firebase/util": "1.7.3"
+				"@firebase/app-types": "0.9.2",
+				"@firebase/util": "1.9.7"
 			}
 		},
-		"node_modules/@firebase/database-types/node_modules/@firebase/app-types": {
-			"version": "0.8.1",
-			"resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.8.1.tgz",
-			"integrity": "sha512-p75Ow3QhB82kpMzmOntv866wH9eZ3b4+QbUY+8/DA5Zzdf1c8Nsk8B7kbFpzJt4wwHMdy5LTF5YUnoTc1JiWkw=="
-		},
 		"node_modules/@firebase/logger": {
-			"version": "0.3.4",
-			"resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.3.4.tgz",
-			"integrity": "sha512-hlFglGRgZEwoyClZcGLx/Wd+zoLfGmbDkFx56mQt/jJ0XMbfPqwId1kiPl0zgdWZX+D8iH+gT6GuLPFsJWgiGw==",
+			"version": "0.4.2",
+			"resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.2.tgz",
+			"integrity": "sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A==",
+			"license": "Apache-2.0",
 			"dependencies": {
 				"tslib": "^2.1.0"
 			}
 		},
 		"node_modules/@firebase/util": {
-			"version": "1.7.3",
-			"resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.7.3.tgz",
-			"integrity": "sha512-wxNqWbqokF551WrJ9BIFouU/V5SL1oYCGx1oudcirdhadnQRFH5v1sjgGL7cUV/UsekSycygphdrF2lxBxOYKg==",
+			"version": "1.9.7",
+			"resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.7.tgz",
+			"integrity": "sha512-fBVNH/8bRbYjqlbIhZ+lBtdAAS4WqZumx03K06/u7fJSpz1TGjEMm1ImvKD47w+xaFKIP2ori6z8BrbakRfjJA==",
+			"license": "Apache-2.0",
 			"dependencies": {
 				"tslib": "^2.1.0"
 			}
 		},
 		"node_modules/@google-cloud/firestore": {
-			"version": "6.4.1",
-			"resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-6.4.1.tgz",
-			"integrity": "sha512-5q4sl1XCL8NH2y82KZ4WQGHDOPnrSMYq3JpIeKD5C0OCSb4MfckOTB9LeAQ3p5tlL+7UsVRHj0SyzKz27XZJjw==",
+			"version": "7.9.0",
+			"resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.9.0.tgz",
+			"integrity": "sha512-c4ALHT3G08rV7Zwv8Z2KG63gZh66iKdhCBeDfCpIkLrjX6EAjTD/szMdj14M+FnQuClZLFfW5bAgoOjfNmLtJg==",
+			"license": "Apache-2.0",
 			"optional": true,
 			"dependencies": {
 				"fast-deep-equal": "^3.1.1",
 				"functional-red-black-tree": "^1.0.1",
-				"google-gax": "^3.5.1",
-				"protobufjs": "^7.0.0"
+				"google-gax": "^4.3.3",
+				"protobufjs": "^7.2.6"
 			},
 			"engines": {
-				"node": ">=12.0.0"
+				"node": ">=14.0.0"
 			}
 		},
 		"node_modules/@google-cloud/paginator": {
-			"version": "3.0.7",
-			"resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz",
-			"integrity": "sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==",
+			"version": "5.0.2",
+			"resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz",
+			"integrity": "sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==",
+			"license": "Apache-2.0",
 			"optional": true,
 			"dependencies": {
 				"arrify": "^2.0.0",
 				"extend": "^3.0.2"
 			},
 			"engines": {
-				"node": ">=10"
+				"node": ">=14.0.0"
 			}
 		},
 		"node_modules/@google-cloud/projectify": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-3.0.0.tgz",
-			"integrity": "sha512-HRkZsNmjScY6Li8/kb70wjGlDDyLkVk3KvoEo9uIoxSjYLJasGiCch9+PqRVDOCGUFvEIqyogl+BeqILL4OJHA==",
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz",
+			"integrity": "sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==",
+			"license": "Apache-2.0",
 			"optional": true,
 			"engines": {
-				"node": ">=12.0.0"
+				"node": ">=14.0.0"
 			}
 		},
 		"node_modules/@google-cloud/promisify": {
-			"version": "3.0.1",
-			"resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-3.0.1.tgz",
-			"integrity": "sha512-z1CjRjtQyBOYL+5Qr9DdYIfrdLBe746jRTYfaYU6MeXkqp7UfYs/jX16lFFVzZ7PGEJvqZNqYUEtb1mvDww4pA==",
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz",
+			"integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==",
+			"license": "Apache-2.0",
 			"optional": true,
 			"engines": {
-				"node": ">=12"
+				"node": ">=14"
 			}
 		},
 		"node_modules/@google-cloud/storage": {
-			"version": "6.8.0",
-			"resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.8.0.tgz",
-			"integrity": "sha512-eRGsHrhVA7NORehYW9jLUWHRzYqFxbYiG3LQL50ZhjMekDwzhPKUQ7wbjAji9OFcO3Mk8jeNHeWdpAc/QZANCg==",
+			"version": "7.12.1",
+			"resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.12.1.tgz",
+			"integrity": "sha512-Z3ZzOnF3YKLuvpkvF+TjQ6lztxcAyTILp+FjKonmVpEwPa9vFvxpZjubLR4sB6bf19i/8HL2AXRjA0YFgHFRmQ==",
+			"license": "Apache-2.0",
 			"optional": true,
 			"dependencies": {
-				"@google-cloud/paginator": "^3.0.7",
-				"@google-cloud/projectify": "^3.0.0",
-				"@google-cloud/promisify": "^3.0.0",
+				"@google-cloud/paginator": "^5.0.0",
+				"@google-cloud/projectify": "^4.0.0",
+				"@google-cloud/promisify": "^4.0.0",
 				"abort-controller": "^3.0.0",
 				"async-retry": "^1.3.3",
-				"compressible": "^2.0.12",
-				"duplexify": "^4.0.0",
-				"ent": "^2.2.0",
-				"extend": "^3.0.2",
-				"gaxios": "^5.0.0",
-				"google-auth-library": "^8.0.1",
+				"duplexify": "^4.1.3",
+				"fast-xml-parser": "^4.4.1",
+				"gaxios": "^6.0.2",
+				"google-auth-library": "^9.6.3",
+				"html-entities": "^2.5.2",
 				"mime": "^3.0.0",
-				"mime-types": "^2.0.8",
 				"p-limit": "^3.0.1",
-				"retry-request": "^5.0.0",
-				"teeny-request": "^8.0.0",
+				"retry-request": "^7.0.0",
+				"teeny-request": "^9.0.0",
 				"uuid": "^8.0.0"
 			},
 			"engines": {
-				"node": ">=12"
+				"node": ">=14"
 			}
 		},
 		"node_modules/@google-cloud/storage/node_modules/uuid": {
 			"version": "8.3.2",
 			"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
 			"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+			"license": "MIT",
 			"optional": true,
 			"bin": {
 				"uuid": "dist/bin/uuid"
 			}
 		},
 		"node_modules/@grpc/grpc-js": {
-			"version": "1.7.3",
-			"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz",
-			"integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==",
+			"version": "1.11.1",
+			"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.11.1.tgz",
+			"integrity": "sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==",
+			"license": "Apache-2.0",
 			"optional": true,
 			"dependencies": {
-				"@grpc/proto-loader": "^0.7.0",
-				"@types/node": ">=12.12.47"
+				"@grpc/proto-loader": "^0.7.13",
+				"@js-sdsl/ordered-map": "^4.4.2"
 			},
 			"engines": {
-				"node": "^8.13.0 || >=10.10.0"
+				"node": ">=12.10.0"
 			}
 		},
 		"node_modules/@grpc/proto-loader": {
-			"version": "0.7.4",
-			"resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.4.tgz",
-			"integrity": "sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w==",
+			"version": "0.7.13",
+			"resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz",
+			"integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==",
+			"license": "Apache-2.0",
 			"optional": true,
 			"dependencies": {
-				"@types/long": "^4.0.1",
 				"lodash.camelcase": "^4.3.0",
-				"long": "^4.0.0",
-				"protobufjs": "^7.0.0",
-				"yargs": "^16.2.0"
+				"long": "^5.0.0",
+				"protobufjs": "^7.2.5",
+				"yargs": "^17.7.2"
 			},
 			"bin": {
 				"proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
@@ -961,6 +967,82 @@
 				"node": ">=6"
 			}
 		},
+		"node_modules/@grpc/proto-loader/node_modules/cliui": {
+			"version": "8.0.1",
+			"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+			"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+			"license": "ISC",
+			"optional": true,
+			"dependencies": {
+				"string-width": "^4.2.0",
+				"strip-ansi": "^6.0.1",
+				"wrap-ansi": "^7.0.0"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@grpc/proto-loader/node_modules/is-fullwidth-code-point": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+			"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+			"license": "MIT",
+			"optional": true,
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/@grpc/proto-loader/node_modules/long": {
+			"version": "5.2.3",
+			"resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz",
+			"integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==",
+			"license": "Apache-2.0",
+			"optional": true
+		},
+		"node_modules/@grpc/proto-loader/node_modules/string-width": {
+			"version": "4.2.3",
+			"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+			"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+			"license": "MIT",
+			"optional": true,
+			"dependencies": {
+				"emoji-regex": "^8.0.0",
+				"is-fullwidth-code-point": "^3.0.0",
+				"strip-ansi": "^6.0.1"
+			},
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/@grpc/proto-loader/node_modules/yargs": {
+			"version": "17.7.2",
+			"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+			"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+			"license": "MIT",
+			"optional": true,
+			"dependencies": {
+				"cliui": "^8.0.1",
+				"escalade": "^3.1.1",
+				"get-caller-file": "^2.0.5",
+				"require-directory": "^2.1.1",
+				"string-width": "^4.2.3",
+				"y18n": "^5.0.5",
+				"yargs-parser": "^21.1.1"
+			},
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/@grpc/proto-loader/node_modules/yargs-parser": {
+			"version": "21.1.1",
+			"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+			"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+			"license": "ISC",
+			"optional": true,
+			"engines": {
+				"node": ">=12"
+			}
+		},
 		"node_modules/@humanwhocodes/config-array": {
 			"version": "0.11.13",
 			"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
@@ -1445,6 +1527,17 @@
 				"@jridgewell/sourcemap-codec": "1.4.14"
 			}
 		},
+		"node_modules/@js-sdsl/ordered-map": {
+			"version": "4.4.2",
+			"resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz",
+			"integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==",
+			"license": "MIT",
+			"optional": true,
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/js-sdsl"
+			}
+		},
 		"node_modules/@mapbox/node-pre-gyp": {
 			"version": "1.0.4",
 			"resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.4.tgz",
@@ -1605,42 +1698,39 @@
 				"node": ">= 8"
 			}
 		},
-		"node_modules/@panva/asn1.js": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz",
-			"integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==",
-			"engines": {
-				"node": ">=10.13.0"
-			}
-		},
 		"node_modules/@protobufjs/aspromise": {
 			"version": "1.1.2",
 			"resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
 			"integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
+			"license": "BSD-3-Clause",
 			"optional": true
 		},
 		"node_modules/@protobufjs/base64": {
 			"version": "1.1.2",
 			"resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
 			"integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
+			"license": "BSD-3-Clause",
 			"optional": true
 		},
 		"node_modules/@protobufjs/codegen": {
 			"version": "2.0.4",
 			"resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
 			"integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
+			"license": "BSD-3-Clause",
 			"optional": true
 		},
 		"node_modules/@protobufjs/eventemitter": {
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
 			"integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
+			"license": "BSD-3-Clause",
 			"optional": true
 		},
 		"node_modules/@protobufjs/fetch": {
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
 			"integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
+			"license": "BSD-3-Clause",
 			"optional": true,
 			"dependencies": {
 				"@protobufjs/aspromise": "^1.1.1",
@@ -1651,30 +1741,35 @@
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
 			"integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
+			"license": "BSD-3-Clause",
 			"optional": true
 		},
 		"node_modules/@protobufjs/inquire": {
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
 			"integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
+			"license": "BSD-3-Clause",
 			"optional": true
 		},
 		"node_modules/@protobufjs/path": {
 			"version": "1.1.2",
 			"resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
 			"integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
+			"license": "BSD-3-Clause",
 			"optional": true
 		},
 		"node_modules/@protobufjs/pool": {
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
 			"integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
+			"license": "BSD-3-Clause",
 			"optional": true
 		},
 		"node_modules/@protobufjs/utf8": {
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
 			"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
+			"license": "BSD-3-Clause",
 			"optional": true
 		},
 		"node_modules/@sinclair/typebox": {
@@ -1899,6 +1994,7 @@
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
 			"integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
+			"license": "MIT",
 			"optional": true,
 			"engines": {
 				"node": ">= 10"
@@ -1958,6 +2054,13 @@
 				"@types/node": "*"
 			}
 		},
+		"node_modules/@types/caseless": {
+			"version": "0.12.5",
+			"resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz",
+			"integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==",
+			"license": "MIT",
+			"optional": true
+		},
 		"node_modules/@types/connect": {
 			"version": "3.4.35",
 			"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
@@ -1982,13 +2085,15 @@
 			}
 		},
 		"node_modules/@types/express-serve-static-core": {
-			"version": "4.17.24",
-			"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz",
-			"integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==",
+			"version": "4.19.5",
+			"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz",
+			"integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==",
+			"license": "MIT",
 			"dependencies": {
 				"@types/node": "*",
 				"@types/qs": "*",
-				"@types/range-parser": "*"
+				"@types/range-parser": "*",
+				"@types/send": "*"
 			}
 		},
 		"node_modules/@types/graceful-fs": {
@@ -2029,19 +2134,14 @@
 			}
 		},
 		"node_modules/@types/jsonwebtoken": {
-			"version": "8.5.9",
-			"resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz",
-			"integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==",
+			"version": "9.0.6",
+			"resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.6.tgz",
+			"integrity": "sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==",
+			"license": "MIT",
 			"dependencies": {
 				"@types/node": "*"
 			}
 		},
-		"node_modules/@types/linkify-it": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz",
-			"integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==",
-			"optional": true
-		},
 		"node_modules/@types/lodash": {
 			"version": "4.14.176",
 			"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.176.tgz",
@@ -2053,31 +2153,19 @@
 			"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
 			"integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w=="
 		},
-		"node_modules/@types/markdown-it": {
-			"version": "12.2.3",
-			"resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz",
-			"integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==",
-			"optional": true,
-			"dependencies": {
-				"@types/linkify-it": "*",
-				"@types/mdurl": "*"
-			}
-		},
-		"node_modules/@types/mdurl": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz",
-			"integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==",
-			"optional": true
-		},
 		"node_modules/@types/mime": {
 			"version": "1.3.2",
 			"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
 			"integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
 		},
 		"node_modules/@types/node": {
-			"version": "16.11.6",
-			"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz",
-			"integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w=="
+			"version": "20.16.1",
+			"resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.1.tgz",
+			"integrity": "sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==",
+			"license": "MIT",
+			"dependencies": {
+				"undici-types": "~6.19.2"
+			}
 		},
 		"node_modules/@types/node-fetch": {
 			"version": "2.6.1",
@@ -2110,11 +2198,49 @@
 			"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
 			"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
 		},
+		"node_modules/@types/request": {
+			"version": "2.48.12",
+			"resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz",
+			"integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==",
+			"license": "MIT",
+			"optional": true,
+			"dependencies": {
+				"@types/caseless": "*",
+				"@types/node": "*",
+				"@types/tough-cookie": "*",
+				"form-data": "^2.5.0"
+			}
+		},
+		"node_modules/@types/request/node_modules/form-data": {
+			"version": "2.5.1",
+			"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
+			"integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
+			"license": "MIT",
+			"optional": true,
+			"dependencies": {
+				"asynckit": "^0.4.0",
+				"combined-stream": "^1.0.6",
+				"mime-types": "^2.1.12"
+			},
+			"engines": {
+				"node": ">= 0.12"
+			}
+		},
 		"node_modules/@types/seedrandom": {
 			"version": "2.4.27",
 			"resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.27.tgz",
 			"integrity": "sha1-nbVjk33YaRX2kJK8QyWdL0hXjkE="
 		},
+		"node_modules/@types/send": {
+			"version": "0.17.4",
+			"resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
+			"integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
+			"license": "MIT",
+			"dependencies": {
+				"@types/mime": "^1",
+				"@types/node": "*"
+			}
+		},
 		"node_modules/@types/serve-static": {
 			"version": "1.13.10",
 			"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz",
@@ -2131,6 +2257,13 @@
 			"dev": true,
 			"peer": true
 		},
+		"node_modules/@types/tough-cookie": {
+			"version": "4.0.5",
+			"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
+			"integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
+			"license": "MIT",
+			"optional": true
+		},
 		"node_modules/@types/webgl-ext": {
 			"version": "0.0.30",
 			"resolved": "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz",
@@ -2173,6 +2306,7 @@
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
 			"integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
 				"event-target-shim": "^5.0.0"
@@ -2197,7 +2331,7 @@
 			"version": "8.11.2",
 			"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
 			"integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
-			"devOptional": true,
+			"dev": true,
 			"bin": {
 				"acorn": "bin/acorn"
 			},
@@ -2209,7 +2343,7 @@
 			"version": "5.3.2",
 			"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
 			"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
-			"devOptional": true,
+			"dev": true,
 			"peerDependencies": {
 				"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
 			}
@@ -2367,6 +2501,7 @@
 			"version": "2.0.1",
 			"resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
 			"integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
+			"license": "MIT",
 			"optional": true,
 			"engines": {
 				"node": ">=8"
@@ -2381,6 +2516,7 @@
 			"version": "1.3.3",
 			"resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz",
 			"integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
 				"retry": "0.13.1"
@@ -2518,23 +2654,19 @@
 					"url": "https://feross.org/support"
 				}
 			],
+			"license": "MIT",
 			"optional": true
 		},
 		"node_modules/bignumber.js": {
-			"version": "9.1.1",
-			"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz",
-			"integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==",
+			"version": "9.1.2",
+			"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz",
+			"integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==",
+			"license": "MIT",
 			"optional": true,
 			"engines": {
 				"node": "*"
 			}
 		},
-		"node_modules/bluebird": {
-			"version": "3.7.2",
-			"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
-			"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
-			"optional": true
-		},
 		"node_modules/body-parser": {
 			"version": "1.20.1",
 			"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
@@ -2635,7 +2767,8 @@
 		"node_modules/buffer-equal-constant-time": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
-			"integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
+			"integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
+			"license": "BSD-3-Clause"
 		},
 		"node_modules/buffer-from": {
 			"version": "1.1.2",
@@ -2711,18 +2844,6 @@
 			],
 			"peer": true
 		},
-		"node_modules/catharsis": {
-			"version": "0.9.0",
-			"resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz",
-			"integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==",
-			"optional": true,
-			"dependencies": {
-				"lodash": "^4.17.15"
-			},
-			"engines": {
-				"node": ">= 10"
-			}
-		},
 		"node_modules/chalk": {
 			"version": "4.1.2",
 			"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -2854,18 +2975,6 @@
 				"node": ">= 0.8"
 			}
 		},
-		"node_modules/compressible": {
-			"version": "2.0.18",
-			"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
-			"integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
-			"optional": true,
-			"dependencies": {
-				"mime-db": ">= 1.43.0 < 2"
-			},
-			"engines": {
-				"node": ">= 0.6"
-			}
-		},
 		"node_modules/concat-map": {
 			"version": "0.0.1",
 			"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -3022,7 +3131,7 @@
 			"version": "0.1.4",
 			"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
 			"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
-			"devOptional": true
+			"dev": true
 		},
 		"node_modules/deepmerge": {
 			"version": "4.2.2",
@@ -3119,21 +3228,23 @@
 			}
 		},
 		"node_modules/duplexify": {
-			"version": "4.1.2",
-			"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz",
-			"integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==",
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz",
+			"integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
 				"end-of-stream": "^1.4.1",
 				"inherits": "^2.0.3",
 				"readable-stream": "^3.1.1",
-				"stream-shift": "^1.0.0"
+				"stream-shift": "^1.0.2"
 			}
 		},
 		"node_modules/ecdsa-sig-formatter": {
 			"version": "1.0.11",
 			"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
 			"integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+			"license": "Apache-2.0",
 			"dependencies": {
 				"safe-buffer": "^5.0.1"
 			}
@@ -3194,26 +3305,12 @@
 			"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==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
 				"once": "^1.4.0"
 			}
 		},
-		"node_modules/ent": {
-			"version": "2.2.0",
-			"resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
-			"integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==",
-			"optional": true
-		},
-		"node_modules/entities": {
-			"version": "2.1.0",
-			"resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
-			"integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
-			"optional": 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",
@@ -3262,88 +3359,6 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
-		"node_modules/escodegen": {
-			"version": "1.14.3",
-			"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
-			"integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
-			"optional": true,
-			"dependencies": {
-				"esprima": "^4.0.1",
-				"estraverse": "^4.2.0",
-				"esutils": "^2.0.2",
-				"optionator": "^0.8.1"
-			},
-			"bin": {
-				"escodegen": "bin/escodegen.js",
-				"esgenerate": "bin/esgenerate.js"
-			},
-			"engines": {
-				"node": ">=4.0"
-			},
-			"optionalDependencies": {
-				"source-map": "~0.6.1"
-			}
-		},
-		"node_modules/escodegen/node_modules/estraverse": {
-			"version": "4.3.0",
-			"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
-			"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
-			"optional": true,
-			"engines": {
-				"node": ">=4.0"
-			}
-		},
-		"node_modules/escodegen/node_modules/levn": {
-			"version": "0.3.0",
-			"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
-			"integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
-			"optional": true,
-			"dependencies": {
-				"prelude-ls": "~1.1.2",
-				"type-check": "~0.3.2"
-			},
-			"engines": {
-				"node": ">= 0.8.0"
-			}
-		},
-		"node_modules/escodegen/node_modules/optionator": {
-			"version": "0.8.3",
-			"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
-			"integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
-			"optional": true,
-			"dependencies": {
-				"deep-is": "~0.1.3",
-				"fast-levenshtein": "~2.0.6",
-				"levn": "~0.3.0",
-				"prelude-ls": "~1.1.2",
-				"type-check": "~0.3.2",
-				"word-wrap": "~1.2.3"
-			},
-			"engines": {
-				"node": ">= 0.8.0"
-			}
-		},
-		"node_modules/escodegen/node_modules/prelude-ls": {
-			"version": "1.1.2",
-			"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
-			"integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
-			"optional": true,
-			"engines": {
-				"node": ">= 0.8.0"
-			}
-		},
-		"node_modules/escodegen/node_modules/type-check": {
-			"version": "0.3.2",
-			"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
-			"integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
-			"optional": true,
-			"dependencies": {
-				"prelude-ls": "~1.1.2"
-			},
-			"engines": {
-				"node": ">= 0.8.0"
-			}
-		},
 		"node_modules/eslint": {
 			"version": "8.54.0",
 			"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz",
@@ -3431,7 +3446,7 @@
 			"version": "3.4.3",
 			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
 			"integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
-			"devOptional": true,
+			"dev": true,
 			"engines": {
 				"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
 			},
@@ -3443,7 +3458,7 @@
 			"version": "9.6.1",
 			"resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
 			"integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
-			"devOptional": true,
+			"dev": true,
 			"dependencies": {
 				"acorn": "^8.9.0",
 				"acorn-jsx": "^5.3.2",
@@ -3460,7 +3475,8 @@
 			"version": "4.0.1",
 			"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
 			"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
-			"devOptional": true,
+			"dev": true,
+			"peer": true,
 			"bin": {
 				"esparse": "bin/esparse.js",
 				"esvalidate": "bin/esvalidate.js"
@@ -3497,7 +3513,7 @@
 			"version": "5.3.0",
 			"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
 			"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-			"devOptional": true,
+			"dev": true,
 			"engines": {
 				"node": ">=4.0"
 			}
@@ -3506,7 +3522,7 @@
 			"version": "2.0.3",
 			"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
 			"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
-			"devOptional": true,
+			"dev": true,
 			"engines": {
 				"node": ">=0.10.0"
 			}
@@ -3523,6 +3539,7 @@
 			"version": "5.0.1",
 			"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
 			"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+			"license": "MIT",
 			"optional": true,
 			"engines": {
 				"node": ">=6"
@@ -3656,8 +3673,18 @@
 			"version": "3.0.2",
 			"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
 			"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+			"license": "MIT",
 			"optional": true
 		},
+		"node_modules/farmhash-modern": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npmjs.org/farmhash-modern/-/farmhash-modern-1.1.0.tgz",
+			"integrity": "sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==",
+			"license": "MIT",
+			"engines": {
+				"node": ">=18.0.0"
+			}
+		},
 		"node_modules/fast-deep-equal": {
 			"version": "3.1.3",
 			"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -3674,13 +3701,30 @@
 			"version": "2.0.6",
 			"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
 			"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
-			"devOptional": true
+			"dev": true
 		},
-		"node_modules/fast-text-encoding": {
-			"version": "1.0.6",
-			"resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz",
-			"integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==",
-			"optional": true
+		"node_modules/fast-xml-parser": {
+			"version": "4.4.1",
+			"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz",
+			"integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==",
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/NaturalIntelligence"
+				},
+				{
+					"type": "paypal",
+					"url": "https://paypal.me/naturalintelligence"
+				}
+			],
+			"license": "MIT",
+			"optional": true,
+			"dependencies": {
+				"strnum": "^1.0.5"
+			},
+			"bin": {
+				"fxparser": "src/cli/cli.js"
+			}
 		},
 		"node_modules/fastq": {
 			"version": "1.13.0",
@@ -3695,6 +3739,7 @@
 			"version": "0.11.4",
 			"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
 			"integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
+			"license": "Apache-2.0",
 			"dependencies": {
 				"websocket-driver": ">=0.5.1"
 			},
@@ -3811,25 +3856,27 @@
 			}
 		},
 		"node_modules/firebase-admin": {
-			"version": "11.3.0",
-			"resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-11.3.0.tgz",
-			"integrity": "sha512-8ENXUu9Lm6YTc5zzOqlF222M/KwsV/EDZ5UwwPPEU5XfCa1Ebj7K/SgLFdinjGu1NxkSnqu07UDpPhmAtW3b5w==",
-			"dependencies": {
-				"@fastify/busboy": "^1.1.0",
-				"@firebase/database-compat": "^0.2.6",
-				"@firebase/database-types": "^0.9.13",
-				"@types/node": ">=12.12.47",
-				"jsonwebtoken": "^8.5.1",
-				"jwks-rsa": "^2.1.4",
+			"version": "12.3.0",
+			"resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-12.3.0.tgz",
+			"integrity": "sha512-AKJcFbOZ7W8Fwcqh6Ba7FThXVoXwPdsf+E9vyjk5Z1vN1Z9mnTw88EQWfIsR91YglQ0KvWu1rvMhW65bcB4sog==",
+			"license": "Apache-2.0",
+			"dependencies": {
+				"@fastify/busboy": "^3.0.0",
+				"@firebase/database-compat": "^1.0.2",
+				"@firebase/database-types": "^1.0.0",
+				"@types/node": "^20.10.3",
+				"farmhash-modern": "^1.1.0",
+				"jsonwebtoken": "^9.0.0",
+				"jwks-rsa": "^3.1.0",
 				"node-forge": "^1.3.1",
-				"uuid": "^9.0.0"
+				"uuid": "^10.0.0"
 			},
 			"engines": {
 				"node": ">=14"
 			},
 			"optionalDependencies": {
-				"@google-cloud/firestore": "^6.4.0",
-				"@google-cloud/storage": "^6.5.2"
+				"@google-cloud/firestore": "^7.7.0",
+				"@google-cloud/storage": "^7.7.0"
 			}
 		},
 		"node_modules/firebase-functions": {
@@ -3991,6 +4038,7 @@
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
 			"integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+			"license": "MIT",
 			"optional": true
 		},
 		"node_modules/gauge": {
@@ -4028,56 +4076,96 @@
 			}
 		},
 		"node_modules/gaxios": {
-			"version": "5.0.2",
-			"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.0.2.tgz",
-			"integrity": "sha512-TjtV2AJOZoMQqRYoy5eM8cCQogYwazWNYLQ72QB0kwa6vHHruYkGmhhyrlzbmgNHK1dNnuP2WSH81urfzyN2Og==",
+			"version": "6.7.1",
+			"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz",
+			"integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==",
+			"license": "Apache-2.0",
 			"optional": true,
 			"dependencies": {
 				"extend": "^3.0.2",
-				"https-proxy-agent": "^5.0.0",
+				"https-proxy-agent": "^7.0.1",
 				"is-stream": "^2.0.0",
-				"node-fetch": "^2.6.7"
+				"node-fetch": "^2.6.9",
+				"uuid": "^9.0.1"
 			},
 			"engines": {
-				"node": ">=12"
+				"node": ">=14"
 			}
 		},
 		"node_modules/gaxios/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==",
+			"version": "7.1.1",
+			"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
+			"integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
-				"debug": "4"
+				"debug": "^4.3.4"
 			},
 			"engines": {
-				"node": ">= 6.0.0"
+				"node": ">= 14"
 			}
 		},
 		"node_modules/gaxios/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==",
+			"version": "7.0.5",
+			"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz",
+			"integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
-				"agent-base": "6",
+				"agent-base": "^7.0.2",
 				"debug": "4"
 			},
 			"engines": {
-				"node": ">= 6"
+				"node": ">= 14"
+			}
+		},
+		"node_modules/gaxios/node_modules/node-fetch": {
+			"version": "2.7.0",
+			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+			"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+			"license": "MIT",
+			"optional": 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/gaxios/node_modules/uuid": {
+			"version": "9.0.1",
+			"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+			"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+			"funding": [
+				"https://github.com/sponsors/broofa",
+				"https://github.com/sponsors/ctavan"
+			],
+			"license": "MIT",
+			"optional": true,
+			"bin": {
+				"uuid": "dist/bin/uuid"
 			}
 		},
 		"node_modules/gcp-metadata": {
-			"version": "5.1.0",
-			"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.1.0.tgz",
-			"integrity": "sha512-QVjouEXvNVG/nde6VZDXXFTB02xQdztaumkWCHUff58qsdCS05/8OPh68fQ2QnArfAzZTwfEc979FHSHsU8EWg==",
+			"version": "6.1.0",
+			"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz",
+			"integrity": "sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==",
+			"license": "Apache-2.0",
 			"optional": true,
 			"dependencies": {
-				"gaxios": "^5.0.0",
+				"gaxios": "^6.0.0",
 				"json-bigint": "^1.0.0"
 			},
 			"engines": {
-				"node": ">=12"
+				"node": ">=14"
 			}
 		},
 		"node_modules/gensync": {
@@ -4181,67 +4269,80 @@
 			}
 		},
 		"node_modules/google-auth-library": {
-			"version": "8.7.0",
-			"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.7.0.tgz",
-			"integrity": "sha512-1M0NG5VDIvJZEnstHbRdckLZESoJwguinwN8Dhae0j2ZKIQFIV63zxm6Fo6nM4xkgqUr2bbMtV5Dgo+Hy6oo0Q==",
+			"version": "9.14.0",
+			"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.14.0.tgz",
+			"integrity": "sha512-Y/eq+RWVs55Io/anIsm24sDS8X79Tq948zVLGaa7+KlJYYqaGwp1YI37w48nzrNi12RgnzMrQD4NzdmCowT90g==",
+			"license": "Apache-2.0",
 			"optional": true,
 			"dependencies": {
-				"arrify": "^2.0.0",
 				"base64-js": "^1.3.0",
 				"ecdsa-sig-formatter": "^1.0.11",
-				"fast-text-encoding": "^1.0.0",
-				"gaxios": "^5.0.0",
-				"gcp-metadata": "^5.0.0",
-				"gtoken": "^6.1.0",
-				"jws": "^4.0.0",
-				"lru-cache": "^6.0.0"
+				"gaxios": "^6.1.1",
+				"gcp-metadata": "^6.1.0",
+				"gtoken": "^7.0.0",
+				"jws": "^4.0.0"
 			},
 			"engines": {
-				"node": ">=12"
+				"node": ">=14"
 			}
 		},
 		"node_modules/google-gax": {
-			"version": "3.5.2",
-			"resolved": "https://registry.npmjs.org/google-gax/-/google-gax-3.5.2.tgz",
-			"integrity": "sha512-AyP53w0gHcWlzxm+jSgqCR3Xu4Ld7EpSjhtNBnNhzwwWaIUyphH9kBGNIEH+i4UGkTUXOY29K/Re8EiAvkBRGw==",
+			"version": "4.3.9",
+			"resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.3.9.tgz",
+			"integrity": "sha512-tcjQr7sXVGMdlvcG25wSv98ap1dtF4Z6mcV0rztGIddOcezw4YMb/uTXg72JPrLep+kXcVjaJjg6oo3KLf4itQ==",
+			"license": "Apache-2.0",
 			"optional": true,
 			"dependencies": {
-				"@grpc/grpc-js": "~1.7.0",
-				"@grpc/proto-loader": "^0.7.0",
+				"@grpc/grpc-js": "^1.10.9",
+				"@grpc/proto-loader": "^0.7.13",
 				"@types/long": "^4.0.0",
 				"abort-controller": "^3.0.0",
 				"duplexify": "^4.0.0",
-				"fast-text-encoding": "^1.0.3",
-				"google-auth-library": "^8.0.2",
-				"is-stream-ended": "^0.1.4",
-				"node-fetch": "^2.6.1",
+				"google-auth-library": "^9.3.0",
+				"node-fetch": "^2.7.0",
 				"object-hash": "^3.0.0",
-				"proto3-json-serializer": "^1.0.0",
-				"protobufjs": "7.1.2",
-				"protobufjs-cli": "1.0.2",
-				"retry-request": "^5.0.0"
-			},
-			"bin": {
-				"compileProtos": "build/tools/compileProtos.js",
-				"minifyProtoJson": "build/tools/minify.js"
+				"proto3-json-serializer": "^2.0.2",
+				"protobufjs": "^7.3.2",
+				"retry-request": "^7.0.0",
+				"uuid": "^9.0.1"
 			},
 			"engines": {
-				"node": ">=12"
+				"node": ">=14"
 			}
 		},
-		"node_modules/google-p12-pem": {
-			"version": "4.0.1",
-			"resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.1.tgz",
-			"integrity": "sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==",
+		"node_modules/google-gax/node_modules/node-fetch": {
+			"version": "2.7.0",
+			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+			"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
-				"node-forge": "^1.3.1"
-			},
-			"bin": {
-				"gp12-pem": "build/src/bin/gp12-pem.js"
+				"whatwg-url": "^5.0.0"
 			},
 			"engines": {
-				"node": ">=12.0.0"
+				"node": "4.x || >=6.0.0"
+			},
+			"peerDependencies": {
+				"encoding": "^0.1.0"
+			},
+			"peerDependenciesMeta": {
+				"encoding": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/google-gax/node_modules/uuid": {
+			"version": "9.0.1",
+			"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+			"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+			"funding": [
+				"https://github.com/sponsors/broofa",
+				"https://github.com/sponsors/ctavan"
+			],
+			"license": "MIT",
+			"optional": true,
+			"bin": {
+				"uuid": "dist/bin/uuid"
 			}
 		},
 		"node_modules/google-protobuf": {
@@ -4253,7 +4354,8 @@
 			"version": "4.2.10",
 			"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
 			"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
-			"devOptional": true
+			"dev": true,
+			"peer": true
 		},
 		"node_modules/graphemer": {
 			"version": "1.4.0",
@@ -4262,17 +4364,17 @@
 			"dev": true
 		},
 		"node_modules/gtoken": {
-			"version": "6.1.2",
-			"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-6.1.2.tgz",
-			"integrity": "sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==",
+			"version": "7.1.0",
+			"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz",
+			"integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
-				"gaxios": "^5.0.1",
-				"google-p12-pem": "^4.0.0",
+				"gaxios": "^6.0.0",
 				"jws": "^4.0.0"
 			},
 			"engines": {
-				"node": ">=12.0.0"
+				"node": ">=14.0.0"
 			}
 		},
 		"node_modules/has": {
@@ -4310,6 +4412,23 @@
 			"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
 			"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
 		},
+		"node_modules/html-entities": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz",
+			"integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==",
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/mdevils"
+				},
+				{
+					"type": "patreon",
+					"url": "https://patreon.com/mdevils"
+				}
+			],
+			"license": "MIT",
+			"optional": true
+		},
 		"node_modules/html-escaper": {
 			"version": "2.0.2",
 			"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
@@ -4335,12 +4454,14 @@
 		"node_modules/http-parser-js": {
 			"version": "0.5.8",
 			"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
-			"integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q=="
+			"integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==",
+			"license": "MIT"
 		},
 		"node_modules/http-proxy-agent": {
 			"version": "5.0.0",
 			"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
 			"integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
 				"@tootallnate/once": "2",
@@ -4355,6 +4476,7 @@
 			"version": "6.0.2",
 			"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
 			"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
 				"debug": "4"
@@ -4573,12 +4695,6 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
-		"node_modules/is-stream-ended": {
-			"version": "0.1.4",
-			"resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz",
-			"integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==",
-			"optional": true
-		},
 		"node_modules/isarray": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -5344,15 +5460,10 @@
 			}
 		},
 		"node_modules/jose": {
-			"version": "2.0.6",
-			"resolved": "https://registry.npmjs.org/jose/-/jose-2.0.6.tgz",
-			"integrity": "sha512-FVoPY7SflDodE4lknJmbAHSUjLCzE2H1F6MS0RYKMQ8SR+lNccpMf8R4eqkNYyyUjR5qZReOzZo5C5YiHOCjjg==",
-			"dependencies": {
-				"@panva/asn1.js": "^1.0.0"
-			},
-			"engines": {
-				"node": ">=10.13.0 < 13 || >=13.7.0"
-			},
+			"version": "4.15.9",
+			"resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz",
+			"integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==",
+			"license": "MIT",
 			"funding": {
 				"url": "https://github.com/sponsors/panva"
 			}
@@ -5382,65 +5493,6 @@
 			"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
 			"dev": true
 		},
-		"node_modules/js2xmlparser": {
-			"version": "4.0.2",
-			"resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz",
-			"integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==",
-			"optional": true,
-			"dependencies": {
-				"xmlcreate": "^2.0.4"
-			}
-		},
-		"node_modules/jsdoc": {
-			"version": "3.6.11",
-			"resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.11.tgz",
-			"integrity": "sha512-8UCU0TYeIYD9KeLzEcAu2q8N/mx9O3phAGl32nmHlE0LpaJL71mMkP4d+QE5zWfNt50qheHtOZ0qoxVrsX5TUg==",
-			"optional": true,
-			"dependencies": {
-				"@babel/parser": "^7.9.4",
-				"@types/markdown-it": "^12.2.3",
-				"bluebird": "^3.7.2",
-				"catharsis": "^0.9.0",
-				"escape-string-regexp": "^2.0.0",
-				"js2xmlparser": "^4.0.2",
-				"klaw": "^3.0.0",
-				"markdown-it": "^12.3.2",
-				"markdown-it-anchor": "^8.4.1",
-				"marked": "^4.0.10",
-				"mkdirp": "^1.0.4",
-				"requizzle": "^0.2.3",
-				"strip-json-comments": "^3.1.0",
-				"taffydb": "2.6.2",
-				"underscore": "~1.13.2"
-			},
-			"bin": {
-				"jsdoc": "jsdoc.js"
-			},
-			"engines": {
-				"node": ">=12.0.0"
-			}
-		},
-		"node_modules/jsdoc/node_modules/escape-string-regexp": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
-			"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
-			"optional": true,
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/jsdoc/node_modules/mkdirp": {
-			"version": "1.0.4",
-			"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
-			"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
-			"optional": true,
-			"bin": {
-				"mkdirp": "bin/cmd.js"
-			},
-			"engines": {
-				"node": ">=10"
-			}
-		},
 		"node_modules/jsesc": {
 			"version": "2.5.2",
 			"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
@@ -5458,6 +5510,7 @@
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
 			"integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
 				"bignumber.js": "^9.0.0"
@@ -5496,9 +5549,10 @@
 			}
 		},
 		"node_modules/jsonwebtoken": {
-			"version": "8.5.1",
-			"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
-			"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
+			"version": "9.0.2",
+			"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
+			"integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
+			"license": "MIT",
 			"dependencies": {
 				"jws": "^3.2.2",
 				"lodash.includes": "^4.3.0",
@@ -5509,17 +5563,18 @@
 				"lodash.isstring": "^4.0.1",
 				"lodash.once": "^4.0.0",
 				"ms": "^2.1.1",
-				"semver": "^5.6.0"
+				"semver": "^7.5.4"
 			},
 			"engines": {
-				"node": ">=4",
-				"npm": ">=1.4.28"
+				"node": ">=12",
+				"npm": ">=6"
 			}
 		},
 		"node_modules/jsonwebtoken/node_modules/jwa": {
 			"version": "1.4.1",
 			"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
 			"integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+			"license": "MIT",
 			"dependencies": {
 				"buffer-equal-constant-time": "1.0.1",
 				"ecdsa-sig-formatter": "1.0.11",
@@ -5530,23 +5585,17 @@
 			"version": "3.2.2",
 			"resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
 			"integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+			"license": "MIT",
 			"dependencies": {
 				"jwa": "^1.4.1",
 				"safe-buffer": "^5.0.1"
 			}
 		},
-		"node_modules/jsonwebtoken/node_modules/semver": {
-			"version": "5.7.1",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-			"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-			"bin": {
-				"semver": "bin/semver"
-			}
-		},
 		"node_modules/jwa": {
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz",
 			"integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
 				"buffer-equal-constant-time": "1.0.1",
@@ -5555,28 +5604,30 @@
 			}
 		},
 		"node_modules/jwks-rsa": {
-			"version": "2.1.5",
-			"resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-2.1.5.tgz",
-			"integrity": "sha512-IODtn1SwEm7n6GQZnQLY0oxKDrMh7n/jRH1MzE8mlxWMrh2NnMyOsXTebu8vJ1qCpmuTJcL4DdiE0E4h8jnwsA==",
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-3.1.0.tgz",
+			"integrity": "sha512-v7nqlfezb9YfHHzYII3ef2a2j1XnGeSE/bK3WfumaYCqONAIstJbrEGapz4kadScZzEt7zYCN7bucj8C0Mv/Rg==",
+			"license": "MIT",
 			"dependencies": {
-				"@types/express": "^4.17.14",
-				"@types/jsonwebtoken": "^8.5.9",
+				"@types/express": "^4.17.17",
+				"@types/jsonwebtoken": "^9.0.2",
 				"debug": "^4.3.4",
-				"jose": "^2.0.6",
+				"jose": "^4.14.6",
 				"limiter": "^1.1.5",
-				"lru-memoizer": "^2.1.4"
+				"lru-memoizer": "^2.2.0"
 			},
 			"engines": {
-				"node": ">=10 < 13 || >=14"
+				"node": ">=14"
 			}
 		},
 		"node_modules/jwks-rsa/node_modules/@types/express": {
-			"version": "4.17.14",
-			"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz",
-			"integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==",
+			"version": "4.17.21",
+			"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
+			"integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
+			"license": "MIT",
 			"dependencies": {
 				"@types/body-parser": "*",
-				"@types/express-serve-static-core": "^4.17.18",
+				"@types/express-serve-static-core": "^4.17.33",
 				"@types/qs": "*",
 				"@types/serve-static": "*"
 			}
@@ -5585,21 +5636,13 @@
 			"version": "4.0.0",
 			"resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz",
 			"integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
 				"jwa": "^2.0.0",
 				"safe-buffer": "^5.0.1"
 			}
 		},
-		"node_modules/klaw": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz",
-			"integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==",
-			"optional": true,
-			"dependencies": {
-				"graceful-fs": "^4.1.9"
-			}
-		},
 		"node_modules/kleur": {
 			"version": "3.0.3",
 			"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
@@ -5645,15 +5688,6 @@
 			"dev": true,
 			"peer": true
 		},
-		"node_modules/linkify-it": {
-			"version": "3.0.3",
-			"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
-			"integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==",
-			"optional": true,
-			"dependencies": {
-				"uc.micro": "^1.0.1"
-			}
-		},
 		"node_modules/locate-path": {
 			"version": "6.0.0",
 			"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -5673,48 +5707,56 @@
 			"version": "4.17.21",
 			"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
 			"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-			"devOptional": true
+			"dev": true
 		},
 		"node_modules/lodash.camelcase": {
 			"version": "4.3.0",
 			"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
 			"integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
+			"license": "MIT",
 			"optional": true
 		},
 		"node_modules/lodash.clonedeep": {
 			"version": "4.5.0",
 			"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
-			"integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
+			"integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
+			"license": "MIT"
 		},
 		"node_modules/lodash.includes": {
 			"version": "4.3.0",
 			"resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
-			"integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
+			"integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
+			"license": "MIT"
 		},
 		"node_modules/lodash.isboolean": {
 			"version": "3.0.3",
 			"resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
-			"integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
+			"integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
+			"license": "MIT"
 		},
 		"node_modules/lodash.isinteger": {
 			"version": "4.0.4",
 			"resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
-			"integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
+			"integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
+			"license": "MIT"
 		},
 		"node_modules/lodash.isnumber": {
 			"version": "3.0.3",
 			"resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
-			"integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
+			"integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
+			"license": "MIT"
 		},
 		"node_modules/lodash.isplainobject": {
 			"version": "4.0.6",
 			"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
-			"integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
+			"integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
+			"license": "MIT"
 		},
 		"node_modules/lodash.isstring": {
 			"version": "4.0.1",
 			"resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
-			"integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
+			"integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
+			"license": "MIT"
 		},
 		"node_modules/lodash.merge": {
 			"version": "4.6.2",
@@ -5725,7 +5767,8 @@
 		"node_modules/lodash.once": {
 			"version": "4.1.1",
 			"resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
-			"integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
+			"integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
+			"license": "MIT"
 		},
 		"node_modules/long": {
 			"version": "4.0.0",
@@ -5736,6 +5779,7 @@
 			"version": "6.0.0",
 			"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
 			"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+			"license": "ISC",
 			"dependencies": {
 				"yallist": "^4.0.0"
 			},
@@ -5744,28 +5788,15 @@
 			}
 		},
 		"node_modules/lru-memoizer": {
-			"version": "2.1.4",
-			"resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.1.4.tgz",
-			"integrity": "sha512-IXAq50s4qwrOBrXJklY+KhgZF+5y98PDaNo0gi/v2KQBFLyWr+JyFvijZXkGKjQj/h9c0OwoE+JZbwUXce76hQ==",
+			"version": "2.3.0",
+			"resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.3.0.tgz",
+			"integrity": "sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==",
+			"license": "MIT",
 			"dependencies": {
 				"lodash.clonedeep": "^4.5.0",
-				"lru-cache": "~4.0.0"
+				"lru-cache": "6.0.0"
 			}
 		},
-		"node_modules/lru-memoizer/node_modules/lru-cache": {
-			"version": "4.0.2",
-			"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
-			"integrity": "sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==",
-			"dependencies": {
-				"pseudomap": "^1.0.1",
-				"yallist": "^2.0.0"
-			}
-		},
-		"node_modules/lru-memoizer/node_modules/yallist": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
-			"integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="
-		},
 		"node_modules/make-dir": {
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
@@ -5798,56 +5829,6 @@
 				"tmpl": "1.0.5"
 			}
 		},
-		"node_modules/markdown-it": {
-			"version": "12.3.2",
-			"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
-			"integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==",
-			"optional": true,
-			"dependencies": {
-				"argparse": "^2.0.1",
-				"entities": "~2.1.0",
-				"linkify-it": "^3.0.1",
-				"mdurl": "^1.0.1",
-				"uc.micro": "^1.0.5"
-			},
-			"bin": {
-				"markdown-it": "bin/markdown-it.js"
-			}
-		},
-		"node_modules/markdown-it-anchor": {
-			"version": "8.6.5",
-			"resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.5.tgz",
-			"integrity": "sha512-PI1qEHHkTNWT+X6Ip9w+paonfIQ+QZP9sCeMYi47oqhH+EsW8CrJ8J7CzV19QVOj6il8ATGbK2nTECj22ZHGvQ==",
-			"optional": true,
-			"peerDependencies": {
-				"@types/markdown-it": "*",
-				"markdown-it": "*"
-			}
-		},
-		"node_modules/markdown-it/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==",
-			"optional": true
-		},
-		"node_modules/marked": {
-			"version": "4.2.4",
-			"resolved": "https://registry.npmjs.org/marked/-/marked-4.2.4.tgz",
-			"integrity": "sha512-Wcc9ikX7Q5E4BYDPvh1C6QNSxrjC9tBgz+A/vAhp59KXUgachw++uMvMKiSW8oA85nopmPZcEvBoex/YLMsiyA==",
-			"optional": true,
-			"bin": {
-				"marked": "bin/marked.js"
-			},
-			"engines": {
-				"node": ">= 12"
-			}
-		},
-		"node_modules/mdurl": {
-			"version": "1.0.1",
-			"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
-			"integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
-			"optional": true
-		},
 		"node_modules/media-typer": {
 			"version": "0.3.0",
 			"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -5894,6 +5875,7 @@
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
 			"integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+			"license": "MIT",
 			"optional": true,
 			"bin": {
 				"mime": "cli.js"
@@ -6022,6 +6004,7 @@
 			"version": "1.3.1",
 			"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
 			"integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
+			"license": "(BSD-3-Clause OR GPL-2.0)",
 			"engines": {
 				"node": ">= 6.13.0"
 			}
@@ -6108,6 +6091,7 @@
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
 			"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
+			"license": "MIT",
 			"optional": true,
 			"engines": {
 				"node": ">= 6"
@@ -6454,22 +6438,24 @@
 			}
 		},
 		"node_modules/proto3-json-serializer": {
-			"version": "1.1.0",
-			"resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-1.1.0.tgz",
-			"integrity": "sha512-SjXwUWe/vANGs/mJJTbw5++7U67nwsymg7qsoPtw6GiXqw3kUy8ByojrlEdVE2efxAdKreX8WkDafxvYW95ZQg==",
+			"version": "2.0.2",
+			"resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz",
+			"integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==",
+			"license": "Apache-2.0",
 			"optional": true,
 			"dependencies": {
-				"protobufjs": "^7.0.0"
+				"protobufjs": "^7.2.5"
 			},
 			"engines": {
-				"node": ">=12.0.0"
+				"node": ">=14.0.0"
 			}
 		},
 		"node_modules/protobufjs": {
-			"version": "7.1.2",
-			"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz",
-			"integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==",
+			"version": "7.4.0",
+			"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz",
+			"integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==",
 			"hasInstallScript": true,
+			"license": "BSD-3-Clause",
 			"optional": true,
 			"dependencies": {
 				"@protobufjs/aspromise": "^1.1.2",
@@ -6489,78 +6475,11 @@
 				"node": ">=12.0.0"
 			}
 		},
-		"node_modules/protobufjs-cli": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/protobufjs-cli/-/protobufjs-cli-1.0.2.tgz",
-			"integrity": "sha512-cz9Pq9p/Zs7okc6avH20W7QuyjTclwJPgqXG11jNaulfS3nbVisID8rC+prfgq0gbZE0w9LBFd1OKFF03kgFzg==",
-			"optional": true,
-			"dependencies": {
-				"chalk": "^4.0.0",
-				"escodegen": "^1.13.0",
-				"espree": "^9.0.0",
-				"estraverse": "^5.1.0",
-				"glob": "^8.0.0",
-				"jsdoc": "^3.6.3",
-				"minimist": "^1.2.0",
-				"semver": "^7.1.2",
-				"tmp": "^0.2.1",
-				"uglify-js": "^3.7.7"
-			},
-			"bin": {
-				"pbjs": "bin/pbjs",
-				"pbts": "bin/pbts"
-			},
-			"engines": {
-				"node": ">=12.0.0"
-			},
-			"peerDependencies": {
-				"protobufjs": "^7.0.0"
-			}
-		},
-		"node_modules/protobufjs-cli/node_modules/brace-expansion": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-			"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
-			"optional": true,
-			"dependencies": {
-				"balanced-match": "^1.0.0"
-			}
-		},
-		"node_modules/protobufjs-cli/node_modules/glob": {
-			"version": "8.0.3",
-			"resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
-			"integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
-			"optional": true,
-			"dependencies": {
-				"fs.realpath": "^1.0.0",
-				"inflight": "^1.0.4",
-				"inherits": "2",
-				"minimatch": "^5.0.1",
-				"once": "^1.3.0"
-			},
-			"engines": {
-				"node": ">=12"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/isaacs"
-			}
-		},
-		"node_modules/protobufjs-cli/node_modules/minimatch": {
-			"version": "5.1.1",
-			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz",
-			"integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==",
-			"optional": true,
-			"dependencies": {
-				"brace-expansion": "^2.0.1"
-			},
-			"engines": {
-				"node": ">=10"
-			}
-		},
 		"node_modules/protobufjs/node_modules/long": {
-			"version": "5.2.1",
-			"resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz",
-			"integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==",
+			"version": "5.2.3",
+			"resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz",
+			"integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==",
+			"license": "Apache-2.0",
 			"optional": true
 		},
 		"node_modules/proxy-addr": {
@@ -6573,12 +6492,7 @@
 			},
 			"engines": {
 				"node": ">= 0.10"
-			}
-		},
-		"node_modules/pseudomap": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
-			"integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
+			}
 		},
 		"node_modules/punycode": {
 			"version": "2.3.1",
@@ -6653,9 +6567,10 @@
 			"peer": true
 		},
 		"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==",
+			"version": "3.6.2",
+			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+			"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
 				"inherits": "^2.0.3",
@@ -6679,15 +6594,6 @@
 				"node": ">=0.10.0"
 			}
 		},
-		"node_modules/requizzle": {
-			"version": "0.2.4",
-			"resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz",
-			"integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==",
-			"optional": true,
-			"dependencies": {
-				"lodash": "^4.17.21"
-			}
-		},
 		"node_modules/resolve": {
 			"version": "1.22.1",
 			"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
@@ -6752,22 +6658,25 @@
 			"version": "0.13.1",
 			"resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
 			"integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
+			"license": "MIT",
 			"optional": true,
 			"engines": {
 				"node": ">= 4"
 			}
 		},
 		"node_modules/retry-request": {
-			"version": "5.0.2",
-			"resolved": "https://registry.npmjs.org/retry-request/-/retry-request-5.0.2.tgz",
-			"integrity": "sha512-wfI3pk7EE80lCIXprqh7ym48IHYdwmAAzESdbU8Q9l7pnRCk9LEhpbOTNKjz6FARLm/Bl5m+4F0ABxOkYUujSQ==",
+			"version": "7.0.2",
+			"resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz",
+			"integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
-				"debug": "^4.1.1",
-				"extend": "^3.0.2"
+				"@types/request": "^2.48.8",
+				"extend": "^3.0.2",
+				"teeny-request": "^9.0.0"
 			},
 			"engines": {
-				"node": ">=12"
+				"node": ">=14"
 			}
 		},
 		"node_modules/reusify": {
@@ -6830,12 +6739,10 @@
 			"integrity": "sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw="
 		},
 		"node_modules/semver": {
-			"version": "7.3.5",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
-			"integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
-			"dependencies": {
-				"lru-cache": "^6.0.0"
-			},
+			"version": "7.6.3",
+			"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+			"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+			"license": "ISC",
 			"bin": {
 				"semver": "bin/semver.js"
 			},
@@ -6979,7 +6886,8 @@
 			"version": "0.6.1",
 			"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
 			"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-			"devOptional": true,
+			"dev": true,
+			"peer": true,
 			"engines": {
 				"node": ">=0.10.0"
 			}
@@ -7035,15 +6943,17 @@
 			"version": "1.0.5",
 			"resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz",
 			"integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
 				"stubs": "^3.0.0"
 			}
 		},
 		"node_modules/stream-shift": {
-			"version": "1.0.1",
-			"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
-			"integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
+			"version": "1.0.3",
+			"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
+			"integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==",
+			"license": "MIT",
 			"optional": true
 		},
 		"node_modules/streamsearch": {
@@ -7058,6 +6968,7 @@
 			"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==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
 				"safe-buffer": "~5.2.0"
@@ -7081,6 +6992,7 @@
 					"url": "https://feross.org/support"
 				}
 			],
+			"license": "MIT",
 			"optional": true
 		},
 		"node_modules/string-length": {
@@ -7164,7 +7076,7 @@
 			"version": "3.1.1",
 			"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
 			"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
-			"devOptional": true,
+			"dev": true,
 			"engines": {
 				"node": ">=8"
 			},
@@ -7172,10 +7084,18 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
+		"node_modules/strnum": {
+			"version": "1.0.5",
+			"resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
+			"integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==",
+			"license": "MIT",
+			"optional": true
+		},
 		"node_modules/stubs": {
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz",
 			"integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==",
+			"license": "MIT",
 			"optional": true
 		},
 		"node_modules/supports-color": {
@@ -7202,12 +7122,6 @@
 				"url": "https://github.com/sponsors/ljharb"
 			}
 		},
-		"node_modules/taffydb": {
-			"version": "2.6.2",
-			"resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz",
-			"integrity": "sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA==",
-			"optional": true
-		},
 		"node_modules/tar": {
 			"version": "4.4.19",
 			"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
@@ -7250,25 +7164,27 @@
 			"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
 		},
 		"node_modules/teeny-request": {
-			"version": "8.0.2",
-			"resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-8.0.2.tgz",
-			"integrity": "sha512-34pe0a4zASseXZCKdeTiIZqSKA8ETHb1EwItZr01PAR3CLPojeAKgSjzeNS4373gi59hNulyDrPKEbh2zO9sCg==",
+			"version": "9.0.0",
+			"resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz",
+			"integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==",
+			"license": "Apache-2.0",
 			"optional": true,
 			"dependencies": {
 				"http-proxy-agent": "^5.0.0",
 				"https-proxy-agent": "^5.0.0",
-				"node-fetch": "^2.6.1",
+				"node-fetch": "^2.6.9",
 				"stream-events": "^1.0.5",
 				"uuid": "^9.0.0"
 			},
 			"engines": {
-				"node": ">=12"
+				"node": ">=14"
 			}
 		},
 		"node_modules/teeny-request/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==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
 				"debug": "4"
@@ -7281,6 +7197,7 @@
 			"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==",
+			"license": "MIT",
 			"optional": true,
 			"dependencies": {
 				"agent-base": "6",
@@ -7290,6 +7207,41 @@
 				"node": ">= 6"
 			}
 		},
+		"node_modules/teeny-request/node_modules/node-fetch": {
+			"version": "2.7.0",
+			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+			"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+			"license": "MIT",
+			"optional": 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/teeny-request/node_modules/uuid": {
+			"version": "9.0.1",
+			"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+			"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+			"funding": [
+				"https://github.com/sponsors/broofa",
+				"https://github.com/sponsors/ctavan"
+			],
+			"license": "MIT",
+			"optional": true,
+			"bin": {
+				"uuid": "dist/bin/uuid"
+			}
+		},
 		"node_modules/test-exclude": {
 			"version": "6.0.0",
 			"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
@@ -7305,44 +7257,12 @@
 				"node": ">=8"
 			}
 		},
-		"node_modules/text-decoding": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/text-decoding/-/text-decoding-1.0.0.tgz",
-			"integrity": "sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA=="
-		},
 		"node_modules/text-table": {
 			"version": "0.2.0",
 			"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
 			"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
 			"dev": true
 		},
-		"node_modules/tmp": {
-			"version": "0.2.1",
-			"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
-			"integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
-			"optional": true,
-			"dependencies": {
-				"rimraf": "^3.0.0"
-			},
-			"engines": {
-				"node": ">=8.17.0"
-			}
-		},
-		"node_modules/tmp/node_modules/rimraf": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
-			"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
-			"optional": true,
-			"dependencies": {
-				"glob": "^7.1.3"
-			},
-			"bin": {
-				"rimraf": "bin.js"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/isaacs"
-			}
-		},
 		"node_modules/tmpl": {
 			"version": "1.0.5",
 			"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
@@ -7393,9 +7313,10 @@
 			"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=="
+			"version": "2.6.3",
+			"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
+			"integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
+			"license": "0BSD"
 		},
 		"node_modules/type-check": {
 			"version": "0.4.0",
@@ -7443,29 +7364,11 @@
 				"node": ">= 0.6"
 			}
 		},
-		"node_modules/uc.micro": {
-			"version": "1.0.6",
-			"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
-			"integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
-			"optional": true
-		},
-		"node_modules/uglify-js": {
-			"version": "3.17.4",
-			"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
-			"integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
-			"optional": true,
-			"bin": {
-				"uglifyjs": "bin/uglifyjs"
-			},
-			"engines": {
-				"node": ">=0.8.0"
-			}
-		},
-		"node_modules/underscore": {
-			"version": "1.13.6",
-			"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
-			"integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==",
-			"optional": true
+		"node_modules/undici-types": {
+			"version": "6.19.8",
+			"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+			"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+			"license": "MIT"
 		},
 		"node_modules/unpipe": {
 			"version": "1.0.0",
@@ -7525,9 +7428,14 @@
 			}
 		},
 		"node_modules/uuid": {
-			"version": "9.0.0",
-			"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
-			"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
+			"version": "10.0.0",
+			"resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
+			"integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
+			"funding": [
+				"https://github.com/sponsors/broofa",
+				"https://github.com/sponsors/ctavan"
+			],
+			"license": "MIT",
 			"bin": {
 				"uuid": "dist/bin/uuid"
 			}
@@ -7586,6 +7494,7 @@
 			"version": "0.7.4",
 			"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
 			"integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
+			"license": "Apache-2.0",
 			"dependencies": {
 				"http-parser-js": ">=0.5.1",
 				"safe-buffer": ">=5.1.0",
@@ -7599,6 +7508,7 @@
 			"version": "0.1.4",
 			"resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
 			"integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
+			"license": "Apache-2.0",
 			"engines": {
 				"node": ">=0.8.0"
 			}
@@ -7635,15 +7545,6 @@
 				"string-width": "^1.0.2 || 2 || 3 || 4"
 			}
 		},
-		"node_modules/word-wrap": {
-			"version": "1.2.3",
-			"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
-			"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
-			"optional": true,
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
 		"node_modules/wrap-ansi": {
 			"version": "7.0.0",
 			"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@@ -7700,12 +7601,6 @@
 				"node": "^12.13.0 || ^14.15.0 || >=16.0.0"
 			}
 		},
-		"node_modules/xmlcreate": {
-			"version": "2.0.4",
-			"resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz",
-			"integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==",
-			"optional": true
-		},
 		"node_modules/y18n": {
 			"version": "5.0.8",
 			"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -8097,7 +7992,8 @@
 			"version": "7.20.5",
 			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz",
 			"integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==",
-			"devOptional": true
+			"dev": true,
+			"peer": true
 		},
 		"@babel/plugin-syntax-async-generators": {
 			"version": "7.8.4",
@@ -8337,108 +8233,102 @@
 			"dev": true
 		},
 		"@fastify/busboy": {
-			"version": "1.1.0",
-			"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-1.1.0.tgz",
-			"integrity": "sha512-Fv854f94v0CzIDllbY3i/0NJPNBRNLDawf3BTYVGCe9VrIIs3Wi7AFx24F9NzCxdf0wyx/x0Q9kEVnvDOPnlxA==",
-			"requires": {
-				"text-decoding": "^1.0.0"
-			}
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.0.0.tgz",
+			"integrity": "sha512-83rnH2nCvclWaPQQKvkJ2pdOjG4TZyEVuFDnlOF6KP08lDaaceVyw/W63mDuafQT+MKHCvXIPpE5uYWeM0rT4w=="
+		},
+		"@firebase/app-check-interop-types": {
+			"version": "0.3.2",
+			"resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz",
+			"integrity": "sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ=="
 		},
 		"@firebase/app-types": {
-			"version": "0.9.0",
-			"resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.0.tgz",
-			"integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q==",
-			"peer": true
+			"version": "0.9.2",
+			"resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.2.tgz",
+			"integrity": "sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ=="
 		},
 		"@firebase/auth-interop-types": {
-			"version": "0.1.7",
-			"resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.7.tgz",
-			"integrity": "sha512-yA/dTveGGPcc85JP8ZE/KZqfGQyQTBCV10THdI8HTlP1GDvNrhr//J5jAt58MlsCOaO3XmC4DqScPBbtIsR/EA==",
-			"requires": {}
+			"version": "0.2.3",
+			"resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz",
+			"integrity": "sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ=="
 		},
 		"@firebase/component": {
-			"version": "0.5.21",
-			"resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.5.21.tgz",
-			"integrity": "sha512-12MMQ/ulfygKpEJpseYMR0HunJdlsLrwx2XcEs40M18jocy2+spyzHHEwegN3x/2/BLFBjR5247Etmz0G97Qpg==",
+			"version": "0.6.8",
+			"resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.8.tgz",
+			"integrity": "sha512-LcNvxGLLGjBwB0dJUsBGCej2fqAepWyBubs4jt1Tiuns7QLbXHuyObZ4aMeBjZjWx4m8g1LoVI9QFpSaq/k4/g==",
 			"requires": {
-				"@firebase/util": "1.7.3",
+				"@firebase/util": "1.9.7",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/database": {
-			"version": "0.13.10",
-			"resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.13.10.tgz",
-			"integrity": "sha512-KRucuzZ7ZHQsRdGEmhxId5jyM2yKsjsQWF9yv0dIhlxYg0D8rCVDZc/waoPKA5oV3/SEIoptF8F7R1Vfe7BCQA==",
-			"requires": {
-				"@firebase/auth-interop-types": "0.1.7",
-				"@firebase/component": "0.5.21",
-				"@firebase/logger": "0.3.4",
-				"@firebase/util": "1.7.3",
+			"version": "1.0.7",
+			"resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.7.tgz",
+			"integrity": "sha512-wjXr5AO8RPxVVg7rRCYffT7FMtBjHRfJ9KMwi19MbOf0vBf0H9YqW3WCgcnLpXI6ehiUcU3z3qgPnnU0nK6SnA==",
+			"requires": {
+				"@firebase/app-check-interop-types": "0.3.2",
+				"@firebase/auth-interop-types": "0.2.3",
+				"@firebase/component": "0.6.8",
+				"@firebase/logger": "0.4.2",
+				"@firebase/util": "1.9.7",
 				"faye-websocket": "0.11.4",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/database-compat": {
-			"version": "0.2.10",
-			"resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.2.10.tgz",
-			"integrity": "sha512-fK+IgUUqVKcWK/gltzDU+B1xauCOfY6vulO8lxoNTkcCGlSxuTtwsdqjGkFmgFRMYjXFWWJ6iFcJ/vXahzwCtA==",
-			"requires": {
-				"@firebase/component": "0.5.21",
-				"@firebase/database": "0.13.10",
-				"@firebase/database-types": "0.9.17",
-				"@firebase/logger": "0.3.4",
-				"@firebase/util": "1.7.3",
+			"version": "1.0.7",
+			"resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.7.tgz",
+			"integrity": "sha512-R/3B+VVzEFN5YcHmfWns3eitA8fHLTL03io+FIoMcTYkajFnrBdS3A+g/KceN9omP7FYYYGTQWF9lvbEx6eMEg==",
+			"requires": {
+				"@firebase/component": "0.6.8",
+				"@firebase/database": "1.0.7",
+				"@firebase/database-types": "1.0.4",
+				"@firebase/logger": "0.4.2",
+				"@firebase/util": "1.9.7",
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/database-types": {
-			"version": "0.9.17",
-			"resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.9.17.tgz",
-			"integrity": "sha512-YQm2tCZyxNtEnlS5qo5gd2PAYgKCy69tUKwioGhApCFThW+mIgZs7IeYeJo2M51i4LCixYUl+CvnOyAnb/c3XA==",
+			"version": "1.0.4",
+			"resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.4.tgz",
+			"integrity": "sha512-mz9ZzbH6euFXbcBo+enuJ36I5dR5w+enJHHjy9Y5ThCdKUseqfDjW3vCp1YxE9zygFCSjJJ/z1cQ+zodvUcwPQ==",
 			"requires": {
-				"@firebase/app-types": "0.8.1",
-				"@firebase/util": "1.7.3"
-			},
-			"dependencies": {
-				"@firebase/app-types": {
-					"version": "0.8.1",
-					"resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.8.1.tgz",
-					"integrity": "sha512-p75Ow3QhB82kpMzmOntv866wH9eZ3b4+QbUY+8/DA5Zzdf1c8Nsk8B7kbFpzJt4wwHMdy5LTF5YUnoTc1JiWkw=="
-				}
+				"@firebase/app-types": "0.9.2",
+				"@firebase/util": "1.9.7"
 			}
 		},
 		"@firebase/logger": {
-			"version": "0.3.4",
-			"resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.3.4.tgz",
-			"integrity": "sha512-hlFglGRgZEwoyClZcGLx/Wd+zoLfGmbDkFx56mQt/jJ0XMbfPqwId1kiPl0zgdWZX+D8iH+gT6GuLPFsJWgiGw==",
+			"version": "0.4.2",
+			"resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.2.tgz",
+			"integrity": "sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A==",
 			"requires": {
 				"tslib": "^2.1.0"
 			}
 		},
 		"@firebase/util": {
-			"version": "1.7.3",
-			"resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.7.3.tgz",
-			"integrity": "sha512-wxNqWbqokF551WrJ9BIFouU/V5SL1oYCGx1oudcirdhadnQRFH5v1sjgGL7cUV/UsekSycygphdrF2lxBxOYKg==",
+			"version": "1.9.7",
+			"resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.7.tgz",
+			"integrity": "sha512-fBVNH/8bRbYjqlbIhZ+lBtdAAS4WqZumx03K06/u7fJSpz1TGjEMm1ImvKD47w+xaFKIP2ori6z8BrbakRfjJA==",
 			"requires": {
 				"tslib": "^2.1.0"
 			}
 		},
 		"@google-cloud/firestore": {
-			"version": "6.4.1",
-			"resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-6.4.1.tgz",
-			"integrity": "sha512-5q4sl1XCL8NH2y82KZ4WQGHDOPnrSMYq3JpIeKD5C0OCSb4MfckOTB9LeAQ3p5tlL+7UsVRHj0SyzKz27XZJjw==",
+			"version": "7.9.0",
+			"resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.9.0.tgz",
+			"integrity": "sha512-c4ALHT3G08rV7Zwv8Z2KG63gZh66iKdhCBeDfCpIkLrjX6EAjTD/szMdj14M+FnQuClZLFfW5bAgoOjfNmLtJg==",
 			"optional": true,
 			"requires": {
 				"fast-deep-equal": "^3.1.1",
 				"functional-red-black-tree": "^1.0.1",
-				"google-gax": "^3.5.1",
-				"protobufjs": "^7.0.0"
+				"google-gax": "^4.3.3",
+				"protobufjs": "^7.2.6"
 			}
 		},
 		"@google-cloud/paginator": {
-			"version": "3.0.7",
-			"resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz",
-			"integrity": "sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==",
+			"version": "5.0.2",
+			"resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz",
+			"integrity": "sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==",
 			"optional": true,
 			"requires": {
 				"arrify": "^2.0.0",
@@ -8446,39 +8336,37 @@
 			}
 		},
 		"@google-cloud/projectify": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-3.0.0.tgz",
-			"integrity": "sha512-HRkZsNmjScY6Li8/kb70wjGlDDyLkVk3KvoEo9uIoxSjYLJasGiCch9+PqRVDOCGUFvEIqyogl+BeqILL4OJHA==",
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz",
+			"integrity": "sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==",
 			"optional": true
 		},
 		"@google-cloud/promisify": {
-			"version": "3.0.1",
-			"resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-3.0.1.tgz",
-			"integrity": "sha512-z1CjRjtQyBOYL+5Qr9DdYIfrdLBe746jRTYfaYU6MeXkqp7UfYs/jX16lFFVzZ7PGEJvqZNqYUEtb1mvDww4pA==",
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz",
+			"integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==",
 			"optional": true
 		},
 		"@google-cloud/storage": {
-			"version": "6.8.0",
-			"resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.8.0.tgz",
-			"integrity": "sha512-eRGsHrhVA7NORehYW9jLUWHRzYqFxbYiG3LQL50ZhjMekDwzhPKUQ7wbjAji9OFcO3Mk8jeNHeWdpAc/QZANCg==",
+			"version": "7.12.1",
+			"resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.12.1.tgz",
+			"integrity": "sha512-Z3ZzOnF3YKLuvpkvF+TjQ6lztxcAyTILp+FjKonmVpEwPa9vFvxpZjubLR4sB6bf19i/8HL2AXRjA0YFgHFRmQ==",
 			"optional": true,
 			"requires": {
-				"@google-cloud/paginator": "^3.0.7",
-				"@google-cloud/projectify": "^3.0.0",
-				"@google-cloud/promisify": "^3.0.0",
+				"@google-cloud/paginator": "^5.0.0",
+				"@google-cloud/projectify": "^4.0.0",
+				"@google-cloud/promisify": "^4.0.0",
 				"abort-controller": "^3.0.0",
 				"async-retry": "^1.3.3",
-				"compressible": "^2.0.12",
-				"duplexify": "^4.0.0",
-				"ent": "^2.2.0",
-				"extend": "^3.0.2",
-				"gaxios": "^5.0.0",
-				"google-auth-library": "^8.0.1",
+				"duplexify": "^4.1.3",
+				"fast-xml-parser": "^4.4.1",
+				"gaxios": "^6.0.2",
+				"google-auth-library": "^9.6.3",
+				"html-entities": "^2.5.2",
 				"mime": "^3.0.0",
-				"mime-types": "^2.0.8",
 				"p-limit": "^3.0.1",
-				"retry-request": "^5.0.0",
-				"teeny-request": "^8.0.0",
+				"retry-request": "^7.0.0",
+				"teeny-request": "^9.0.0",
 				"uuid": "^8.0.0"
 			},
 			"dependencies": {
@@ -8491,26 +8379,82 @@
 			}
 		},
 		"@grpc/grpc-js": {
-			"version": "1.7.3",
-			"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz",
-			"integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==",
+			"version": "1.11.1",
+			"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.11.1.tgz",
+			"integrity": "sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==",
 			"optional": true,
 			"requires": {
-				"@grpc/proto-loader": "^0.7.0",
-				"@types/node": ">=12.12.47"
+				"@grpc/proto-loader": "^0.7.13",
+				"@js-sdsl/ordered-map": "^4.4.2"
 			}
 		},
 		"@grpc/proto-loader": {
-			"version": "0.7.4",
-			"resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.4.tgz",
-			"integrity": "sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w==",
+			"version": "0.7.13",
+			"resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz",
+			"integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==",
 			"optional": true,
 			"requires": {
-				"@types/long": "^4.0.1",
 				"lodash.camelcase": "^4.3.0",
-				"long": "^4.0.0",
-				"protobufjs": "^7.0.0",
-				"yargs": "^16.2.0"
+				"long": "^5.0.0",
+				"protobufjs": "^7.2.5",
+				"yargs": "^17.7.2"
+			},
+			"dependencies": {
+				"cliui": {
+					"version": "8.0.1",
+					"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+					"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+					"optional": true,
+					"requires": {
+						"string-width": "^4.2.0",
+						"strip-ansi": "^6.0.1",
+						"wrap-ansi": "^7.0.0"
+					}
+				},
+				"is-fullwidth-code-point": {
+					"version": "3.0.0",
+					"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+					"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+					"optional": true
+				},
+				"long": {
+					"version": "5.2.3",
+					"resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz",
+					"integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==",
+					"optional": true
+				},
+				"string-width": {
+					"version": "4.2.3",
+					"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+					"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+					"optional": true,
+					"requires": {
+						"emoji-regex": "^8.0.0",
+						"is-fullwidth-code-point": "^3.0.0",
+						"strip-ansi": "^6.0.1"
+					}
+				},
+				"yargs": {
+					"version": "17.7.2",
+					"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+					"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+					"optional": true,
+					"requires": {
+						"cliui": "^8.0.1",
+						"escalade": "^3.1.1",
+						"get-caller-file": "^2.0.5",
+						"require-directory": "^2.1.1",
+						"string-width": "^4.2.3",
+						"y18n": "^5.0.5",
+						"yargs-parser": "^21.1.1"
+					}
+				},
+				"yargs-parser": {
+					"version": "21.1.1",
+					"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+					"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+					"optional": true
+				}
 			}
 		},
 		"@humanwhocodes/config-array": {
@@ -8895,6 +8839,12 @@
 				"@jridgewell/sourcemap-codec": "1.4.14"
 			}
 		},
+		"@js-sdsl/ordered-map": {
+			"version": "4.4.2",
+			"resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz",
+			"integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==",
+			"optional": true
+		},
 		"@mapbox/node-pre-gyp": {
 			"version": "1.0.4",
 			"resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.4.tgz",
@@ -9012,11 +8962,6 @@
 				"fastq": "^1.6.0"
 			}
 		},
-		"@panva/asn1.js": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz",
-			"integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw=="
-		},
 		"@protobufjs/aspromise": {
 			"version": "1.1.2",
 			"resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
@@ -9310,6 +9255,12 @@
 				"@types/node": "*"
 			}
 		},
+		"@types/caseless": {
+			"version": "0.12.5",
+			"resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz",
+			"integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==",
+			"optional": true
+		},
 		"@types/connect": {
 			"version": "3.4.35",
 			"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
@@ -9334,13 +9285,14 @@
 			}
 		},
 		"@types/express-serve-static-core": {
-			"version": "4.17.24",
-			"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz",
-			"integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==",
+			"version": "4.19.5",
+			"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz",
+			"integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==",
 			"requires": {
 				"@types/node": "*",
 				"@types/qs": "*",
-				"@types/range-parser": "*"
+				"@types/range-parser": "*",
+				"@types/send": "*"
 			}
 		},
 		"@types/graceful-fs": {
@@ -9381,19 +9333,13 @@
 			}
 		},
 		"@types/jsonwebtoken": {
-			"version": "8.5.9",
-			"resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz",
-			"integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==",
+			"version": "9.0.6",
+			"resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.6.tgz",
+			"integrity": "sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==",
 			"requires": {
 				"@types/node": "*"
 			}
 		},
-		"@types/linkify-it": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz",
-			"integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==",
-			"optional": true
-		},
 		"@types/lodash": {
 			"version": "4.14.176",
 			"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.176.tgz",
@@ -9405,31 +9351,18 @@
 			"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
 			"integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w=="
 		},
-		"@types/markdown-it": {
-			"version": "12.2.3",
-			"resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz",
-			"integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==",
-			"optional": true,
-			"requires": {
-				"@types/linkify-it": "*",
-				"@types/mdurl": "*"
-			}
-		},
-		"@types/mdurl": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz",
-			"integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==",
-			"optional": true
-		},
 		"@types/mime": {
 			"version": "1.3.2",
 			"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
 			"integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
 		},
 		"@types/node": {
-			"version": "16.11.6",
-			"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz",
-			"integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w=="
+			"version": "20.16.1",
+			"resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.1.tgz",
+			"integrity": "sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==",
+			"requires": {
+				"undici-types": "~6.19.2"
+			}
 		},
 		"@types/node-fetch": {
 			"version": "2.6.1",
@@ -9462,11 +9395,45 @@
 			"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
 			"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
 		},
+		"@types/request": {
+			"version": "2.48.12",
+			"resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz",
+			"integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==",
+			"optional": true,
+			"requires": {
+				"@types/caseless": "*",
+				"@types/node": "*",
+				"@types/tough-cookie": "*",
+				"form-data": "^2.5.0"
+			},
+			"dependencies": {
+				"form-data": {
+					"version": "2.5.1",
+					"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
+					"integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
+					"optional": true,
+					"requires": {
+						"asynckit": "^0.4.0",
+						"combined-stream": "^1.0.6",
+						"mime-types": "^2.1.12"
+					}
+				}
+			}
+		},
 		"@types/seedrandom": {
 			"version": "2.4.27",
 			"resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.27.tgz",
 			"integrity": "sha1-nbVjk33YaRX2kJK8QyWdL0hXjkE="
 		},
+		"@types/send": {
+			"version": "0.17.4",
+			"resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
+			"integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
+			"requires": {
+				"@types/mime": "^1",
+				"@types/node": "*"
+			}
+		},
 		"@types/serve-static": {
 			"version": "1.13.10",
 			"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz",
@@ -9483,6 +9450,12 @@
 			"dev": true,
 			"peer": true
 		},
+		"@types/tough-cookie": {
+			"version": "4.0.5",
+			"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
+			"integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
+			"optional": true
+		},
 		"@types/webgl-ext": {
 			"version": "0.0.30",
 			"resolved": "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz",
@@ -9543,13 +9516,13 @@
 			"version": "8.11.2",
 			"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
 			"integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
-			"devOptional": true
+			"dev": true
 		},
 		"acorn-jsx": {
 			"version": "5.3.2",
 			"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
 			"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
-			"devOptional": true,
+			"dev": true,
 			"requires": {}
 		},
 		"adm-zip": {
@@ -9791,15 +9764,9 @@
 			"optional": true
 		},
 		"bignumber.js": {
-			"version": "9.1.1",
-			"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz",
-			"integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==",
-			"optional": true
-		},
-		"bluebird": {
-			"version": "3.7.2",
-			"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
-			"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+			"version": "9.1.2",
+			"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz",
+			"integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==",
 			"optional": true
 		},
 		"body-parser": {
@@ -9881,7 +9848,7 @@
 		"buffer-equal-constant-time": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
-			"integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
+			"integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
 		},
 		"buffer-from": {
 			"version": "1.1.2",
@@ -9932,15 +9899,6 @@
 			"dev": true,
 			"peer": true
 		},
-		"catharsis": {
-			"version": "0.9.0",
-			"resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz",
-			"integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==",
-			"optional": true,
-			"requires": {
-				"lodash": "^4.17.15"
-			}
-		},
 		"chalk": {
 			"version": "4.1.2",
 			"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -10043,15 +10001,6 @@
 				"delayed-stream": "~1.0.0"
 			}
 		},
-		"compressible": {
-			"version": "2.0.18",
-			"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
-			"integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
-			"optional": true,
-			"requires": {
-				"mime-db": ">= 1.43.0 < 2"
-			}
-		},
 		"concat-map": {
 			"version": "0.0.1",
 			"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -10164,7 +10113,7 @@
 			"version": "0.1.4",
 			"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
 			"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
-			"devOptional": true
+			"dev": true
 		},
 		"deepmerge": {
 			"version": "4.2.2",
@@ -10230,15 +10179,15 @@
 			}
 		},
 		"duplexify": {
-			"version": "4.1.2",
-			"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz",
-			"integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==",
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz",
+			"integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==",
 			"optional": true,
 			"requires": {
 				"end-of-stream": "^1.4.1",
 				"inherits": "^2.0.3",
 				"readable-stream": "^3.1.1",
-				"stream-shift": "^1.0.0"
+				"stream-shift": "^1.0.2"
 			}
 		},
 		"ecdsa-sig-formatter": {
@@ -10293,19 +10242,7 @@
 			"optional": true,
 			"requires": {
 				"once": "^1.4.0"
-			}
-		},
-		"ent": {
-			"version": "2.2.0",
-			"resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
-			"integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==",
-			"optional": true
-		},
-		"entities": {
-			"version": "2.1.0",
-			"resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
-			"integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
-			"optional": true
+			}
 		},
 		"error-ex": {
 			"version": "1.3.2",
@@ -10346,66 +10283,6 @@
 			"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
 			"dev": true
 		},
-		"escodegen": {
-			"version": "1.14.3",
-			"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
-			"integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
-			"optional": true,
-			"requires": {
-				"esprima": "^4.0.1",
-				"estraverse": "^4.2.0",
-				"esutils": "^2.0.2",
-				"optionator": "^0.8.1",
-				"source-map": "~0.6.1"
-			},
-			"dependencies": {
-				"estraverse": {
-					"version": "4.3.0",
-					"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
-					"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
-					"optional": true
-				},
-				"levn": {
-					"version": "0.3.0",
-					"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
-					"integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
-					"optional": true,
-					"requires": {
-						"prelude-ls": "~1.1.2",
-						"type-check": "~0.3.2"
-					}
-				},
-				"optionator": {
-					"version": "0.8.3",
-					"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
-					"integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
-					"optional": true,
-					"requires": {
-						"deep-is": "~0.1.3",
-						"fast-levenshtein": "~2.0.6",
-						"levn": "~0.3.0",
-						"prelude-ls": "~1.1.2",
-						"type-check": "~0.3.2",
-						"word-wrap": "~1.2.3"
-					}
-				},
-				"prelude-ls": {
-					"version": "1.1.2",
-					"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
-					"integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
-					"optional": true
-				},
-				"type-check": {
-					"version": "0.3.2",
-					"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
-					"integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
-					"optional": true,
-					"requires": {
-						"prelude-ls": "~1.1.2"
-					}
-				}
-			}
-		},
 		"eslint": {
 			"version": "8.54.0",
 			"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz",
@@ -10473,13 +10350,13 @@
 			"version": "3.4.3",
 			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
 			"integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
-			"devOptional": true
+			"dev": true
 		},
 		"espree": {
 			"version": "9.6.1",
 			"resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
 			"integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
-			"devOptional": true,
+			"dev": true,
 			"requires": {
 				"acorn": "^8.9.0",
 				"acorn-jsx": "^5.3.2",
@@ -10490,7 +10367,8 @@
 			"version": "4.0.1",
 			"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
 			"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
-			"devOptional": true
+			"dev": true,
+			"peer": true
 		},
 		"esquery": {
 			"version": "1.5.0",
@@ -10514,13 +10392,13 @@
 			"version": "5.3.0",
 			"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
 			"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-			"devOptional": true
+			"dev": true
 		},
 		"esutils": {
 			"version": "2.0.3",
 			"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
 			"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
-			"devOptional": true
+			"dev": true
 		},
 		"etag": {
 			"version": "1.8.1",
@@ -10636,6 +10514,11 @@
 			"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
 			"optional": true
 		},
+		"farmhash-modern": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npmjs.org/farmhash-modern/-/farmhash-modern-1.1.0.tgz",
+			"integrity": "sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA=="
+		},
 		"fast-deep-equal": {
 			"version": "3.1.3",
 			"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -10652,13 +10535,16 @@
 			"version": "2.0.6",
 			"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
 			"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
-			"devOptional": true
+			"dev": true
 		},
-		"fast-text-encoding": {
-			"version": "1.0.6",
-			"resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz",
-			"integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==",
-			"optional": true
+		"fast-xml-parser": {
+			"version": "4.4.1",
+			"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz",
+			"integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==",
+			"optional": true,
+			"requires": {
+				"strnum": "^1.0.5"
+			}
 		},
 		"fastq": {
 			"version": "1.13.0",
@@ -10772,20 +10658,21 @@
 			}
 		},
 		"firebase-admin": {
-			"version": "11.3.0",
-			"resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-11.3.0.tgz",
-			"integrity": "sha512-8ENXUu9Lm6YTc5zzOqlF222M/KwsV/EDZ5UwwPPEU5XfCa1Ebj7K/SgLFdinjGu1NxkSnqu07UDpPhmAtW3b5w==",
-			"requires": {
-				"@fastify/busboy": "^1.1.0",
-				"@firebase/database-compat": "^0.2.6",
-				"@firebase/database-types": "^0.9.13",
-				"@google-cloud/firestore": "^6.4.0",
-				"@google-cloud/storage": "^6.5.2",
-				"@types/node": ">=12.12.47",
-				"jsonwebtoken": "^8.5.1",
-				"jwks-rsa": "^2.1.4",
+			"version": "12.3.0",
+			"resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-12.3.0.tgz",
+			"integrity": "sha512-AKJcFbOZ7W8Fwcqh6Ba7FThXVoXwPdsf+E9vyjk5Z1vN1Z9mnTw88EQWfIsR91YglQ0KvWu1rvMhW65bcB4sog==",
+			"requires": {
+				"@fastify/busboy": "^3.0.0",
+				"@firebase/database-compat": "^1.0.2",
+				"@firebase/database-types": "^1.0.0",
+				"@google-cloud/firestore": "^7.7.0",
+				"@google-cloud/storage": "^7.7.0",
+				"@types/node": "^20.10.3",
+				"farmhash-modern": "^1.1.0",
+				"jsonwebtoken": "^9.0.0",
+				"jwks-rsa": "^3.1.0",
 				"node-forge": "^1.3.1",
-				"uuid": "^9.0.0"
+				"uuid": "^10.0.0"
 			}
 		},
 		"firebase-functions": {
@@ -10926,45 +10813,61 @@
 			}
 		},
 		"gaxios": {
-			"version": "5.0.2",
-			"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.0.2.tgz",
-			"integrity": "sha512-TjtV2AJOZoMQqRYoy5eM8cCQogYwazWNYLQ72QB0kwa6vHHruYkGmhhyrlzbmgNHK1dNnuP2WSH81urfzyN2Og==",
+			"version": "6.7.1",
+			"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz",
+			"integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==",
 			"optional": true,
 			"requires": {
 				"extend": "^3.0.2",
-				"https-proxy-agent": "^5.0.0",
+				"https-proxy-agent": "^7.0.1",
 				"is-stream": "^2.0.0",
-				"node-fetch": "^2.6.7"
+				"node-fetch": "^2.6.9",
+				"uuid": "^9.0.1"
 			},
 			"dependencies": {
 				"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==",
+					"version": "7.1.1",
+					"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
+					"integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
 					"optional": true,
 					"requires": {
-						"debug": "4"
+						"debug": "^4.3.4"
 					}
 				},
 				"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==",
+					"version": "7.0.5",
+					"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz",
+					"integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
 					"optional": true,
 					"requires": {
-						"agent-base": "6",
+						"agent-base": "^7.0.2",
 						"debug": "4"
 					}
+				},
+				"node-fetch": {
+					"version": "2.7.0",
+					"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+					"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+					"optional": true,
+					"requires": {
+						"whatwg-url": "^5.0.0"
+					}
+				},
+				"uuid": {
+					"version": "9.0.1",
+					"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+					"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+					"optional": true
 				}
 			}
 		},
 		"gcp-metadata": {
-			"version": "5.1.0",
-			"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.1.0.tgz",
-			"integrity": "sha512-QVjouEXvNVG/nde6VZDXXFTB02xQdztaumkWCHUff58qsdCS05/8OPh68fQ2QnArfAzZTwfEc979FHSHsU8EWg==",
+			"version": "6.1.0",
+			"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz",
+			"integrity": "sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==",
 			"optional": true,
 			"requires": {
-				"gaxios": "^5.0.0",
+				"gaxios": "^6.0.0",
 				"json-bigint": "^1.0.0"
 			}
 		},
@@ -11036,51 +10939,54 @@
 			}
 		},
 		"google-auth-library": {
-			"version": "8.7.0",
-			"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.7.0.tgz",
-			"integrity": "sha512-1M0NG5VDIvJZEnstHbRdckLZESoJwguinwN8Dhae0j2ZKIQFIV63zxm6Fo6nM4xkgqUr2bbMtV5Dgo+Hy6oo0Q==",
+			"version": "9.14.0",
+			"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.14.0.tgz",
+			"integrity": "sha512-Y/eq+RWVs55Io/anIsm24sDS8X79Tq948zVLGaa7+KlJYYqaGwp1YI37w48nzrNi12RgnzMrQD4NzdmCowT90g==",
 			"optional": true,
 			"requires": {
-				"arrify": "^2.0.0",
 				"base64-js": "^1.3.0",
 				"ecdsa-sig-formatter": "^1.0.11",
-				"fast-text-encoding": "^1.0.0",
-				"gaxios": "^5.0.0",
-				"gcp-metadata": "^5.0.0",
-				"gtoken": "^6.1.0",
-				"jws": "^4.0.0",
-				"lru-cache": "^6.0.0"
+				"gaxios": "^6.1.1",
+				"gcp-metadata": "^6.1.0",
+				"gtoken": "^7.0.0",
+				"jws": "^4.0.0"
 			}
 		},
 		"google-gax": {
-			"version": "3.5.2",
-			"resolved": "https://registry.npmjs.org/google-gax/-/google-gax-3.5.2.tgz",
-			"integrity": "sha512-AyP53w0gHcWlzxm+jSgqCR3Xu4Ld7EpSjhtNBnNhzwwWaIUyphH9kBGNIEH+i4UGkTUXOY29K/Re8EiAvkBRGw==",
+			"version": "4.3.9",
+			"resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.3.9.tgz",
+			"integrity": "sha512-tcjQr7sXVGMdlvcG25wSv98ap1dtF4Z6mcV0rztGIddOcezw4YMb/uTXg72JPrLep+kXcVjaJjg6oo3KLf4itQ==",
 			"optional": true,
 			"requires": {
-				"@grpc/grpc-js": "~1.7.0",
-				"@grpc/proto-loader": "^0.7.0",
+				"@grpc/grpc-js": "^1.10.9",
+				"@grpc/proto-loader": "^0.7.13",
 				"@types/long": "^4.0.0",
 				"abort-controller": "^3.0.0",
 				"duplexify": "^4.0.0",
-				"fast-text-encoding": "^1.0.3",
-				"google-auth-library": "^8.0.2",
-				"is-stream-ended": "^0.1.4",
-				"node-fetch": "^2.6.1",
+				"google-auth-library": "^9.3.0",
+				"node-fetch": "^2.7.0",
 				"object-hash": "^3.0.0",
-				"proto3-json-serializer": "^1.0.0",
-				"protobufjs": "7.1.2",
-				"protobufjs-cli": "1.0.2",
-				"retry-request": "^5.0.0"
-			}
-		},
-		"google-p12-pem": {
-			"version": "4.0.1",
-			"resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.1.tgz",
-			"integrity": "sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==",
-			"optional": true,
-			"requires": {
-				"node-forge": "^1.3.1"
+				"proto3-json-serializer": "^2.0.2",
+				"protobufjs": "^7.3.2",
+				"retry-request": "^7.0.0",
+				"uuid": "^9.0.1"
+			},
+			"dependencies": {
+				"node-fetch": {
+					"version": "2.7.0",
+					"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+					"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+					"optional": true,
+					"requires": {
+						"whatwg-url": "^5.0.0"
+					}
+				},
+				"uuid": {
+					"version": "9.0.1",
+					"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+					"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+					"optional": true
+				}
 			}
 		},
 		"google-protobuf": {
@@ -11092,7 +10998,8 @@
 			"version": "4.2.10",
 			"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
 			"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
-			"devOptional": true
+			"dev": true,
+			"peer": true
 		},
 		"graphemer": {
 			"version": "1.4.0",
@@ -11101,13 +11008,12 @@
 			"dev": true
 		},
 		"gtoken": {
-			"version": "6.1.2",
-			"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-6.1.2.tgz",
-			"integrity": "sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==",
+			"version": "7.1.0",
+			"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz",
+			"integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==",
 			"optional": true,
 			"requires": {
-				"gaxios": "^5.0.1",
-				"google-p12-pem": "^4.0.0",
+				"gaxios": "^6.0.0",
 				"jws": "^4.0.0"
 			}
 		},
@@ -11134,6 +11040,12 @@
 			"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
 			"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
 		},
+		"html-entities": {
+			"version": "2.5.2",
+			"resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz",
+			"integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==",
+			"optional": true
+		},
 		"html-escaper": {
 			"version": "2.0.2",
 			"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
@@ -11332,12 +11244,6 @@
 			"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
 			"devOptional": true
 		},
-		"is-stream-ended": {
-			"version": "0.1.4",
-			"resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz",
-			"integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==",
-			"optional": true
-		},
 		"isarray": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -11939,12 +11845,9 @@
 			}
 		},
 		"jose": {
-			"version": "2.0.6",
-			"resolved": "https://registry.npmjs.org/jose/-/jose-2.0.6.tgz",
-			"integrity": "sha512-FVoPY7SflDodE4lknJmbAHSUjLCzE2H1F6MS0RYKMQ8SR+lNccpMf8R4eqkNYyyUjR5qZReOzZo5C5YiHOCjjg==",
-			"requires": {
-				"@panva/asn1.js": "^1.0.0"
-			}
+			"version": "4.15.9",
+			"resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz",
+			"integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA=="
 		},
 		"js-tokens": {
 			"version": "4.0.0",
@@ -11970,52 +11873,6 @@
 				}
 			}
 		},
-		"js2xmlparser": {
-			"version": "4.0.2",
-			"resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz",
-			"integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==",
-			"optional": true,
-			"requires": {
-				"xmlcreate": "^2.0.4"
-			}
-		},
-		"jsdoc": {
-			"version": "3.6.11",
-			"resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.11.tgz",
-			"integrity": "sha512-8UCU0TYeIYD9KeLzEcAu2q8N/mx9O3phAGl32nmHlE0LpaJL71mMkP4d+QE5zWfNt50qheHtOZ0qoxVrsX5TUg==",
-			"optional": true,
-			"requires": {
-				"@babel/parser": "^7.9.4",
-				"@types/markdown-it": "^12.2.3",
-				"bluebird": "^3.7.2",
-				"catharsis": "^0.9.0",
-				"escape-string-regexp": "^2.0.0",
-				"js2xmlparser": "^4.0.2",
-				"klaw": "^3.0.0",
-				"markdown-it": "^12.3.2",
-				"markdown-it-anchor": "^8.4.1",
-				"marked": "^4.0.10",
-				"mkdirp": "^1.0.4",
-				"requizzle": "^0.2.3",
-				"strip-json-comments": "^3.1.0",
-				"taffydb": "2.6.2",
-				"underscore": "~1.13.2"
-			},
-			"dependencies": {
-				"escape-string-regexp": {
-					"version": "2.0.0",
-					"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
-					"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
-					"optional": true
-				},
-				"mkdirp": {
-					"version": "1.0.4",
-					"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
-					"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
-					"optional": true
-				}
-			}
-		},
 		"jsesc": {
 			"version": "2.5.2",
 			"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
@@ -12059,9 +11916,9 @@
 			"peer": true
 		},
 		"jsonwebtoken": {
-			"version": "8.5.1",
-			"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
-			"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
+			"version": "9.0.2",
+			"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
+			"integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
 			"requires": {
 				"jws": "^3.2.2",
 				"lodash.includes": "^4.3.0",
@@ -12072,7 +11929,7 @@
 				"lodash.isstring": "^4.0.1",
 				"lodash.once": "^4.0.0",
 				"ms": "^2.1.1",
-				"semver": "^5.6.0"
+				"semver": "^7.5.4"
 			},
 			"dependencies": {
 				"jwa": {
@@ -12093,11 +11950,6 @@
 						"jwa": "^1.4.1",
 						"safe-buffer": "^5.0.1"
 					}
-				},
-				"semver": {
-					"version": "5.7.1",
-					"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-					"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
 				}
 			}
 		},
@@ -12113,25 +11965,25 @@
 			}
 		},
 		"jwks-rsa": {
-			"version": "2.1.5",
-			"resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-2.1.5.tgz",
-			"integrity": "sha512-IODtn1SwEm7n6GQZnQLY0oxKDrMh7n/jRH1MzE8mlxWMrh2NnMyOsXTebu8vJ1qCpmuTJcL4DdiE0E4h8jnwsA==",
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-3.1.0.tgz",
+			"integrity": "sha512-v7nqlfezb9YfHHzYII3ef2a2j1XnGeSE/bK3WfumaYCqONAIstJbrEGapz4kadScZzEt7zYCN7bucj8C0Mv/Rg==",
 			"requires": {
-				"@types/express": "^4.17.14",
-				"@types/jsonwebtoken": "^8.5.9",
+				"@types/express": "^4.17.17",
+				"@types/jsonwebtoken": "^9.0.2",
 				"debug": "^4.3.4",
-				"jose": "^2.0.6",
+				"jose": "^4.14.6",
 				"limiter": "^1.1.5",
-				"lru-memoizer": "^2.1.4"
+				"lru-memoizer": "^2.2.0"
 			},
 			"dependencies": {
 				"@types/express": {
-					"version": "4.17.14",
-					"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz",
-					"integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==",
+					"version": "4.17.21",
+					"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
+					"integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
 					"requires": {
 						"@types/body-parser": "*",
-						"@types/express-serve-static-core": "^4.17.18",
+						"@types/express-serve-static-core": "^4.17.33",
 						"@types/qs": "*",
 						"@types/serve-static": "*"
 					}
@@ -12148,15 +12000,6 @@
 				"safe-buffer": "^5.0.1"
 			}
 		},
-		"klaw": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz",
-			"integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==",
-			"optional": true,
-			"requires": {
-				"graceful-fs": "^4.1.9"
-			}
-		},
 		"kleur": {
 			"version": "3.0.3",
 			"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
@@ -12193,15 +12036,6 @@
 			"dev": true,
 			"peer": true
 		},
-		"linkify-it": {
-			"version": "3.0.3",
-			"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
-			"integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==",
-			"optional": true,
-			"requires": {
-				"uc.micro": "^1.0.1"
-			}
-		},
 		"locate-path": {
 			"version": "6.0.0",
 			"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -12215,7 +12049,7 @@
 			"version": "4.17.21",
 			"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
 			"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-			"devOptional": true
+			"dev": true
 		},
 		"lodash.camelcase": {
 			"version": "4.3.0",
@@ -12231,32 +12065,32 @@
 		"lodash.includes": {
 			"version": "4.3.0",
 			"resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
-			"integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
+			"integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="
 		},
 		"lodash.isboolean": {
 			"version": "3.0.3",
 			"resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
-			"integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
+			"integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
 		},
 		"lodash.isinteger": {
 			"version": "4.0.4",
 			"resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
-			"integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
+			"integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="
 		},
 		"lodash.isnumber": {
 			"version": "3.0.3",
 			"resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
-			"integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
+			"integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="
 		},
 		"lodash.isplainobject": {
 			"version": "4.0.6",
 			"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
-			"integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
+			"integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="
 		},
 		"lodash.isstring": {
 			"version": "4.0.1",
 			"resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
-			"integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
+			"integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
 		},
 		"lodash.merge": {
 			"version": "4.6.2",
@@ -12267,7 +12101,7 @@
 		"lodash.once": {
 			"version": "4.1.1",
 			"resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
-			"integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
+			"integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="
 		},
 		"long": {
 			"version": "4.0.0",
@@ -12283,28 +12117,12 @@
 			}
 		},
 		"lru-memoizer": {
-			"version": "2.1.4",
-			"resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.1.4.tgz",
-			"integrity": "sha512-IXAq50s4qwrOBrXJklY+KhgZF+5y98PDaNo0gi/v2KQBFLyWr+JyFvijZXkGKjQj/h9c0OwoE+JZbwUXce76hQ==",
+			"version": "2.3.0",
+			"resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.3.0.tgz",
+			"integrity": "sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==",
 			"requires": {
 				"lodash.clonedeep": "^4.5.0",
-				"lru-cache": "~4.0.0"
-			},
-			"dependencies": {
-				"lru-cache": {
-					"version": "4.0.2",
-					"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
-					"integrity": "sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==",
-					"requires": {
-						"pseudomap": "^1.0.1",
-						"yallist": "^2.0.0"
-					}
-				},
-				"yallist": {
-					"version": "2.1.2",
-					"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
-					"integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="
-				}
+				"lru-cache": "6.0.0"
 			}
 		},
 		"make-dir": {
@@ -12332,46 +12150,6 @@
 				"tmpl": "1.0.5"
 			}
 		},
-		"markdown-it": {
-			"version": "12.3.2",
-			"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
-			"integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==",
-			"optional": true,
-			"requires": {
-				"argparse": "^2.0.1",
-				"entities": "~2.1.0",
-				"linkify-it": "^3.0.1",
-				"mdurl": "^1.0.1",
-				"uc.micro": "^1.0.5"
-			},
-			"dependencies": {
-				"argparse": {
-					"version": "2.0.1",
-					"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
-					"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
-					"optional": true
-				}
-			}
-		},
-		"markdown-it-anchor": {
-			"version": "8.6.5",
-			"resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.5.tgz",
-			"integrity": "sha512-PI1qEHHkTNWT+X6Ip9w+paonfIQ+QZP9sCeMYi47oqhH+EsW8CrJ8J7CzV19QVOj6il8ATGbK2nTECj22ZHGvQ==",
-			"optional": true,
-			"requires": {}
-		},
-		"marked": {
-			"version": "4.2.4",
-			"resolved": "https://registry.npmjs.org/marked/-/marked-4.2.4.tgz",
-			"integrity": "sha512-Wcc9ikX7Q5E4BYDPvh1C6QNSxrjC9tBgz+A/vAhp59KXUgachw++uMvMKiSW8oA85nopmPZcEvBoex/YLMsiyA==",
-			"optional": true
-		},
-		"mdurl": {
-			"version": "1.0.1",
-			"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
-			"integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
-			"optional": true
-		},
 		"media-typer": {
 			"version": "0.3.0",
 			"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -12820,18 +12598,18 @@
 			}
 		},
 		"proto3-json-serializer": {
-			"version": "1.1.0",
-			"resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-1.1.0.tgz",
-			"integrity": "sha512-SjXwUWe/vANGs/mJJTbw5++7U67nwsymg7qsoPtw6GiXqw3kUy8ByojrlEdVE2efxAdKreX8WkDafxvYW95ZQg==",
+			"version": "2.0.2",
+			"resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz",
+			"integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==",
 			"optional": true,
 			"requires": {
-				"protobufjs": "^7.0.0"
+				"protobufjs": "^7.2.5"
 			}
 		},
 		"protobufjs": {
-			"version": "7.1.2",
-			"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz",
-			"integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==",
+			"version": "7.4.0",
+			"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz",
+			"integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==",
 			"optional": true,
 			"requires": {
 				"@protobufjs/aspromise": "^1.1.2",
@@ -12849,64 +12627,13 @@
 			},
 			"dependencies": {
 				"long": {
-					"version": "5.2.1",
-					"resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz",
-					"integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==",
+					"version": "5.2.3",
+					"resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz",
+					"integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==",
 					"optional": true
 				}
 			}
 		},
-		"protobufjs-cli": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/protobufjs-cli/-/protobufjs-cli-1.0.2.tgz",
-			"integrity": "sha512-cz9Pq9p/Zs7okc6avH20W7QuyjTclwJPgqXG11jNaulfS3nbVisID8rC+prfgq0gbZE0w9LBFd1OKFF03kgFzg==",
-			"optional": true,
-			"requires": {
-				"chalk": "^4.0.0",
-				"escodegen": "^1.13.0",
-				"espree": "^9.0.0",
-				"estraverse": "^5.1.0",
-				"glob": "^8.0.0",
-				"jsdoc": "^3.6.3",
-				"minimist": "^1.2.0",
-				"semver": "^7.1.2",
-				"tmp": "^0.2.1",
-				"uglify-js": "^3.7.7"
-			},
-			"dependencies": {
-				"brace-expansion": {
-					"version": "2.0.1",
-					"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-					"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
-					"optional": true,
-					"requires": {
-						"balanced-match": "^1.0.0"
-					}
-				},
-				"glob": {
-					"version": "8.0.3",
-					"resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
-					"integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
-					"optional": true,
-					"requires": {
-						"fs.realpath": "^1.0.0",
-						"inflight": "^1.0.4",
-						"inherits": "2",
-						"minimatch": "^5.0.1",
-						"once": "^1.3.0"
-					}
-				},
-				"minimatch": {
-					"version": "5.1.1",
-					"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz",
-					"integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==",
-					"optional": true,
-					"requires": {
-						"brace-expansion": "^2.0.1"
-					}
-				}
-			}
-		},
 		"proxy-addr": {
 			"version": "2.0.7",
 			"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@@ -12916,11 +12643,6 @@
 				"ipaddr.js": "1.9.1"
 			}
 		},
-		"pseudomap": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
-			"integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
-		},
 		"punycode": {
 			"version": "2.3.1",
 			"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
@@ -12965,9 +12687,9 @@
 			"peer": 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==",
+			"version": "3.6.2",
+			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+			"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
 			"optional": true,
 			"requires": {
 				"inherits": "^2.0.3",
@@ -12985,15 +12707,6 @@
 			"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
 			"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
 		},
-		"requizzle": {
-			"version": "0.2.4",
-			"resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz",
-			"integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==",
-			"optional": true,
-			"requires": {
-				"lodash": "^4.17.21"
-			}
-		},
 		"resolve": {
 			"version": "1.22.1",
 			"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
@@ -13045,13 +12758,14 @@
 			"optional": true
 		},
 		"retry-request": {
-			"version": "5.0.2",
-			"resolved": "https://registry.npmjs.org/retry-request/-/retry-request-5.0.2.tgz",
-			"integrity": "sha512-wfI3pk7EE80lCIXprqh7ym48IHYdwmAAzESdbU8Q9l7pnRCk9LEhpbOTNKjz6FARLm/Bl5m+4F0ABxOkYUujSQ==",
+			"version": "7.0.2",
+			"resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz",
+			"integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==",
 			"optional": true,
 			"requires": {
-				"debug": "^4.1.1",
-				"extend": "^3.0.2"
+				"@types/request": "^2.48.8",
+				"extend": "^3.0.2",
+				"teeny-request": "^9.0.0"
 			}
 		},
 		"reusify": {
@@ -13093,12 +12807,9 @@
 			"integrity": "sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw="
 		},
 		"semver": {
-			"version": "7.3.5",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
-			"integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
-			"requires": {
-				"lru-cache": "^6.0.0"
-			}
+			"version": "7.6.3",
+			"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+			"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="
 		},
 		"send": {
 			"version": "0.18.0",
@@ -13216,7 +12927,8 @@
 			"version": "0.6.1",
 			"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
 			"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-			"devOptional": true
+			"dev": true,
+			"peer": true
 		},
 		"source-map-support": {
 			"version": "0.5.13",
@@ -13268,9 +12980,9 @@
 			}
 		},
 		"stream-shift": {
-			"version": "1.0.1",
-			"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
-			"integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
+			"version": "1.0.3",
+			"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
+			"integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==",
 			"optional": true
 		},
 		"streamsearch": {
@@ -13357,7 +13069,13 @@
 			"version": "3.1.1",
 			"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
 			"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
-			"devOptional": true
+			"dev": true
+		},
+		"strnum": {
+			"version": "1.0.5",
+			"resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
+			"integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==",
+			"optional": true
 		},
 		"stubs": {
 			"version": "3.0.0",
@@ -13380,12 +13098,6 @@
 			"dev": true,
 			"peer": true
 		},
-		"taffydb": {
-			"version": "2.6.2",
-			"resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz",
-			"integrity": "sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA==",
-			"optional": true
-		},
 		"tar": {
 			"version": "4.4.19",
 			"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
@@ -13413,14 +13125,14 @@
 			}
 		},
 		"teeny-request": {
-			"version": "8.0.2",
-			"resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-8.0.2.tgz",
-			"integrity": "sha512-34pe0a4zASseXZCKdeTiIZqSKA8ETHb1EwItZr01PAR3CLPojeAKgSjzeNS4373gi59hNulyDrPKEbh2zO9sCg==",
+			"version": "9.0.0",
+			"resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz",
+			"integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==",
 			"optional": true,
 			"requires": {
 				"http-proxy-agent": "^5.0.0",
 				"https-proxy-agent": "^5.0.0",
-				"node-fetch": "^2.6.1",
+				"node-fetch": "^2.6.9",
 				"stream-events": "^1.0.5",
 				"uuid": "^9.0.0"
 			},
@@ -13443,6 +13155,21 @@
 						"agent-base": "6",
 						"debug": "4"
 					}
+				},
+				"node-fetch": {
+					"version": "2.7.0",
+					"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+					"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+					"optional": true,
+					"requires": {
+						"whatwg-url": "^5.0.0"
+					}
+				},
+				"uuid": {
+					"version": "9.0.1",
+					"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+					"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+					"optional": true
 				}
 			}
 		},
@@ -13458,37 +13185,12 @@
 				"minimatch": "^3.0.4"
 			}
 		},
-		"text-decoding": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/text-decoding/-/text-decoding-1.0.0.tgz",
-			"integrity": "sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA=="
-		},
 		"text-table": {
 			"version": "0.2.0",
 			"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
 			"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
 			"dev": true
 		},
-		"tmp": {
-			"version": "0.2.1",
-			"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
-			"integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
-			"optional": true,
-			"requires": {
-				"rimraf": "^3.0.0"
-			},
-			"dependencies": {
-				"rimraf": {
-					"version": "3.0.2",
-					"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
-					"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
-					"optional": true,
-					"requires": {
-						"glob": "^7.1.3"
-					}
-				}
-			}
-		},
 		"tmpl": {
 			"version": "1.0.5",
 			"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
@@ -13530,9 +13232,9 @@
 			"dev": true
 		},
 		"tslib": {
-			"version": "2.4.1",
-			"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
-			"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
+			"version": "2.6.3",
+			"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
+			"integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="
 		},
 		"type-check": {
 			"version": "0.4.0",
@@ -13565,23 +13267,10 @@
 				"mime-types": "~2.1.24"
 			}
 		},
-		"uc.micro": {
-			"version": "1.0.6",
-			"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
-			"integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
-			"optional": true
-		},
-		"uglify-js": {
-			"version": "3.17.4",
-			"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
-			"integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
-			"optional": true
-		},
-		"underscore": {
-			"version": "1.13.6",
-			"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
-			"integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==",
-			"optional": true
+		"undici-types": {
+			"version": "6.19.8",
+			"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+			"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
 		},
 		"unpipe": {
 			"version": "1.0.0",
@@ -13619,9 +13308,9 @@
 			"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
 		},
 		"uuid": {
-			"version": "9.0.0",
-			"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
-			"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg=="
+			"version": "10.0.0",
+			"resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
+			"integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ=="
 		},
 		"v8-to-istanbul": {
 			"version": "9.0.1",
@@ -13710,12 +13399,6 @@
 				"string-width": "^1.0.2 || 2 || 3 || 4"
 			}
 		},
-		"word-wrap": {
-			"version": "1.2.3",
-			"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
-			"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
-			"optional": true
-		},
 		"wrap-ansi": {
 			"version": "7.0.0",
 			"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@@ -13759,12 +13442,6 @@
 				"signal-exit": "^3.0.7"
 			}
 		},
-		"xmlcreate": {
-			"version": "2.0.4",
-			"resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz",
-			"integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==",
-			"optional": true
-		},
 		"y18n": {
 			"version": "5.0.8",
 			"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
diff --git a/functions/package.json b/functions/package.json
index ea98a591..f8bbb2f8 100644
--- a/functions/package.json
+++ b/functions/package.json
@@ -32,7 +32,7 @@
 		"busboy": "^0.3.1",
 		"cookie-parser": "^1.4.6",
 		"ejs": "^3.1.7",
-		"firebase-admin": "^11.3.0",
+		"firebase-admin": "^12.3.0",
 		"firebase-functions": "^4.2.1",
 		"vader-sentiment": "^1.1.3"
 	},